commit
2d5c24efa8
22
app/Http/Controllers/Common/Import.php
Normal file
22
app/Http/Controllers/Common/Import.php
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Common;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
|
||||||
|
class Import extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
*
|
||||||
|
* @param $group
|
||||||
|
* @param $type
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function create($group, $type)
|
||||||
|
{
|
||||||
|
$path = $group . '/' . $type;
|
||||||
|
|
||||||
|
return view('common.import.create', compact('group', 'type', 'path'));
|
||||||
|
}
|
||||||
|
}
|
@ -39,7 +39,7 @@ class Controller extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add CRUD permission check
|
// Add CRUD permission check
|
||||||
$this->middleware('permission:create-' . $controller)->only(['create', 'store']);
|
$this->middleware('permission:create-' . $controller)->only(['create', 'store', 'duplicate', 'import']);
|
||||||
$this->middleware('permission:read-' . $controller)->only(['index', 'show', 'edit']);
|
$this->middleware('permission:read-' . $controller)->only(['index', 'show', 'edit']);
|
||||||
$this->middleware('permission:update-' . $controller)->only(['update']);
|
$this->middleware('permission:update-' . $controller)->only(['update']);
|
||||||
$this->middleware('permission:delete-' . $controller)->only('destroy');
|
$this->middleware('permission:delete-' . $controller)->only('destroy');
|
||||||
|
@ -23,7 +23,7 @@ class Payments extends Controller
|
|||||||
{
|
{
|
||||||
$payments = Payment::with(['account', 'category'])->where('customer_id', '=', Auth::user()->customer->id)->paginate();
|
$payments = Payment::with(['account', 'category'])->where('customer_id', '=', Auth::user()->customer->id)->paginate();
|
||||||
|
|
||||||
$payment_methods = Modules::getPaymentMethods();
|
$payment_methods = Modules::getPaymentMethods('all');
|
||||||
|
|
||||||
$categories = collect(Category::enabled()->type('income')->pluck('name', 'id'))
|
$categories = collect(Category::enabled()->type('income')->pluck('name', 'id'))
|
||||||
->prepend(trans('general.all_type', ['type' => trans_choice('general.categories', 2)]), '');
|
->prepend(trans('general.all_type', ['type' => trans_choice('general.categories', 2)]), '');
|
||||||
|
@ -22,6 +22,7 @@ use App\Models\Setting\Tax;
|
|||||||
use App\Traits\Currencies;
|
use App\Traits\Currencies;
|
||||||
use App\Traits\DateTime;
|
use App\Traits\DateTime;
|
||||||
use App\Traits\Uploads;
|
use App\Traits\Uploads;
|
||||||
|
use App\Utilities\ImportFile;
|
||||||
use App\Utilities\Modules;
|
use App\Utilities\Modules;
|
||||||
use Date;
|
use Date;
|
||||||
|
|
||||||
@ -201,55 +202,51 @@ class Bills extends Controller
|
|||||||
$bill->update($request->input());
|
$bill->update($request->input());
|
||||||
|
|
||||||
// Added bill total sub total
|
// Added bill total sub total
|
||||||
$bill_sub_total = [
|
BillTotal::create([
|
||||||
'company_id' => $request['company_id'],
|
'company_id' => $request['company_id'],
|
||||||
'bill_id' => $bill->id,
|
'bill_id' => $bill->id,
|
||||||
'code' => 'sub_total',
|
'code' => 'sub_total',
|
||||||
'name' => 'bills.sub_total',
|
'name' => 'bills.sub_total',
|
||||||
'amount' => $sub_total,
|
'amount' => $sub_total,
|
||||||
'sort_order' => 1,
|
'sort_order' => 1,
|
||||||
];
|
]);
|
||||||
|
|
||||||
BillTotal::create($bill_sub_total);
|
|
||||||
|
|
||||||
$sort_order = 2;
|
$sort_order = 2;
|
||||||
|
|
||||||
// Added bill total taxes
|
// Added bill total taxes
|
||||||
if ($taxes) {
|
if ($taxes) {
|
||||||
foreach ($taxes as $tax) {
|
foreach ($taxes as $tax) {
|
||||||
$bill_tax_total = [
|
BillTotal::create([
|
||||||
'company_id' => $request['company_id'],
|
'company_id' => $request['company_id'],
|
||||||
'bill_id' => $bill->id,
|
'bill_id' => $bill->id,
|
||||||
'code' => 'tax',
|
'code' => 'tax',
|
||||||
'name' => $tax['name'],
|
'name' => $tax['name'],
|
||||||
'amount' => $tax['amount'],
|
'amount' => $tax['amount'],
|
||||||
'sort_order' => $sort_order,
|
'sort_order' => $sort_order,
|
||||||
];
|
]);
|
||||||
|
|
||||||
BillTotal::create($bill_tax_total);
|
|
||||||
|
|
||||||
$sort_order++;
|
$sort_order++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Added bill total total
|
// Added bill total total
|
||||||
$bill_total = [
|
BillTotal::create([
|
||||||
'company_id' => $request['company_id'],
|
'company_id' => $request['company_id'],
|
||||||
'bill_id' => $bill->id,
|
'bill_id' => $bill->id,
|
||||||
'code' => 'total',
|
'code' => 'total',
|
||||||
'name' => 'bills.total',
|
'name' => 'bills.total',
|
||||||
'amount' => $sub_total + $tax_total,
|
'amount' => $sub_total + $tax_total,
|
||||||
'sort_order' => $sort_order,
|
'sort_order' => $sort_order,
|
||||||
];
|
]);
|
||||||
|
|
||||||
BillTotal::create($bill_total);
|
// Add bill history
|
||||||
|
BillHistory::create([
|
||||||
$request['bill_id'] = $bill->id;
|
'company_id' => session('company_id'),
|
||||||
$request['status_code'] = 'new';
|
'bill_id' => $bill->id,
|
||||||
$request['notify'] = 0;
|
'status_code' => 'draft',
|
||||||
$request['description'] = trans('messages.success.added', ['type' => $request['bill_number']]);
|
'notify' => 0,
|
||||||
|
'description' => trans('messages.success.added', ['type' => $bill->bill_number]),
|
||||||
BillHistory::create($request->input());
|
]);
|
||||||
|
|
||||||
// Fire the event to make it extendible
|
// Fire the event to make it extendible
|
||||||
event(new BillCreated($bill));
|
event(new BillCreated($bill));
|
||||||
@ -261,6 +258,58 @@ class Bills extends Controller
|
|||||||
return redirect('expenses/bills/' . $bill->id);
|
return redirect('expenses/bills/' . $bill->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Duplicate the specified resource.
|
||||||
|
*
|
||||||
|
* @param Bill $bill
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function duplicate(Bill $bill)
|
||||||
|
{
|
||||||
|
$clone = $bill->duplicate();
|
||||||
|
|
||||||
|
// Add bill history
|
||||||
|
BillHistory::create([
|
||||||
|
'company_id' => session('company_id'),
|
||||||
|
'bill_id' => $clone->id,
|
||||||
|
'status_code' => 'draft',
|
||||||
|
'notify' => 0,
|
||||||
|
'description' => trans('messages.success.added', ['type' => $clone->bill_number]),
|
||||||
|
]);
|
||||||
|
|
||||||
|
$message = trans('messages.success.duplicated', ['type' => trans_choice('general.bills', 1)]);
|
||||||
|
|
||||||
|
flash($message)->success();
|
||||||
|
|
||||||
|
return redirect('expenses/bills/' . $clone->id . '/edit');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Import the specified resource.
|
||||||
|
*
|
||||||
|
* @param ImportFile $import
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function import(ImportFile $import)
|
||||||
|
{
|
||||||
|
$rows = $import->all();
|
||||||
|
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
$data = $row->toArray();
|
||||||
|
$data['company_id'] = session('company_id');
|
||||||
|
|
||||||
|
Bill::create($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
$message = trans('messages.success.imported', ['type' => trans_choice('general.bills', 2)]);
|
||||||
|
|
||||||
|
flash($message)->success();
|
||||||
|
|
||||||
|
return redirect('expenses/bills');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the form for editing the specified resource.
|
* Show the form for editing the specified resource.
|
||||||
*
|
*
|
||||||
|
@ -10,7 +10,7 @@ use App\Models\Expense\Vendor;
|
|||||||
use App\Models\Setting\Category;
|
use App\Models\Setting\Category;
|
||||||
use App\Models\Setting\Currency;
|
use App\Models\Setting\Currency;
|
||||||
use App\Traits\Uploads;
|
use App\Traits\Uploads;
|
||||||
|
use App\Utilities\ImportFile;
|
||||||
use App\Utilities\Modules;
|
use App\Utilities\Modules;
|
||||||
|
|
||||||
class Payments extends Controller
|
class Payments extends Controller
|
||||||
@ -90,6 +90,49 @@ class Payments extends Controller
|
|||||||
return redirect('expenses/payments');
|
return redirect('expenses/payments');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Duplicate the specified resource.
|
||||||
|
*
|
||||||
|
* @param Payment $payment
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function duplicate(Payment $payment)
|
||||||
|
{
|
||||||
|
$clone = $payment->duplicate();
|
||||||
|
|
||||||
|
$message = trans('messages.success.duplicated', ['type' => trans_choice('general.payments', 1)]);
|
||||||
|
|
||||||
|
flash($message)->success();
|
||||||
|
|
||||||
|
return redirect('expenses/payments/' . $clone->id . '/edit');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Import the specified resource.
|
||||||
|
*
|
||||||
|
* @param ImportFile $import
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function import(ImportFile $import)
|
||||||
|
{
|
||||||
|
$rows = $import->all();
|
||||||
|
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
$data = $row->toArray();
|
||||||
|
$data['company_id'] = session('company_id');
|
||||||
|
|
||||||
|
Payment::create($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
$message = trans('messages.success.imported', ['type' => trans_choice('general.payments', 2)]);
|
||||||
|
|
||||||
|
flash($message)->success();
|
||||||
|
|
||||||
|
return redirect('expenses/payments');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the form for editing the specified resource.
|
* Show the form for editing the specified resource.
|
||||||
*
|
*
|
||||||
|
@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
|
|||||||
use App\Http\Requests\Expense\Vendor as Request;
|
use App\Http\Requests\Expense\Vendor as Request;
|
||||||
use App\Models\Expense\Vendor;
|
use App\Models\Expense\Vendor;
|
||||||
use App\Models\Setting\Currency;
|
use App\Models\Setting\Currency;
|
||||||
|
use App\Utilities\ImportFile;
|
||||||
|
|
||||||
class Vendors extends Controller
|
class Vendors extends Controller
|
||||||
{
|
{
|
||||||
@ -52,6 +53,49 @@ class Vendors extends Controller
|
|||||||
return redirect('expenses/vendors');
|
return redirect('expenses/vendors');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Duplicate the specified resource.
|
||||||
|
*
|
||||||
|
* @param Vendor $vendor
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function duplicate(Vendor $vendor)
|
||||||
|
{
|
||||||
|
$clone = $vendor->duplicate();
|
||||||
|
|
||||||
|
$message = trans('messages.success.duplicated', ['type' => trans_choice('general.vendors', 1)]);
|
||||||
|
|
||||||
|
flash($message)->success();
|
||||||
|
|
||||||
|
return redirect('expenses/vendors/' . $clone->id . '/edit');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Import the specified resource.
|
||||||
|
*
|
||||||
|
* @param ImportFile $import
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function import(ImportFile $import)
|
||||||
|
{
|
||||||
|
$rows = $import->all();
|
||||||
|
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
$data = $row->toArray();
|
||||||
|
$data['company_id'] = session('company_id');
|
||||||
|
|
||||||
|
Vendor::create($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
$message = trans('messages.success.imported', ['type' => trans_choice('general.vendors', 2)]);
|
||||||
|
|
||||||
|
flash($message)->success();
|
||||||
|
|
||||||
|
return redirect('expenses/vendors');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the form for editing the specified resource.
|
* Show the form for editing the specified resource.
|
||||||
*
|
*
|
||||||
@ -122,4 +166,11 @@ class Vendors extends Controller
|
|||||||
|
|
||||||
return response()->json($vendor);
|
return response()->json($vendor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function vendor(Request $request)
|
||||||
|
{
|
||||||
|
$vendor = Vendor::create($request->all());
|
||||||
|
|
||||||
|
return response()->json($vendor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ use App\Http\Requests\Income\Customer as Request;
|
|||||||
use App\Models\Auth\User;
|
use App\Models\Auth\User;
|
||||||
use App\Models\Income\Customer;
|
use App\Models\Income\Customer;
|
||||||
use App\Models\Setting\Currency;
|
use App\Models\Setting\Currency;
|
||||||
|
use App\Utilities\ImportFile;
|
||||||
|
|
||||||
class Customers extends Controller
|
class Customers extends Controller
|
||||||
{
|
{
|
||||||
@ -47,33 +48,26 @@ class Customers extends Controller
|
|||||||
if (empty($request->input('create_user'))) {
|
if (empty($request->input('create_user'))) {
|
||||||
Customer::create($request->all());
|
Customer::create($request->all());
|
||||||
} else {
|
} else {
|
||||||
|
// Check if user exist
|
||||||
$user = User::where('email', $request['email'])->first();
|
$user = User::where('email', $request['email'])->first();
|
||||||
|
|
||||||
if (!empty($user)) {
|
if (!empty($user)) {
|
||||||
$message = trans('messages.error.customer', ['name' => $user->name]);
|
$message = trans('messages.error.customer', ['name' => $user->name]);
|
||||||
|
|
||||||
flash($message)->error();
|
flash($message)->error();
|
||||||
|
|
||||||
return redirect()->back()->withInput($request->except('create_user'))->withErrors(
|
return redirect()->back()->withInput($request->except('create_user'))->withErrors(
|
||||||
['email' => trans('customer.error.email')]
|
['email' => trans('customers.error.email')]
|
||||||
);
|
);
|
||||||
|
|
||||||
//$user = User::create($request->input());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$customer = Customer::create($request->all());
|
// Create user first
|
||||||
|
$user = User::create($request->all());
|
||||||
|
$user->roles()->attach(['3']);
|
||||||
|
$user->companies()->attach([session('company_id')]);
|
||||||
|
|
||||||
$request['user_id'] = $user->id;
|
$request['user_id'] = $user->id;
|
||||||
$request['roles'] = array('3');
|
|
||||||
$request['companies'] = array(session('company_id'));
|
|
||||||
|
|
||||||
// Attach roles
|
Customer::create($request->all());
|
||||||
$user->roles()->attach($request['roles']);
|
|
||||||
|
|
||||||
// Attach companies
|
|
||||||
$user->companies()->attach($request['companies']);
|
|
||||||
|
|
||||||
$customer->update($request->all());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$message = trans('messages.success.added', ['type' => trans_choice('general.customers', 1)]);
|
$message = trans('messages.success.added', ['type' => trans_choice('general.customers', 1)]);
|
||||||
@ -83,6 +77,49 @@ class Customers extends Controller
|
|||||||
return redirect('incomes/customers');
|
return redirect('incomes/customers');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Duplicate the specified resource.
|
||||||
|
*
|
||||||
|
* @param Customer $customer
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function duplicate(Customer $customer)
|
||||||
|
{
|
||||||
|
$clone = $customer->duplicate();
|
||||||
|
|
||||||
|
$message = trans('messages.success.duplicated', ['type' => trans_choice('general.customers', 1)]);
|
||||||
|
|
||||||
|
flash($message)->success();
|
||||||
|
|
||||||
|
return redirect('incomes/customers/' . $clone->id . '/edit');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Import the specified resource.
|
||||||
|
*
|
||||||
|
* @param ImportFile $import
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function import(ImportFile $import)
|
||||||
|
{
|
||||||
|
$rows = $import->all();
|
||||||
|
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
$data = $row->toArray();
|
||||||
|
$data['company_id'] = session('company_id');
|
||||||
|
|
||||||
|
Customer::create($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
$message = trans('messages.success.imported', ['type' => trans_choice('general.customers', 2)]);
|
||||||
|
|
||||||
|
flash($message)->success();
|
||||||
|
|
||||||
|
return redirect('incomes/customers');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the form for editing the specified resource.
|
* Show the form for editing the specified resource.
|
||||||
*
|
*
|
||||||
@ -110,29 +147,24 @@ class Customers extends Controller
|
|||||||
if (empty($request->input('create_user'))) {
|
if (empty($request->input('create_user'))) {
|
||||||
$customer->update($request->all());
|
$customer->update($request->all());
|
||||||
} else {
|
} else {
|
||||||
|
// Check if user exist
|
||||||
$user = User::where('email', $request['email'])->first();
|
$user = User::where('email', $request['email'])->first();
|
||||||
|
|
||||||
if (!empty($user)) {
|
if (!empty($user)) {
|
||||||
$message = trans('messages.error.customer', ['name' => $user->name]);
|
$message = trans('messages.error.customer', ['name' => $user->name]);
|
||||||
|
|
||||||
flash($message)->error();
|
flash($message)->error();
|
||||||
|
|
||||||
return redirect()->back()->withInput($request->except('create_user'))->withErrors(
|
return redirect()->back()->withInput($request->except('create_user'))->withErrors(
|
||||||
['email' => trans('customer.error.email')]
|
['email' => trans('customers.error.email')]
|
||||||
);
|
);
|
||||||
|
|
||||||
//$user = User::create($request->input());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create user first
|
||||||
|
$user = User::create($request->all());
|
||||||
|
$user->roles()->attach(['3']);
|
||||||
|
$user->companies()->attach([session('company_id')]);
|
||||||
|
|
||||||
$request['user_id'] = $user->id;
|
$request['user_id'] = $user->id;
|
||||||
$request['roles'] = array('3');
|
|
||||||
$request['companies'] = array(session('company_id'));
|
|
||||||
|
|
||||||
// Attach roles
|
|
||||||
$user->roles()->attach($request['roles']);
|
|
||||||
|
|
||||||
// Attach companies
|
|
||||||
$user->companies()->attach($request['companies']);
|
|
||||||
|
|
||||||
$customer->update($request->all());
|
$customer->update($request->all());
|
||||||
}
|
}
|
||||||
@ -181,4 +213,11 @@ class Customers extends Controller
|
|||||||
|
|
||||||
return response()->json($customer);
|
return response()->json($customer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function customer(Request $request)
|
||||||
|
{
|
||||||
|
$customer = Customer::create($request->all());
|
||||||
|
|
||||||
|
return response()->json($customer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,14 +24,16 @@ use App\Notifications\Income\Invoice as Notification;
|
|||||||
use App\Notifications\Item\Item as ItemNotification;
|
use App\Notifications\Item\Item as ItemNotification;
|
||||||
use App\Traits\Currencies;
|
use App\Traits\Currencies;
|
||||||
use App\Traits\DateTime;
|
use App\Traits\DateTime;
|
||||||
|
use App\Traits\Incomes;
|
||||||
use App\Traits\Uploads;
|
use App\Traits\Uploads;
|
||||||
|
use App\Utilities\ImportFile;
|
||||||
use App\Utilities\Modules;
|
use App\Utilities\Modules;
|
||||||
use Date;
|
use Date;
|
||||||
use File;
|
use File;
|
||||||
|
|
||||||
class Invoices extends Controller
|
class Invoices extends Controller
|
||||||
{
|
{
|
||||||
use DateTime, Currencies, Uploads;
|
use DateTime, Currencies, Incomes, Uploads;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
@ -100,11 +102,7 @@ class Invoices extends Controller
|
|||||||
|
|
||||||
$taxes = Tax::enabled()->pluck('name', 'id');
|
$taxes = Tax::enabled()->pluck('name', 'id');
|
||||||
|
|
||||||
// Generate next invoice number
|
$number = $this->getNextInvoiceNumber();
|
||||||
$prefix = setting('general.invoice_number_prefix', 'INV-');
|
|
||||||
$next = setting('general.invoice_number_next', '1');
|
|
||||||
$digit = setting('general.invoice_number_digit', '5');
|
|
||||||
$number = $prefix . str_pad($next, $digit, '0', STR_PAD_LEFT);
|
|
||||||
|
|
||||||
return view('incomes.invoices.create', compact('customers', 'currencies', 'items', 'taxes', 'number'));
|
return view('incomes.invoices.create', compact('customers', 'currencies', 'items', 'taxes', 'number'));
|
||||||
}
|
}
|
||||||
@ -227,17 +225,17 @@ class Invoices extends Controller
|
|||||||
// Add invoice totals
|
// Add invoice totals
|
||||||
$this->addTotals($invoice, $request, $taxes, $sub_total, $tax_total);
|
$this->addTotals($invoice, $request, $taxes, $sub_total, $tax_total);
|
||||||
|
|
||||||
$request['invoice_id'] = $invoice->id;
|
// Add invoice history
|
||||||
$request['status_code'] = 'draft';
|
InvoiceHistory::create([
|
||||||
$request['notify'] = 0;
|
'company_id' => session('company_id'),
|
||||||
$request['description'] = trans('messages.success.added', ['type' => $request['invoice_number']]);
|
'invoice_id' => $invoice->id,
|
||||||
|
'status_code' => 'draft',
|
||||||
InvoiceHistory::create($request->all());
|
'notify' => 0,
|
||||||
|
'description' => trans('messages.success.added', ['type' => $invoice->invoice_number]),
|
||||||
|
]);
|
||||||
|
|
||||||
// Update next invoice number
|
// Update next invoice number
|
||||||
$next = setting('general.invoice_number_next', 1) + 1;
|
$this->increaseNextInvoiceNumber();
|
||||||
setting(['general.invoice_number_next' => $next]);
|
|
||||||
setting()->save();
|
|
||||||
|
|
||||||
// Fire the event to make it extendible
|
// Fire the event to make it extendible
|
||||||
event(new InvoiceCreated($invoice));
|
event(new InvoiceCreated($invoice));
|
||||||
@ -249,6 +247,61 @@ class Invoices extends Controller
|
|||||||
return redirect('incomes/invoices/' . $invoice->id);
|
return redirect('incomes/invoices/' . $invoice->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Duplicate the specified resource.
|
||||||
|
*
|
||||||
|
* @param Invoice $invoice
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function duplicate(Invoice $invoice)
|
||||||
|
{
|
||||||
|
$clone = $invoice->duplicate();
|
||||||
|
|
||||||
|
// Add invoice history
|
||||||
|
InvoiceHistory::create([
|
||||||
|
'company_id' => session('company_id'),
|
||||||
|
'invoice_id' => $clone->id,
|
||||||
|
'status_code' => 'draft',
|
||||||
|
'notify' => 0,
|
||||||
|
'description' => trans('messages.success.added', ['type' => $clone->invoice_number]),
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Update next invoice number
|
||||||
|
$this->increaseNextInvoiceNumber();
|
||||||
|
|
||||||
|
$message = trans('messages.success.duplicated', ['type' => trans_choice('general.invoices', 1)]);
|
||||||
|
|
||||||
|
flash($message)->success();
|
||||||
|
|
||||||
|
return redirect('incomes/invoices/' . $clone->id . '/edit');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Import the specified resource.
|
||||||
|
*
|
||||||
|
* @param ImportFile $import
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function import(ImportFile $import)
|
||||||
|
{
|
||||||
|
$rows = $import->all();
|
||||||
|
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
$data = $row->toArray();
|
||||||
|
$data['company_id'] = session('company_id');
|
||||||
|
|
||||||
|
Invoice::create($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
$message = trans('messages.success.imported', ['type' => trans_choice('general.invoices', 2)]);
|
||||||
|
|
||||||
|
flash($message)->success();
|
||||||
|
|
||||||
|
return redirect('incomes/invoices');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the form for editing the specified resource.
|
* Show the form for editing the specified resource.
|
||||||
*
|
*
|
||||||
@ -653,47 +706,41 @@ class Invoices extends Controller
|
|||||||
$sort_order = 1;
|
$sort_order = 1;
|
||||||
|
|
||||||
// Added invoice total sub total
|
// Added invoice total sub total
|
||||||
$invoice_sub_total = [
|
InvoiceTotal::create([
|
||||||
'company_id' => $request['company_id'],
|
'company_id' => $request['company_id'],
|
||||||
'invoice_id' => $invoice->id,
|
'invoice_id' => $invoice->id,
|
||||||
'code' => 'sub_total',
|
'code' => 'sub_total',
|
||||||
'name' => 'invoices.sub_total',
|
'name' => 'invoices.sub_total',
|
||||||
'amount' => $sub_total,
|
'amount' => $sub_total,
|
||||||
'sort_order' => $sort_order,
|
'sort_order' => $sort_order,
|
||||||
];
|
]);
|
||||||
|
|
||||||
InvoiceTotal::create($invoice_sub_total);
|
|
||||||
|
|
||||||
$sort_order++;
|
$sort_order++;
|
||||||
|
|
||||||
// Added invoice total taxes
|
// Added invoice total taxes
|
||||||
if ($taxes) {
|
if ($taxes) {
|
||||||
foreach ($taxes as $tax) {
|
foreach ($taxes as $tax) {
|
||||||
$invoice_tax_total = [
|
InvoiceTotal::create([
|
||||||
'company_id' => $request['company_id'],
|
'company_id' => $request['company_id'],
|
||||||
'invoice_id' => $invoice->id,
|
'invoice_id' => $invoice->id,
|
||||||
'code' => 'tax',
|
'code' => 'tax',
|
||||||
'name' => $tax['name'],
|
'name' => $tax['name'],
|
||||||
'amount' => $tax['amount'],
|
'amount' => $tax['amount'],
|
||||||
'sort_order' => $sort_order,
|
'sort_order' => $sort_order,
|
||||||
];
|
]);
|
||||||
|
|
||||||
InvoiceTotal::create($invoice_tax_total);
|
|
||||||
|
|
||||||
$sort_order++;
|
$sort_order++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Added invoice total total
|
// Added invoice total total
|
||||||
$invoice_total = [
|
InvoiceTotal::create([
|
||||||
'company_id' => $request['company_id'],
|
'company_id' => $request['company_id'],
|
||||||
'invoice_id' => $invoice->id,
|
'invoice_id' => $invoice->id,
|
||||||
'code' => 'total',
|
'code' => 'total',
|
||||||
'name' => 'invoices.total',
|
'name' => 'invoices.total',
|
||||||
'amount' => $sub_total + $tax_total,
|
'amount' => $sub_total + $tax_total,
|
||||||
'sort_order' => $sort_order,
|
'sort_order' => $sort_order,
|
||||||
];
|
]);
|
||||||
|
|
||||||
InvoiceTotal::create($invoice_total);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ use App\Models\Setting\Currency;
|
|||||||
use App\Traits\Currencies;
|
use App\Traits\Currencies;
|
||||||
use App\Traits\DateTime;
|
use App\Traits\DateTime;
|
||||||
use App\Traits\Uploads;
|
use App\Traits\Uploads;
|
||||||
|
use App\Utilities\ImportFile;
|
||||||
use App\Utilities\Modules;
|
use App\Utilities\Modules;
|
||||||
|
|
||||||
class Revenues extends Controller
|
class Revenues extends Controller
|
||||||
@ -91,6 +92,49 @@ class Revenues extends Controller
|
|||||||
return redirect('incomes/revenues');
|
return redirect('incomes/revenues');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Duplicate the specified resource.
|
||||||
|
*
|
||||||
|
* @param Revenue $revenue
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function duplicate(Revenue $revenue)
|
||||||
|
{
|
||||||
|
$clone = $revenue->duplicate();
|
||||||
|
|
||||||
|
$message = trans('messages.success.duplicated', ['type' => trans_choice('general.revenues', 1)]);
|
||||||
|
|
||||||
|
flash($message)->success();
|
||||||
|
|
||||||
|
return redirect('incomes/revenues/' . $clone->id . '/edit');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Import the specified resource.
|
||||||
|
*
|
||||||
|
* @param ImportFile $import
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function import(ImportFile $import)
|
||||||
|
{
|
||||||
|
$rows = $import->all();
|
||||||
|
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
$data = $row->toArray();
|
||||||
|
$data['company_id'] = session('company_id');
|
||||||
|
|
||||||
|
Revenue::create($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
$message = trans('messages.success.imported', ['type' => trans_choice('general.revenues', 2)]);
|
||||||
|
|
||||||
|
flash($message)->success();
|
||||||
|
|
||||||
|
return redirect('incomes/revenues');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the form for editing the specified resource.
|
* Show the form for editing the specified resource.
|
||||||
*
|
*
|
||||||
|
@ -43,10 +43,6 @@ class Requirements extends Controller
|
|||||||
{
|
{
|
||||||
$requirements = array();
|
$requirements = array();
|
||||||
|
|
||||||
if (version_compare(PHP_VERSION, '5.6.4', '<')) {
|
|
||||||
$requirements[] = trans('install.requirements.php_version');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ini_get('safe_mode')) {
|
if (ini_get('safe_mode')) {
|
||||||
$requirements[] = trans('install.requirements.disabled', ['feature' => 'Safe Mode']);
|
$requirements[] = trans('install.requirements.disabled', ['feature' => 'Safe Mode']);
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ use App\Models\Setting\Category;
|
|||||||
use App\Models\Setting\Currency;
|
use App\Models\Setting\Currency;
|
||||||
use App\Models\Setting\Tax;
|
use App\Models\Setting\Tax;
|
||||||
use App\Traits\Uploads;
|
use App\Traits\Uploads;
|
||||||
|
use App\Utilities\ImportFile;
|
||||||
|
|
||||||
class Items extends Controller
|
class Items extends Controller
|
||||||
{
|
{
|
||||||
@ -67,6 +68,49 @@ class Items extends Controller
|
|||||||
return redirect('items/items');
|
return redirect('items/items');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Duplicate the specified resource.
|
||||||
|
*
|
||||||
|
* @param Item $item
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function duplicate(Item $item)
|
||||||
|
{
|
||||||
|
$clone = $item->duplicate();
|
||||||
|
|
||||||
|
$message = trans('messages.success.duplicated', ['type' => trans_choice('general.items', 1)]);
|
||||||
|
|
||||||
|
flash($message)->success();
|
||||||
|
|
||||||
|
return redirect('items/items/' . $clone->id . '/edit');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Import the specified resource.
|
||||||
|
*
|
||||||
|
* @param ImportFile $import
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function import(ImportFile $import)
|
||||||
|
{
|
||||||
|
$rows = $import->all();
|
||||||
|
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
$data = $row->toArray();
|
||||||
|
$data['company_id'] = session('company_id');
|
||||||
|
|
||||||
|
Item::create($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
$message = trans('messages.success.imported', ['type' => trans_choice('general.items', 2)]);
|
||||||
|
|
||||||
|
flash($message)->success();
|
||||||
|
|
||||||
|
return redirect('items/items');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the form for editing the specified resource.
|
* Show the form for editing the specified resource.
|
||||||
*
|
*
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Settings;
|
namespace App\Http\Controllers\Settings;
|
||||||
|
|
||||||
|
use Akaunting\Money\Currency as MoneyCurrency;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Requests\Setting\Currency as Request;
|
use App\Http\Requests\Setting\Currency as Request;
|
||||||
use App\Models\Banking\Account;
|
use App\Models\Banking\Account;
|
||||||
use App\Models\Setting\Currency;
|
use App\Models\Setting\Currency;
|
||||||
use ClickNow\Money\Currency as MoneyCurrency;
|
|
||||||
|
|
||||||
class Currencies extends Controller
|
class Currencies extends Controller
|
||||||
{
|
{
|
||||||
@ -29,10 +29,18 @@ class Currencies extends Controller
|
|||||||
*/
|
*/
|
||||||
public function create()
|
public function create()
|
||||||
{
|
{
|
||||||
|
// Get current currencies
|
||||||
|
$current = Currency::pluck('code')->toArray();
|
||||||
|
|
||||||
// Prepare codes
|
// Prepare codes
|
||||||
$codes = array();
|
$codes = array();
|
||||||
$currencies = MoneyCurrency::getCurrencies();
|
$currencies = MoneyCurrency::getCurrencies();
|
||||||
foreach ($currencies as $key => $item) {
|
foreach ($currencies as $key => $item) {
|
||||||
|
// Don't show if already available
|
||||||
|
if (in_array($key, $current)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$codes[$key] = $key;
|
$codes[$key] = $key;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,10 +85,18 @@ class Currencies extends Controller
|
|||||||
*/
|
*/
|
||||||
public function edit(Currency $currency)
|
public function edit(Currency $currency)
|
||||||
{
|
{
|
||||||
|
// Get current currencies
|
||||||
|
$current = Currency::pluck('code')->toArray();
|
||||||
|
|
||||||
// Prepare codes
|
// Prepare codes
|
||||||
$codes = array();
|
$codes = array();
|
||||||
$currencies = MoneyCurrency::getCurrencies();
|
$currencies = MoneyCurrency::getCurrencies();
|
||||||
foreach ($currencies as $key => $item) {
|
foreach ($currencies as $key => $item) {
|
||||||
|
// Don't show if already available
|
||||||
|
if (($key != $currency->code) && in_array($key, $current)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$codes[$key] = $key;
|
$codes[$key] = $key;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
48
app/Listeners/Updates/Version110.php
Normal file
48
app/Listeners/Updates/Version110.php
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Listeners\Updates;
|
||||||
|
|
||||||
|
use App\Events\UpdateFinished;
|
||||||
|
use App\Models\Auth\Role;
|
||||||
|
use App\Models\Auth\Permission;
|
||||||
|
|
||||||
|
class Version110 extends Listener
|
||||||
|
{
|
||||||
|
const ALIAS = 'core';
|
||||||
|
|
||||||
|
const VERSION = '1.1.0';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the event.
|
||||||
|
*
|
||||||
|
* @param $event
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function handle(UpdateFinished $event)
|
||||||
|
{
|
||||||
|
// Check if should listen
|
||||||
|
if (!$this->check($event)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create permission
|
||||||
|
$permission = Permission::firstOrCreate([
|
||||||
|
'name' => 'create-common-import',
|
||||||
|
'display_name' => 'Create Common Import',
|
||||||
|
'description' => 'Create Common Import',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Attach permission to roles
|
||||||
|
$roles = Role::all();
|
||||||
|
|
||||||
|
foreach ($roles as $role) {
|
||||||
|
$allowed = ['admin', 'manager'];
|
||||||
|
|
||||||
|
if (!in_array($role->name, $allowed)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$role->attachPermission($permission);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -5,11 +5,12 @@ namespace App\Models\Expense;
|
|||||||
use App\Models\Model;
|
use App\Models\Model;
|
||||||
use App\Traits\Currencies;
|
use App\Traits\Currencies;
|
||||||
use App\Traits\DateTime;
|
use App\Traits\DateTime;
|
||||||
|
use Bkwld\Cloner\Cloneable;
|
||||||
use Sofa\Eloquence\Eloquence;
|
use Sofa\Eloquence\Eloquence;
|
||||||
|
|
||||||
class Bill extends Model
|
class Bill extends Model
|
||||||
{
|
{
|
||||||
use Currencies, DateTime, Eloquence;
|
use Cloneable, Currencies, DateTime, Eloquence;
|
||||||
|
|
||||||
protected $table = 'bills';
|
protected $table = 'bills';
|
||||||
|
|
||||||
@ -44,6 +45,13 @@ class Bill extends Model
|
|||||||
'notes' => 2,
|
'notes' => 2,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clonable relationships.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $cloneable_relations = ['items', 'totals'];
|
||||||
|
|
||||||
public function vendor()
|
public function vendor()
|
||||||
{
|
{
|
||||||
return $this->belongsTo('App\Models\Expense\Vendor');
|
return $this->belongsTo('App\Models\Expense\Vendor');
|
||||||
@ -94,6 +102,11 @@ class Bill extends Model
|
|||||||
return $query->where('bill_status_code', '!=', 'new');
|
return $query->where('bill_status_code', '!=', 'new');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function onCloning($src, $child = null)
|
||||||
|
{
|
||||||
|
$this->bill_status_code = 'draft';
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert amount to double.
|
* Convert amount to double.
|
||||||
*
|
*
|
||||||
|
@ -5,11 +5,12 @@ namespace App\Models\Expense;
|
|||||||
use App\Models\Model;
|
use App\Models\Model;
|
||||||
use App\Traits\Currencies;
|
use App\Traits\Currencies;
|
||||||
use App\Traits\DateTime;
|
use App\Traits\DateTime;
|
||||||
|
use Bkwld\Cloner\Cloneable;
|
||||||
use Sofa\Eloquence\Eloquence;
|
use Sofa\Eloquence\Eloquence;
|
||||||
|
|
||||||
class Payment extends Model
|
class Payment extends Model
|
||||||
{
|
{
|
||||||
use Currencies, DateTime, Eloquence;
|
use Cloneable, Currencies, DateTime, Eloquence;
|
||||||
|
|
||||||
protected $table = 'payments';
|
protected $table = 'payments';
|
||||||
|
|
||||||
|
@ -3,11 +3,12 @@
|
|||||||
namespace App\Models\Expense;
|
namespace App\Models\Expense;
|
||||||
|
|
||||||
use App\Models\Model;
|
use App\Models\Model;
|
||||||
|
use Bkwld\Cloner\Cloneable;
|
||||||
use Sofa\Eloquence\Eloquence;
|
use Sofa\Eloquence\Eloquence;
|
||||||
|
|
||||||
class Vendor extends Model
|
class Vendor extends Model
|
||||||
{
|
{
|
||||||
use Eloquence;
|
use Cloneable, Eloquence;
|
||||||
|
|
||||||
protected $table = 'vendors';
|
protected $table = 'vendors';
|
||||||
|
|
||||||
|
@ -3,13 +3,13 @@
|
|||||||
namespace App\Models\Income;
|
namespace App\Models\Income;
|
||||||
|
|
||||||
use App\Models\Model;
|
use App\Models\Model;
|
||||||
|
use Bkwld\Cloner\Cloneable;
|
||||||
use Illuminate\Notifications\Notifiable;
|
use Illuminate\Notifications\Notifiable;
|
||||||
use Sofa\Eloquence\Eloquence;
|
use Sofa\Eloquence\Eloquence;
|
||||||
|
|
||||||
class Customer extends Model
|
class Customer extends Model
|
||||||
{
|
{
|
||||||
use Eloquence;
|
use Cloneable, Eloquence, Notifiable;
|
||||||
use Notifiable;
|
|
||||||
|
|
||||||
protected $table = 'customers';
|
protected $table = 'customers';
|
||||||
|
|
||||||
@ -59,4 +59,9 @@ class Customer extends Model
|
|||||||
{
|
{
|
||||||
return $this->belongsTo('App\Models\Auth\User', 'customer_id', 'id');
|
return $this->belongsTo('App\Models\Auth\User', 'customer_id', 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function onCloning($src, $child = null)
|
||||||
|
{
|
||||||
|
$this->user_id = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,11 +5,13 @@ namespace App\Models\Income;
|
|||||||
use App\Models\Model;
|
use App\Models\Model;
|
||||||
use App\Traits\Currencies;
|
use App\Traits\Currencies;
|
||||||
use App\Traits\DateTime;
|
use App\Traits\DateTime;
|
||||||
|
use App\Traits\Incomes;
|
||||||
|
use Bkwld\Cloner\Cloneable;
|
||||||
use Sofa\Eloquence\Eloquence;
|
use Sofa\Eloquence\Eloquence;
|
||||||
|
|
||||||
class Invoice extends Model
|
class Invoice extends Model
|
||||||
{
|
{
|
||||||
use Currencies, DateTime, Eloquence;
|
use Cloneable, Currencies, DateTime, Eloquence, Incomes;
|
||||||
|
|
||||||
protected $table = 'invoices';
|
protected $table = 'invoices';
|
||||||
|
|
||||||
@ -44,6 +46,13 @@ class Invoice extends Model
|
|||||||
'notes' => 2,
|
'notes' => 2,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clonable relationships.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $cloneable_relations = ['items', 'totals'];
|
||||||
|
|
||||||
public function user()
|
public function user()
|
||||||
{
|
{
|
||||||
return $this->belongsTo('App\Models\Auth\User', 'customer_id', 'id');
|
return $this->belongsTo('App\Models\Auth\User', 'customer_id', 'id');
|
||||||
@ -99,6 +108,12 @@ class Invoice extends Model
|
|||||||
return $query->where('invoice_status_code', '!=', 'draft');
|
return $query->where('invoice_status_code', '!=', 'draft');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function onCloning($src, $child = null)
|
||||||
|
{
|
||||||
|
$this->invoice_status_code = 'draft';
|
||||||
|
$this->invoice_number = $this->getNextInvoiceNumber();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert amount to double.
|
* Convert amount to double.
|
||||||
*
|
*
|
||||||
|
@ -5,11 +5,12 @@ namespace App\Models\Income;
|
|||||||
use App\Models\Model;
|
use App\Models\Model;
|
||||||
use App\Traits\Currencies;
|
use App\Traits\Currencies;
|
||||||
use App\Traits\DateTime;
|
use App\Traits\DateTime;
|
||||||
|
use Bkwld\Cloner\Cloneable;
|
||||||
use Sofa\Eloquence\Eloquence;
|
use Sofa\Eloquence\Eloquence;
|
||||||
|
|
||||||
class Revenue extends Model
|
class Revenue extends Model
|
||||||
{
|
{
|
||||||
use Currencies, DateTime, Eloquence;
|
use Cloneable, Currencies, DateTime, Eloquence;
|
||||||
|
|
||||||
protected $table = 'revenues';
|
protected $table = 'revenues';
|
||||||
|
|
||||||
|
@ -3,14 +3,13 @@
|
|||||||
namespace App\Models\Item;
|
namespace App\Models\Item;
|
||||||
|
|
||||||
use App\Models\Model;
|
use App\Models\Model;
|
||||||
use App\Models\Expense\Bill;
|
|
||||||
use App\Models\Income\Invoice;
|
|
||||||
use App\Traits\Currencies;
|
use App\Traits\Currencies;
|
||||||
|
use Bkwld\Cloner\Cloneable;
|
||||||
use Sofa\Eloquence\Eloquence;
|
use Sofa\Eloquence\Eloquence;
|
||||||
|
|
||||||
class Item extends Model
|
class Item extends Model
|
||||||
{
|
{
|
||||||
use Currencies, Eloquence;
|
use Cloneable, Currencies, Eloquence;
|
||||||
|
|
||||||
protected $table = 'items';
|
protected $table = 'items';
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@ class EventServiceProvider extends ServiceProvider
|
|||||||
'App\Listeners\Updates\Version107',
|
'App\Listeners\Updates\Version107',
|
||||||
'App\Listeners\Updates\Version108',
|
'App\Listeners\Updates\Version108',
|
||||||
'App\Listeners\Updates\Version109',
|
'App\Listeners\Updates\Version109',
|
||||||
|
'App\Listeners\Updates\Version110',
|
||||||
],
|
],
|
||||||
'Illuminate\Auth\Events\Login' => [
|
'Illuminate\Auth\Events\Login' => [
|
||||||
'App\Listeners\Auth\Login',
|
'App\Listeners\Auth\Login',
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Traits;
|
namespace App\Traits;
|
||||||
|
|
||||||
use ClickNow\Money\Money;
|
use Akaunting\Money\Money;
|
||||||
use ClickNow\Money\Currency;
|
use Akaunting\Money\Currency;
|
||||||
|
|
||||||
trait Currencies
|
trait Currencies
|
||||||
{
|
{
|
||||||
|
34
app/Traits/Incomes.php
Normal file
34
app/Traits/Incomes.php
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Traits;
|
||||||
|
|
||||||
|
trait Incomes
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate next invoice number
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getNextInvoiceNumber()
|
||||||
|
{
|
||||||
|
$prefix = setting('general.invoice_number_prefix', 'INV-');
|
||||||
|
$next = setting('general.invoice_number_next', '1');
|
||||||
|
$digit = setting('general.invoice_number_digit', '5');
|
||||||
|
|
||||||
|
$number = $prefix . str_pad($next, $digit, '0', STR_PAD_LEFT);
|
||||||
|
|
||||||
|
return $number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Increase the next invoice number
|
||||||
|
*/
|
||||||
|
public function increaseNextInvoiceNumber()
|
||||||
|
{
|
||||||
|
// Update next invoice number
|
||||||
|
$next = setting('general.invoice_number_next', 1) + 1;
|
||||||
|
setting(['general.invoice_number_next' => $next]);
|
||||||
|
setting()->save();
|
||||||
|
}
|
||||||
|
}
|
36
app/Utilities/ImportFile.php
Normal file
36
app/Utilities/ImportFile.php
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Utilities;
|
||||||
|
|
||||||
|
use Maatwebsite\Excel\Files\ExcelFile;
|
||||||
|
use Storage;
|
||||||
|
|
||||||
|
class ImportFile extends ExcelFile
|
||||||
|
{
|
||||||
|
|
||||||
|
public function getFile()
|
||||||
|
{
|
||||||
|
$request = request();
|
||||||
|
|
||||||
|
if (!$request->hasFile('import')) {
|
||||||
|
flash(trans('messages.error.no_file'))->error();
|
||||||
|
|
||||||
|
redirect()->back()->send();
|
||||||
|
}
|
||||||
|
|
||||||
|
$folder = session('company_id') . '/imports';
|
||||||
|
|
||||||
|
// Upload file
|
||||||
|
$path = Storage::path($request->import->store($folder));
|
||||||
|
|
||||||
|
return $path;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getFilters()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'chunk'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -11,14 +11,14 @@ use App\Events\PaymentGatewayListing;
|
|||||||
class Modules
|
class Modules
|
||||||
{
|
{
|
||||||
|
|
||||||
public static function getPaymentMethods()
|
public static function getPaymentMethods($type = null)
|
||||||
{
|
{
|
||||||
|
|
||||||
$payment_methods = Cache::get('payment_methods.admin');
|
$payment_methods = Cache::get('payment_methods.admin');
|
||||||
|
|
||||||
$customer = auth()->user()->customer;
|
$customer = auth()->user()->customer;
|
||||||
|
|
||||||
if ($customer) {
|
if ($customer && $type != 'all') {
|
||||||
$payment_methods = Cache::get('payment_methods.customer');
|
$payment_methods = Cache::get('payment_methods.customer');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ class Modules
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($customer && empty($gateway['customer'])) {
|
if (($customer && empty($gateway['customer'])) && $type != 'all') {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,13 +8,14 @@
|
|||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.6.4",
|
"php": ">=5.6.4",
|
||||||
"akaunting/language": "1.0.*",
|
"akaunting/language": "1.0.*",
|
||||||
|
"akaunting/money": "1.0.*",
|
||||||
"akaunting/setting": "1.0.*",
|
"akaunting/setting": "1.0.*",
|
||||||
"akaunting/version": "1.0.*",
|
"akaunting/version": "1.0.*",
|
||||||
"almasaeed2010/adminlte": "2.3.*",
|
"almasaeed2010/adminlte": "2.3.*",
|
||||||
"barryvdh/laravel-debugbar": "2.3.*",
|
"barryvdh/laravel-debugbar": "2.3.*",
|
||||||
"barryvdh/laravel-dompdf": "0.*",
|
"barryvdh/laravel-dompdf": "0.*",
|
||||||
"barryvdh/laravel-ide-helper": "2.3.*",
|
"barryvdh/laravel-ide-helper": "2.3.*",
|
||||||
"cknow/laravel-money": "1.0.*",
|
"bkwld/cloner": "3.2.*",
|
||||||
"dingo/api": "1.0.0-beta8",
|
"dingo/api": "1.0.0-beta8",
|
||||||
"fzaninotto/faker": "1.6.*",
|
"fzaninotto/faker": "1.6.*",
|
||||||
"guzzlehttp/guzzle": "6.3.*",
|
"guzzlehttp/guzzle": "6.3.*",
|
||||||
@ -26,6 +27,7 @@
|
|||||||
"laravel/framework": "5.4.*",
|
"laravel/framework": "5.4.*",
|
||||||
"laravel/tinker": "~1.0",
|
"laravel/tinker": "~1.0",
|
||||||
"LaravelCollective/html": "5.4.*",
|
"LaravelCollective/html": "5.4.*",
|
||||||
|
"maatwebsite/excel": "2.1.*",
|
||||||
"nwidart/laravel-menus": "0.5.*",
|
"nwidart/laravel-menus": "0.5.*",
|
||||||
"nwidart/laravel-modules": "1.*",
|
"nwidart/laravel-modules": "1.*",
|
||||||
"santigarcor/laratrust": "4.0.*",
|
"santigarcor/laratrust": "4.0.*",
|
||||||
|
@ -184,10 +184,11 @@ return [
|
|||||||
* Vendor Service Providers...
|
* Vendor Service Providers...
|
||||||
*/
|
*/
|
||||||
Akaunting\Language\Provider::class,
|
Akaunting\Language\Provider::class,
|
||||||
|
Akaunting\Money\Provider::class,
|
||||||
Akaunting\Setting\Provider::class,
|
Akaunting\Setting\Provider::class,
|
||||||
Akaunting\Version\Provider::class,
|
Akaunting\Version\Provider::class,
|
||||||
Barryvdh\DomPDF\ServiceProvider::class,
|
Barryvdh\DomPDF\ServiceProvider::class,
|
||||||
ClickNow\Money\MoneyServiceProvider::class,
|
Bkwld\Cloner\ServiceProvider::class,
|
||||||
Collective\Html\HtmlServiceProvider::class,
|
Collective\Html\HtmlServiceProvider::class,
|
||||||
Dingo\Api\Provider\LaravelServiceProvider::class,
|
Dingo\Api\Provider\LaravelServiceProvider::class,
|
||||||
EloquentFilter\ServiceProvider::class,
|
EloquentFilter\ServiceProvider::class,
|
||||||
@ -197,6 +198,7 @@ return [
|
|||||||
Kyslik\ColumnSortable\ColumnSortableServiceProvider::class,
|
Kyslik\ColumnSortable\ColumnSortableServiceProvider::class,
|
||||||
Laracasts\Flash\FlashServiceProvider::class,
|
Laracasts\Flash\FlashServiceProvider::class,
|
||||||
Laratrust\LaratrustServiceProvider::class,
|
Laratrust\LaratrustServiceProvider::class,
|
||||||
|
Maatwebsite\Excel\ExcelServiceProvider::class,
|
||||||
Nwidart\Menus\MenusServiceProvider::class,
|
Nwidart\Menus\MenusServiceProvider::class,
|
||||||
Nwidart\Modules\LaravelModulesServiceProvider::class,
|
Nwidart\Modules\LaravelModulesServiceProvider::class,
|
||||||
Sofa\Eloquence\ServiceProvider::class,
|
Sofa\Eloquence\ServiceProvider::class,
|
||||||
@ -257,6 +259,7 @@ return [
|
|||||||
'Debugbar' => Barryvdh\Debugbar\Facade::class,
|
'Debugbar' => Barryvdh\Debugbar\Facade::class,
|
||||||
'Date' => Jenssegers\Date\Date::class,
|
'Date' => Jenssegers\Date\Date::class,
|
||||||
'DotenvEditor' => Jackiedo\DotenvEditor\Facades\DotenvEditor::class,
|
'DotenvEditor' => Jackiedo\DotenvEditor\Facades\DotenvEditor::class,
|
||||||
|
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
|
||||||
'Form' => Collective\Html\FormFacade::class,
|
'Form' => Collective\Html\FormFacade::class,
|
||||||
'Html' => Collective\Html\HtmlFacade::class,
|
'Html' => Collective\Html\HtmlFacade::class,
|
||||||
'Image' => Intervention\Image\Facades\Image::class,
|
'Image' => Intervention\Image\Facades\Image::class,
|
||||||
|
704
config/excel.php
Normal file
704
config/excel.php
Normal file
@ -0,0 +1,704 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return array(
|
||||||
|
|
||||||
|
'cache' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Enable/Disable cell caching
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'enable' => true,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Caching driver
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Set the caching driver
|
||||||
|
|
|
||||||
|
| Available methods:
|
||||||
|
| memory|gzip|serialized|igbinary|discISAM|apc|memcache|temp|wincache|sqlite|sqlite3
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'driver' => 'memory',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Cache settings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'settings' => [
|
||||||
|
|
||||||
|
'memoryCacheSize' => '32MB',
|
||||||
|
'cacheTime' => 600
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Memcache settings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'memcache' => [
|
||||||
|
|
||||||
|
'host' => 'localhost',
|
||||||
|
'port' => 11211,
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Cache dir (for discISAM)
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
'dir' => storage_path('cache')
|
||||||
|
],
|
||||||
|
|
||||||
|
'properties' => [
|
||||||
|
'creator' => 'Akaunting',
|
||||||
|
'lastModifiedBy' => 'Akaunting',
|
||||||
|
'title' => 'Spreadsheet',
|
||||||
|
'description' => 'Default spreadsheet export',
|
||||||
|
'subject' => 'Spreadsheet export',
|
||||||
|
'keywords' => 'akaunting, excel, export',
|
||||||
|
'category' => 'Excel',
|
||||||
|
'manager' => 'Akaunting',
|
||||||
|
'company' => 'Akaunting',
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Sheets settings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'sheets' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Default page setup
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'pageSetup' => [
|
||||||
|
'orientation' => 'portrait',
|
||||||
|
'paperSize' => '9',
|
||||||
|
'scale' => '100',
|
||||||
|
'fitToPage' => false,
|
||||||
|
'fitToHeight' => true,
|
||||||
|
'fitToWidth' => true,
|
||||||
|
'columnsToRepeatAtLeft' => ['', ''],
|
||||||
|
'rowsToRepeatAtTop' => [0, 0],
|
||||||
|
'horizontalCentered' => false,
|
||||||
|
'verticalCentered' => false,
|
||||||
|
'printArea' => null,
|
||||||
|
'firstPageNumber' => null,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Creator
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The default creator of a new Excel file
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'creator' => 'Akaunting',
|
||||||
|
|
||||||
|
'csv' => [
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Delimiter
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The default delimiter which will be used to read out a CSV file
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'delimiter' => ',',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Enclosure
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
'enclosure' => '"',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Line endings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
'line_ending' => "\r\n",
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| setUseBom
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use_bom' => false
|
||||||
|
],
|
||||||
|
|
||||||
|
'export' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Autosize columns
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Disable/enable column autosize or set the autosizing for
|
||||||
|
| an array of columns ( array('A', 'B') )
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'autosize' => true,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Autosize method
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| --> PHPExcel_Shared_Font::AUTOSIZE_METHOD_APPROX
|
||||||
|
| The default is based on an estimate, which does its calculation based
|
||||||
|
| on the number of characters in the cell value (applying any calculation
|
||||||
|
| and format mask, and allowing for wordwrap and rotation) and with an
|
||||||
|
| "arbitrary" adjustment based on the font (Arial, Calibri or Verdana,
|
||||||
|
| defaulting to Calibri if any other font is used) and a proportional
|
||||||
|
| adjustment for the font size.
|
||||||
|
|
|
||||||
|
| --> PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT
|
||||||
|
| The second method is more accurate, based on actual style formatting as
|
||||||
|
| well (bold, italic, etc), and is calculated by generating a gd2 imagettf
|
||||||
|
| bounding box and using its dimensions to determine the size; but this
|
||||||
|
| method is significantly slower, and its accuracy is still dependent on
|
||||||
|
| having the appropriate fonts installed.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'autosize-method' => PHPExcel_Shared_Font::AUTOSIZE_METHOD_APPROX,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Auto generate table heading
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If set to true, the array indices (or model attribute names)
|
||||||
|
| will automatically be used as first row (table heading)
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'generate_heading_by_indices' => true,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Auto set alignment on merged cells
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'merged_cell_alignment' => 'left',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Pre-calculate formulas during export
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'calculate' => false,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Include Charts during export
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'includeCharts' => false,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Default sheet settings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'sheets' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Default page margin
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| 1) When set to false, default margins will be used
|
||||||
|
| 2) It's possible to enter a single margin which will
|
||||||
|
| be used for all margins.
|
||||||
|
| 3) Alternatively you can pass an array with 4 margins
|
||||||
|
| Default order: array(top, right, bottom, left)
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'page_margin' => false,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Value in source array that stands for blank cell
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'nullValue' => null,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Insert array starting from this cell address as the top left coordinate
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'startCell' => 'A1',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Apply strict comparison when testing for null values in the array
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'strictNullComparison' => false
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Store settings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
'store' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Path
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The path we want to save excel file to
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'path' => storage_path('app/exports'),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Return info
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Whether we want to return information about the stored file or not
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'returnInfo' => false
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| PDF Settings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'pdf' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| PDF Drivers
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Supported: DomPDF, tcPDF, mPDF
|
||||||
|
*/
|
||||||
|
'driver' => 'DomPDF',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| PDF Driver settings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'drivers' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| DomPDF settings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'DomPDF' => [
|
||||||
|
'path' => base_path('vendor/dompdf/dompdf/')
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| tcPDF settings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'tcPDF' => [
|
||||||
|
'path' => base_path('vendor/tecnick.com/tcpdf/')
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| mPDF settings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'mPDF' => [
|
||||||
|
'path' => base_path('vendor/mpdf/mpdf/')
|
||||||
|
],
|
||||||
|
]
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
'filters' => [
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Register read filters
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
'registered' => [
|
||||||
|
'chunk' => 'Maatwebsite\Excel\Filters\ChunkReadFilter'
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Enable certain filters for every file read
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
'enabled' => []
|
||||||
|
],
|
||||||
|
|
||||||
|
'import' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Has heading
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The sheet has a heading (first) row which we can use as attribute names
|
||||||
|
|
|
||||||
|
| Options: true|false|slugged|slugged_with_count|ascii|numeric|hashed|trans|original
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'heading' => 'slugged',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| First Row with data or heading of data
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If the heading row is not the first row, or the data doesn't start
|
||||||
|
| on the first row, here you can change the start row.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'startRow' => 1,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Cell name word separator
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The default separator which is used for the cell names
|
||||||
|
| Note: only applies to 'heading' settings 'true' && 'slugged'
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'separator' => '_',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Slug whitelisting
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Here you can whitelist certain characters in the slug.
|
||||||
|
| E.g. user.last_name will not remove . and _
|
||||||
|
| Note: only applies to 'heading' settings 'true' && 'slugged'
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'slug_whitelist' => '._',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Include Charts during import
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
'includeCharts' => false,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Sheet heading conversion
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Convert headings to ASCII
|
||||||
|
| Note: only applies to 'heading' settings 'true' && 'slugged'
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'to_ascii' => true,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Import encoding
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
'encoding' => [
|
||||||
|
|
||||||
|
'input' => 'UTF-8',
|
||||||
|
'output' => 'UTF-8'
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Calculate
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| By default cells with formulas will be calculated.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'calculate' => true,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Ignore empty cells
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| By default empty cells are not ignored
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'ignoreEmpty' => true,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Force sheet collection
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| For a sheet collection even when there is only 1 sheets.
|
||||||
|
| When set to false and only 1 sheet found, the parsed file will return
|
||||||
|
| a row collection instead of a sheet collection.
|
||||||
|
| When set to true, it will return a sheet collection instead.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'force_sheets_collection' => false,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Date format
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The format dates will be parsed to
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'dates' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Enable/disable date formatting
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'enabled' => true,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Default date format
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If set to false, a carbon object will return
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'format' => false,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Date columns
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'columns' => []
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Import sheets by config
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'sheets' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Example sheet
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Example sheet "test" will grab the firstname at cell A2
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'test' => [
|
||||||
|
|
||||||
|
'firstname' => 'A2'
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
'views' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Styles
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The default styles which will be used when parsing a view
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'styles' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Table headings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'th' => [
|
||||||
|
'font' => [
|
||||||
|
'bold' => true,
|
||||||
|
'size' => 12,
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Strong tags
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'strong' => [
|
||||||
|
'font' => [
|
||||||
|
'bold' => true,
|
||||||
|
'size' => 12,
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Bold tags
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'b' => [
|
||||||
|
'font' => [
|
||||||
|
'bold' => true,
|
||||||
|
'size' => 12,
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Italic tags
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'i' => [
|
||||||
|
'font' => [
|
||||||
|
'italic' => true,
|
||||||
|
'size' => 12,
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Heading 1
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'h1' => [
|
||||||
|
'font' => [
|
||||||
|
'bold' => true,
|
||||||
|
'size' => 24,
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Heading 2
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'h2' => [
|
||||||
|
'font' => [
|
||||||
|
'bold' => true,
|
||||||
|
'size' => 18,
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Heading 3
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'h3' => [
|
||||||
|
'font' => [
|
||||||
|
'bold' => true,
|
||||||
|
'size' => 13.5,
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Heading 4
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'h4' => [
|
||||||
|
'font' => [
|
||||||
|
'bold' => true,
|
||||||
|
'size' => 12,
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Heading 5
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'h5' => [
|
||||||
|
'font' => [
|
||||||
|
'bold' => true,
|
||||||
|
'size' => 10,
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Heading 6
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'h6' => [
|
||||||
|
'font' => [
|
||||||
|
'bold' => true,
|
||||||
|
'size' => 7.5,
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Hyperlinks
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'a' => [
|
||||||
|
'font' => [
|
||||||
|
'underline' => true,
|
||||||
|
'color' => ['argb' => 'FF0000FF'],
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Horizontal rules
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'hr' => [
|
||||||
|
'borders' => [
|
||||||
|
'bottom' => [
|
||||||
|
'style' => 'thin',
|
||||||
|
'color' => ['FF000000']
|
||||||
|
],
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
);
|
@ -115,7 +115,7 @@ return [
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'allowed' => ['en-GB', 'de-DE', 'es-ES', 'fa-IR', 'fr-FR', 'pt-BR', 'ru-RU', 'sq-AL', 'tr-TR', 'zh-TW'],
|
'allowed' => ['en-GB', 'de-DE', 'es-ES', 'fa-IR', 'fr-FR', 'nl-NL', 'pt-BR', 'ru-RU', 'sq-AL', 'tr-TR', 'vi-VN', 'zh-TW'],
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
@ -35,6 +35,7 @@ class Roles extends Seeder
|
|||||||
'auth-permissions' => 'c,r,u,d',
|
'auth-permissions' => 'c,r,u,d',
|
||||||
'auth-profile' => 'r,u',
|
'auth-profile' => 'r,u',
|
||||||
'companies-companies' => 'c,r,u,d',
|
'companies-companies' => 'c,r,u,d',
|
||||||
|
'common-import' => 'c',
|
||||||
'items-items' => 'c,r,u,d',
|
'items-items' => 'c,r,u,d',
|
||||||
'incomes-invoices' => 'c,r,u,d',
|
'incomes-invoices' => 'c,r,u,d',
|
||||||
'incomes-revenues' => 'c,r,u,d',
|
'incomes-revenues' => 'c,r,u,d',
|
||||||
@ -64,6 +65,7 @@ class Roles extends Seeder
|
|||||||
'admin-panel' => 'r',
|
'admin-panel' => 'r',
|
||||||
'auth-profile' => 'r,u',
|
'auth-profile' => 'r,u',
|
||||||
'companies-companies' => 'c,r,u,d',
|
'companies-companies' => 'c,r,u,d',
|
||||||
|
'common-import' => 'c',
|
||||||
'items-items' => 'c,r,u,d',
|
'items-items' => 'c,r,u,d',
|
||||||
'incomes-invoices' => 'c,r,u,d',
|
'incomes-invoices' => 'c,r,u,d',
|
||||||
'incomes-revenues' => 'c,r,u,d',
|
'incomes-revenues' => 'c,r,u,d',
|
||||||
|
@ -6,6 +6,14 @@
|
|||||||
* @link https://akaunting.com
|
* @link https://akaunting.com
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Define minimum supported PHP version
|
||||||
|
define('AKAUNTING_PHP', '5.6.4');
|
||||||
|
|
||||||
|
// Check PHP version
|
||||||
|
if (version_compare(PHP_VERSION, AKAUNTING_PHP, '<')) {
|
||||||
|
die('Your host needs to use PHP ' . AKAUNTING_PHP . ' or higher to run Akaunting');
|
||||||
|
}
|
||||||
|
|
||||||
// Register the auto-loader
|
// Register the auto-loader
|
||||||
require(__DIR__.'/bootstrap/autoload.php');
|
require(__DIR__.'/bootstrap/autoload.php');
|
||||||
|
|
||||||
|
@ -10,4 +10,7 @@ return [
|
|||||||
'order' => 'Order',
|
'order' => 'Order',
|
||||||
'payment_gateways' => 'Offline Payment Methods',
|
'payment_gateways' => 'Offline Payment Methods',
|
||||||
|
|
||||||
|
'confirm' => 'Confirm',
|
||||||
|
'loading' => 'Loading',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -3,82 +3,84 @@
|
|||||||
@section('title', trans('offlinepayment::offlinepayment.offlinepayment'))
|
@section('title', trans('offlinepayment::offlinepayment.offlinepayment'))
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="col-md-4 no-padding-left">
|
<div class="row">
|
||||||
<div class="box box-success">
|
<div class="col-md-4">
|
||||||
<div class="box-header with-border">
|
<div class="box box-success">
|
||||||
<h3 class="box-title">{{ trans('offlinepayment::offlinepayment.add_new') }}</h3>
|
<div class="box-header with-border">
|
||||||
<!-- /.box-tools -->
|
<h3 class="box-title">{{ trans('offlinepayment::offlinepayment.add_new') }}</h3>
|
||||||
</div>
|
<!-- /.box-tools -->
|
||||||
<!-- /.box-header -->
|
|
||||||
|
|
||||||
{!! Form::open(['url' => 'apps/offlinepayment/settings', 'files' => true, 'role' => 'form']) !!}
|
|
||||||
|
|
||||||
<div class="box-body">
|
|
||||||
<div id="install-loading"></div>
|
|
||||||
|
|
||||||
{{ Form::textGroup('name', trans('general.name'), 'id-card-o', ['required' => 'required'], null, 'col-md-12') }}
|
|
||||||
|
|
||||||
{{ Form::textGroup('code', trans('offlinepayment::offlinepayment.code'), 'key', ['required' => 'required'], null, 'col-md-12') }}
|
|
||||||
|
|
||||||
{{ Form::radioGroup('customer', trans('offlinepayment::offlinepayment.customer'), '', ['required' => 'required'], 0, 'col-md-12') }}
|
|
||||||
|
|
||||||
{{ Form::textGroup('order', trans('offlinepayment::offlinepayment.order'), 'sort', [], null, 'col-md-12') }}
|
|
||||||
|
|
||||||
{{ Form::textareaGroup('description', trans('general.description')) }}
|
|
||||||
</div>
|
|
||||||
<!-- /.box-body -->
|
|
||||||
|
|
||||||
<div class="box-footer">
|
|
||||||
{{ Form::saveButtons('apps/offlinepayment/settings') }}
|
|
||||||
</div>
|
|
||||||
<!-- /.box-footer -->
|
|
||||||
|
|
||||||
{!! Form::close() !!}
|
|
||||||
</div>
|
|
||||||
<!-- /.box -->
|
|
||||||
</div>
|
|
||||||
<div class="col-md-8 no-padding-left">
|
|
||||||
<!-- Default box -->
|
|
||||||
<div class="box box-success">
|
|
||||||
<div class="box-header with-border">
|
|
||||||
<h3 class="box-title">{{ trans('offlinepayment::offlinepayment.payment_gateways') }}</h3>
|
|
||||||
<!-- /.box-tools -->
|
|
||||||
</div>
|
|
||||||
<!-- /.box-header -->
|
|
||||||
<div class="box-body">
|
|
||||||
<div class="table table-responsive">
|
|
||||||
<table class="table table-striped table-hover" id="tbl-items">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="col-md-3">{{ trans('general.name') }}</th>
|
|
||||||
<th class="col-md-4">{{ trans('offlinepayment::offlinepayment.code') }}</th>
|
|
||||||
<th class="col-md-2 text-center">{{ trans('offlinepayment::offlinepayment.order') }}</th>
|
|
||||||
<th class="col-md-3">{{ trans('general.actions') }}</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
@if($items)
|
|
||||||
@foreach($items as $item)
|
|
||||||
<tr id="method-{{ $item->code }}">
|
|
||||||
<td>{{ $item->name }}</td>
|
|
||||||
<td>{{ $item->code }}</td>
|
|
||||||
<td class="text-center">{{ $item->order }}</td>
|
|
||||||
<td>
|
|
||||||
<button type="button" class="btn btn-primary btn-xs method-edit" id="edit-{{ $item->code }}" title="{{ trans('general.edit') }}"><i class="fa fa-pencil-square-o" aria-hidden="true"></i> {{ trans('general.edit') }}</button>
|
|
||||||
<button type="button" class="btn btn-danger btn-xs method-delete" id="delete-{{ $item->code }}" title="{{ trans('general.delete') }}"><i class="fa fa-trash-o" aria-hidden="true"></i> {{ trans('general.delete') }}</button>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
@endforeach
|
|
||||||
@else
|
|
||||||
|
|
||||||
@endif
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
<!-- /.box-header -->
|
||||||
|
|
||||||
|
{!! Form::open(['url' => 'apps/offlinepayment/settings', 'files' => true, 'role' => 'form']) !!}
|
||||||
|
|
||||||
|
<div class="box-body">
|
||||||
|
<div id="install-loading"></div>
|
||||||
|
|
||||||
|
{{ Form::textGroup('name', trans('general.name'), 'id-card-o', ['required' => 'required'], null, 'col-md-12') }}
|
||||||
|
|
||||||
|
{{ Form::textGroup('code', trans('offlinepayment::offlinepayment.code'), 'key', ['required' => 'required'], null, 'col-md-12') }}
|
||||||
|
|
||||||
|
{{ Form::radioGroup('customer', trans('offlinepayment::offlinepayment.customer'), '', ['required' => 'required'], 0, 'col-md-12') }}
|
||||||
|
|
||||||
|
{{ Form::textGroup('order', trans('offlinepayment::offlinepayment.order'), 'sort', [], null, 'col-md-12') }}
|
||||||
|
|
||||||
|
{{ Form::textareaGroup('description', trans('general.description')) }}
|
||||||
|
</div>
|
||||||
|
<!-- /.box-body -->
|
||||||
|
|
||||||
|
<div class="box-footer">
|
||||||
|
{{ Form::saveButtons('apps/offlinepayment/settings') }}
|
||||||
|
</div>
|
||||||
|
<!-- /.box-footer -->
|
||||||
|
|
||||||
|
{!! Form::close() !!}
|
||||||
</div>
|
</div>
|
||||||
<!-- /.box-body -->
|
<!-- /.box -->
|
||||||
|
</div>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<!-- Default box -->
|
||||||
|
<div class="box box-success">
|
||||||
|
<div class="box-header with-border">
|
||||||
|
<h3 class="box-title">{{ trans('offlinepayment::offlinepayment.payment_gateways') }}</h3>
|
||||||
|
<!-- /.box-tools -->
|
||||||
|
</div>
|
||||||
|
<!-- /.box-header -->
|
||||||
|
<div class="box-body">
|
||||||
|
<div class="table table-responsive">
|
||||||
|
<table class="table table-striped table-hover" id="tbl-items">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="col-md-3">{{ trans('general.name') }}</th>
|
||||||
|
<th class="col-md-4">{{ trans('offlinepayment::offlinepayment.code') }}</th>
|
||||||
|
<th class="col-md-2 text-center">{{ trans('offlinepayment::offlinepayment.order') }}</th>
|
||||||
|
<th class="col-md-3">{{ trans('general.actions') }}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@if($items)
|
||||||
|
@foreach($items as $item)
|
||||||
|
<tr id="method-{{ $item->code }}">
|
||||||
|
<td>{{ $item->name }}</td>
|
||||||
|
<td>{{ $item->code }}</td>
|
||||||
|
<td class="text-center">{{ $item->order }}</td>
|
||||||
|
<td>
|
||||||
|
<button type="button" class="btn btn-primary btn-xs method-edit" id="edit-{{ $item->code }}" title="{{ trans('general.edit') }}"><i class="fa fa-pencil-square-o" aria-hidden="true"></i> {{ trans('general.edit') }}</button>
|
||||||
|
<button type="button" class="btn btn-danger btn-xs method-delete" id="delete-{{ $item->code }}" title="{{ trans('general.delete') }}"><i class="fa fa-trash-o" aria-hidden="true"></i> {{ trans('general.delete') }}</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
@else
|
||||||
|
|
||||||
|
@endif
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.box-body -->
|
||||||
|
</div>
|
||||||
|
<!-- /.box -->
|
||||||
</div>
|
</div>
|
||||||
<!-- /.box -->
|
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
|
4
public/css/app.css
vendored
4
public/css/app.css
vendored
@ -453,6 +453,10 @@ ul.add-new.nav.navbar-nav.pull-left {
|
|||||||
overflow-x: visible;
|
overflow-x: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.margin-top {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
@media only screen and (max-width : 768px) {
|
@media only screen and (max-width : 768px) {
|
||||||
.main-header .add-new.nav.navbar-nav i {
|
.main-header .add-new.nav.navbar-nav i {
|
||||||
margin-top: 3px;
|
margin-top: 3px;
|
||||||
|
2
public/files/import/bills.csv
Normal file
2
public/files/import/bills.csv
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
"bill_number","order_number","bill_status_code","billed_at","due_at","amount","currency_code","currency_rate","vendor_id","vendor_name","vendor_email","vendor_tax_number","vendor_phone","vendor_address","notes","attachment","created_at","updated_at","deleted_at"
|
||||||
|
"987654","","received","2017-11-30","2017-12-07","10.0000","USD","1.00000000","1","Test Vendor","test@vendor.com","","","","","","2017-11-30 00:00:00","2017-11-30 00:00:00",NULL
|
|
2
public/files/import/customers.csv
Normal file
2
public/files/import/customers.csv
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
"user_id","name","email","tax_number","phone","address","website","currency_code","enabled","created_at","updated_at","deleted_at"
|
||||||
|
"","Test Customer","test@customer.com","","","","","USD","1","2017-11-30 00:00:00","2017-11-30 00:00:00",NULL
|
|
2
public/files/import/invoices.csv
Normal file
2
public/files/import/invoices.csv
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
"invoice_number","order_number","invoice_status_code","invoiced_at","due_at","amount","currency_code","currency_rate","customer_id","customer_name","customer_email","customer_tax_number","customer_phone","customer_address","notes","attachment","created_at","updated_at","deleted_at"
|
||||||
|
"INV-00001","","sent","2017-11-30","2017-12-07","10.0000","USD","1.00000000","1","Test Customer","test@customer.com","","","","","","2017-11-30 00:00:00","2017-11-30 00:00:00",NULL
|
|
2
public/files/import/items.csv
Normal file
2
public/files/import/items.csv
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
"name","sku","description","sale_price","purchase_price","quantity","category_id","tax_id","picture","enabled","created_at","updated_at","deleted_at"
|
||||||
|
"Test Item","test-item","","10.0000","5.0000","1","5","2","items/test-item.png","1","2017-11-30 00:00:00","2017-11-30 00:00:00",NULL
|
|
2
public/files/import/payments.csv
Normal file
2
public/files/import/payments.csv
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
"account_id","paid_at","amount","currency_code","currency_rate","vendor_id","description","category_id","payment_method","reference","attachment","created_at","updated_at","deleted_at"
|
||||||
|
"1","2017-11-30","10.0000","USD","1.00000000","1","","4","offlinepayment.cash.1","","","2017-11-30 00:00:00","2017-11-30 00:00:00",NULL
|
|
2
public/files/import/revenues.csv
Normal file
2
public/files/import/revenues.csv
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
"account_id","paid_at","amount","currency_code","currency_rate","customer_id","description","category_id","payment_method","reference","attachment","created_at","updated_at","deleted_at"
|
||||||
|
"1","2017-11-30","10.0000","USD","1.00000000","","","3","offlinepayment.cash.1","","revenues/test-revenue.pdf","2017-11-30 00:00:00","2017-11-30 00:00:00",NULL
|
|
2
public/files/import/vendors.csv
Normal file
2
public/files/import/vendors.csv
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
"user_id","name","email","tax_number","phone","address","website","currency_code","enabled","created_at","updated_at","deleted_at"
|
||||||
|
"","Test Vendor","test@vendor.com","","","","","USD","1","2017-11-30 00:00:00","2017-11-30 00:00:00",NULL
|
|
@ -10,6 +10,5 @@ return [
|
|||||||
'bank_phone' => 'Bank Telefonnummer',
|
'bank_phone' => 'Bank Telefonnummer',
|
||||||
'bank_address' => 'Bank Adresse',
|
'bank_address' => 'Bank Adresse',
|
||||||
'default_account' => 'Standardkonto',
|
'default_account' => 'Standardkonto',
|
||||||
'all' => 'Alle Konten',
|
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -24,6 +24,7 @@ return [
|
|||||||
],
|
],
|
||||||
|
|
||||||
'failed' => 'Diese Anmeldeinformationen entsprechen nicht unseren Aufzeichnungen.',
|
'failed' => 'Diese Anmeldeinformationen entsprechen nicht unseren Aufzeichnungen.',
|
||||||
|
'disabled' => 'Dieses Konto ist deaktiviert! Bitte kontaktieren Sie den Systemadministrator.',
|
||||||
'throttle' => 'Zu viele fehlgeschlagene Anmeldeversuche. Bitte versuchen Sie es erneut in :seconds Sekunden.',
|
'throttle' => 'Zu viele fehlgeschlagene Anmeldeversuche. Bitte versuchen Sie es erneut in :seconds Sekunden.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -23,14 +23,19 @@ return [
|
|||||||
'histories' => 'Historie',
|
'histories' => 'Historie',
|
||||||
'payments' => 'Zahlungen',
|
'payments' => 'Zahlungen',
|
||||||
'add_payment' => 'Zahlung hinzufügen',
|
'add_payment' => 'Zahlung hinzufügen',
|
||||||
|
'mark_received' => 'Als erhalten markieren',
|
||||||
'download_pdf' => 'PDF herunterladen',
|
'download_pdf' => 'PDF herunterladen',
|
||||||
'send_mail' => 'E-Mail senden',
|
'send_mail' => 'E-Mail senden',
|
||||||
|
|
||||||
'status' => [
|
'status' => [
|
||||||
'new' => 'Neu',
|
'draft' => 'Entwurf',
|
||||||
'updated' => 'Aktualisiert',
|
'received' => 'Erhalten',
|
||||||
'partial' => 'Teilweise',
|
'partial' => 'Teilweise',
|
||||||
'paid' => 'Bezahlt',
|
'paid' => 'Bezahlt',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'messages' => [
|
||||||
|
'received' => 'Rechnung als erfolgreich erhalten markiert!',
|
||||||
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
return [
|
|
||||||
'all' => 'Alle Kunden',
|
|
||||||
];
|
|
11
resources/lang/de-DE/customers.php
Normal file
11
resources/lang/de-DE/customers.php
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'allow_login' => 'Login erlauben?',
|
||||||
|
'user_created' => 'Benutzer angelegt',
|
||||||
|
|
||||||
|
'error' => [
|
||||||
|
'email' => 'Diese Email wurde bereits benutzt.'
|
||||||
|
]
|
||||||
|
];
|
@ -11,7 +11,7 @@ return [
|
|||||||
'currencies_gbp' => 'Britisches Pfund',
|
'currencies_gbp' => 'Britisches Pfund',
|
||||||
'currencies_try' => 'Türkische Lira',
|
'currencies_try' => 'Türkische Lira',
|
||||||
'taxes_exempt' => 'Steuerbefreit',
|
'taxes_exempt' => 'Steuerbefreit',
|
||||||
'taxes_normal' => 'Normal',
|
'taxes_normal' => 'Normale Steuer',
|
||||||
'taxes_sales' => 'Umsatzsteuer',
|
'taxes_sales' => 'Umsatzsteuer',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -35,6 +35,7 @@ return [
|
|||||||
'languages' => 'Sprache | Sprachen',
|
'languages' => 'Sprache | Sprachen',
|
||||||
'updates' => 'Aktualisierung| Aktualisierungen',
|
'updates' => 'Aktualisierung| Aktualisierungen',
|
||||||
'numbers' => 'Nummer| Nummern',
|
'numbers' => 'Nummer| Nummern',
|
||||||
|
'statuses' => 'Status | Stati',
|
||||||
|
|
||||||
'dashboard' => 'Kontrollzentrum',
|
'dashboard' => 'Kontrollzentrum',
|
||||||
'banking' => 'Banking',
|
'banking' => 'Banking',
|
||||||
@ -76,22 +77,20 @@ return [
|
|||||||
'color' => 'Farbe',
|
'color' => 'Farbe',
|
||||||
'save' => 'Speichern',
|
'save' => 'Speichern',
|
||||||
'cancel' => 'Abbrechen',
|
'cancel' => 'Abbrechen',
|
||||||
'status' => 'Status',
|
|
||||||
'from' => 'Von',
|
'from' => 'Von',
|
||||||
'to' => 'An',
|
'to' => 'An',
|
||||||
'print' => 'Drucken',
|
'print' => 'Drucken',
|
||||||
'search' => 'Suchen',
|
'search' => 'Suchen',
|
||||||
'search_placeholder' => 'Typ um zu suchen..',
|
'search_placeholder' => 'Typ um zu suchen..',
|
||||||
'filter' => 'Filter',
|
'filter' => 'Filter',
|
||||||
'create_user' => 'Benutzer erstellen',
|
|
||||||
'created_user' => 'Erstellter Benutzer',
|
|
||||||
'all_statuses' => 'Alle Status',
|
|
||||||
'bank' => 'Überweisungen',
|
|
||||||
'cash' => 'Bar',
|
|
||||||
'paypal' => 'PayPal',
|
|
||||||
'help' => 'Hilfe',
|
'help' => 'Hilfe',
|
||||||
'all' => 'Alle',
|
'all' => 'Alle',
|
||||||
|
'all_type' => 'Alle :Typ',
|
||||||
'upcoming' => 'Anstehend',
|
'upcoming' => 'Anstehend',
|
||||||
|
'created' => 'Erstellt',
|
||||||
|
'id' => 'ID',
|
||||||
|
'more_actions' => 'Weitere Aktionen',
|
||||||
|
'duplicate' => 'Duplikat',
|
||||||
|
|
||||||
'title' => [
|
'title' => [
|
||||||
'new' => 'Neu :type',
|
'new' => 'Neu :type',
|
||||||
|
@ -8,6 +8,7 @@ return [
|
|||||||
'counter' => '{0} Sie haben keine Benachrichtigungen|{1} Sie haben :count Benachrichtigung|[2,*] Sie haben :count Benachrichtigungen',
|
'counter' => '{0} Sie haben keine Benachrichtigungen|{1} Sie haben :count Benachrichtigung|[2,*] Sie haben :count Benachrichtigungen',
|
||||||
'overdue_invoices' => '{1} :count überfällige Rechnung|[2,*] :count überfällige Rechnungen',
|
'overdue_invoices' => '{1} :count überfällige Rechnung|[2,*] :count überfällige Rechnungen',
|
||||||
'upcoming_bills' => '{1} :count bevorstehende Rechnung|[2,*] :count bevorstehende Rechnungen',
|
'upcoming_bills' => '{1} :count bevorstehende Rechnung|[2,*] :count bevorstehende Rechnungen',
|
||||||
|
'items_stock' => '{1}:count Artikel ausverkauft|[2,*]:count Artikel ausverkauft',
|
||||||
'view_all' => 'Alle anzeigen'
|
'view_all' => 'Alle anzeigen'
|
||||||
],
|
],
|
||||||
|
|
||||||
|
9
resources/lang/de-DE/import.php
Normal file
9
resources/lang/de-DE/import.php
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'import' => 'Import',
|
||||||
|
'title' => 'Import :type',
|
||||||
|
'message' => 'Allowed file types: CSV, XLS. Please, <a target="_blank" href=":link"><strong>download</strong></a> the sample file.',
|
||||||
|
|
||||||
|
];
|
@ -22,6 +22,8 @@ return [
|
|||||||
'histories' => 'Historie',
|
'histories' => 'Historie',
|
||||||
'payments' => 'Zahlungen',
|
'payments' => 'Zahlungen',
|
||||||
'add_payment' => 'Zahlung hinzufügen',
|
'add_payment' => 'Zahlung hinzufügen',
|
||||||
|
'mark_paid' => 'Als bezahlt markieren',
|
||||||
|
'mark_sent' => 'Als versendet markieren',
|
||||||
'download_pdf' => 'PDF herunterladen',
|
'download_pdf' => 'PDF herunterladen',
|
||||||
'send_mail' => 'E-Mail senden',
|
'send_mail' => 'E-Mail senden',
|
||||||
|
|
||||||
@ -34,4 +36,14 @@ return [
|
|||||||
'paid' => 'Bezahlt',
|
'paid' => 'Bezahlt',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'messages' => [
|
||||||
|
'email_sent' => 'Rechnungsemail wurde erfolgreich versendet!',
|
||||||
|
'marked_sent' => 'Rechnung als erfolgreich versendet markiert!',
|
||||||
|
],
|
||||||
|
|
||||||
|
'notification' => [
|
||||||
|
'message' => 'Sie erhalten diese Email, da eine Rechnung in Höhe von :amount für den Kunden :customer ansteht.',
|
||||||
|
'button' => 'Jetzt bezahlen',
|
||||||
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -7,4 +7,9 @@ return [
|
|||||||
'purchase_price' => 'Einkaufspreis',
|
'purchase_price' => 'Einkaufspreis',
|
||||||
'sku' => 'SKU',
|
'sku' => 'SKU',
|
||||||
|
|
||||||
|
'notification' => [
|
||||||
|
'message' => 'Sie erhalten diese EMail, da :name nur noch begrenzt verfügbar ist.',
|
||||||
|
'button' => 'Jetzt ansehen',
|
||||||
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -6,12 +6,17 @@ return [
|
|||||||
'added' => ':type hinzugefügt!',
|
'added' => ':type hinzugefügt!',
|
||||||
'updated' => ':type aktualisiert!',
|
'updated' => ':type aktualisiert!',
|
||||||
'deleted' => ':type gelöscht!',
|
'deleted' => ':type gelöscht!',
|
||||||
|
'duplicated' => ':type dupliziert!',
|
||||||
|
'imported' => ':type imported!',
|
||||||
],
|
],
|
||||||
'error' => [
|
'error' => [
|
||||||
'not_user_company' => 'Fehler: Sie haben nicht die Berechtigung um diese Firma zu verwalten!',
|
'not_user_company' => 'Fehler: Sie haben nicht die Berechtigung um diese Firma zu verwalten!',
|
||||||
|
'customer' => 'Fehler: Sie können diesen Benutzer nicht erstellen! :name benutzt diese Email bereits.',
|
||||||
|
'no_file' => 'Error: No file selected!',
|
||||||
],
|
],
|
||||||
'warning' => [
|
'warning' => [
|
||||||
'deleted' => 'Achtung: Sie können :type nicht löschen, da :text',
|
'deleted' => 'Warnung: Sie dürfen <b>:name</b> nicht löschen, da :text dazu in Bezug steht.',
|
||||||
|
'disabled' => 'Warnung: Sie dürfen <b>:name</b> nicht deaktivieren, da :text dazu in Bezug steht.',
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -2,41 +2,42 @@
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'api_token' => 'Token',
|
'title' => 'API Token',
|
||||||
'enter_api_token' => 'Geben Sie Ihren API-Schlüssel ein',
|
'api_token' => 'Token',
|
||||||
'top_paid' => 'Top bezahlt',
|
'top_paid' => 'Top bezahlt',
|
||||||
'new' => 'Neu',
|
'new' => 'Neu',
|
||||||
'top_free' => 'Top kostenlos',
|
'top_free' => 'Top kostenlos',
|
||||||
'free' => 'Kostenlos',
|
'free' => 'Kostenlos',
|
||||||
'install' => 'Installieren',
|
'install' => 'Installieren',
|
||||||
'buy_now' => 'Jetzt kaufen',
|
'buy_now' => 'Jetzt kaufen',
|
||||||
'faq' => 'Häufige Fragen / FAQ',
|
'faq' => 'Häufige Fragen / FAQ',
|
||||||
'changelog' => 'Changelog',
|
'changelog' => 'Changelog',
|
||||||
'installed' => 'Changelog',
|
'installed' => 'Installiert',
|
||||||
'uninstalled' => 'Changelog',
|
'uninstalled' => 'Deinstalliert',
|
||||||
|
'token_link' => '<a href="https://akaunting.com/tokens" target="_blank">Hier klicken</a> um Ihren API Token zu erhalten.',
|
||||||
|
|
||||||
'enabled' => ':module Modul aktiviert',
|
'enabled' => 'Anwendung :module aktiviert',
|
||||||
'disabled' => ':module Modul deaktiviert',
|
'disabled' => 'Anwendung :module deaktiviert',
|
||||||
|
|
||||||
'installation' => [
|
'installation' => [
|
||||||
'header' => 'Modulinstallation',
|
'header' => 'Modulinstallation',
|
||||||
'start' => ':module wird installiert.',
|
'start' => ':module wird installiert.',
|
||||||
'download' => 'Lade :module Dateien herunter.',
|
'download' => 'Lade :module Dateien herunter.',
|
||||||
'unzip' => 'Extrahiere :module Dateien.',
|
'unzip' => 'Extrahiere :module Dateien.',
|
||||||
'install' => 'Lade :module Dateien hoch.',
|
'install' => 'Lade :module Dateien hoch.',
|
||||||
],
|
],
|
||||||
|
|
||||||
'history' => [
|
'history' => [
|
||||||
'installed' => ':module installiert',
|
'installed' => ':module installiert',
|
||||||
'uninstalled' => ':module deinstallieren',
|
'uninstalled' => ':module deinstallieren',
|
||||||
'updated' => ':module aktualisiert',
|
'updated' => ':module aktualisiert',
|
||||||
'enabled' => ':module aktiviert',
|
'enabled' => ':module aktiviert',
|
||||||
'disabled' => ':module deaktiviert',
|
'disabled' => ':module deaktiviert',
|
||||||
],
|
],
|
||||||
|
|
||||||
'button' => [
|
'button' => [
|
||||||
'uninstall' => 'Deinstallieren',
|
'uninstall' => 'Deinstallieren',
|
||||||
'disable' => 'Deaktivieren',
|
'disable' => 'Deaktivieren',
|
||||||
'enable' => 'Aktivieren',
|
'enable' => 'Aktivieren',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
@ -24,10 +24,10 @@ return [
|
|||||||
],
|
],
|
||||||
'invoice' => [
|
'invoice' => [
|
||||||
'tab' => 'Rechnung',
|
'tab' => 'Rechnung',
|
||||||
'prefix' => 'Rechnung-Präfix',
|
'prefix' => 'Zahlenprefix',
|
||||||
'digit' => 'Rechnungsnummer Zahl',
|
'digit' => 'Nachkommastellen',
|
||||||
'start' => 'Rechnungsnummer Start bei',
|
'next' => 'Nächste Nummer',
|
||||||
'logo' => 'Rechnung-Logo',
|
'logo' => 'Logo',
|
||||||
],
|
],
|
||||||
'default' => [
|
'default' => [
|
||||||
'tab' => 'Standardeinstellungen',
|
'tab' => 'Standardeinstellungen',
|
||||||
|
@ -6,7 +6,10 @@ return [
|
|||||||
'latest_version' => 'Neueste Version',
|
'latest_version' => 'Neueste Version',
|
||||||
'update' => 'Update Akaunting auf Version :version',
|
'update' => 'Update Akaunting auf Version :version',
|
||||||
'changelog' => 'Changelog',
|
'changelog' => 'Changelog',
|
||||||
|
'check' => 'Prüfen',
|
||||||
'new_core' => 'Eine aktualisierte Version Akaunting ist verfügbar.',
|
'new_core' => 'Eine aktualisierte Version Akaunting ist verfügbar.',
|
||||||
'latest_core' => 'Glückwunsch! Sie nutzen die aktuellste Version von Akaunting. Zukünftige Sicherheitsupdates werden automatisch angewendet.',
|
'latest_core' => 'Glückwunsch! Sie nutzen die aktuellste Version von Akaunting. Zukünftige Sicherheitsupdates werden automatisch angewendet.',
|
||||||
|
'success' => 'Der Updateprozess wurde erfolgreich ausgeführt.',
|
||||||
|
'error' => 'Updateprozess fehlgeschlagen, bitte erneut versuchen.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
return [
|
|
||||||
'all' => 'All Customers',
|
|
||||||
|
|
||||||
'error' => [
|
|
||||||
'email' => 'The email has already been taken.'
|
|
||||||
]
|
|
||||||
];
|
|
11
resources/lang/en-GB/customers.php
Normal file
11
resources/lang/en-GB/customers.php
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'allow_login' => 'Allow Login?',
|
||||||
|
'user_created' => 'User Created',
|
||||||
|
|
||||||
|
'error' => [
|
||||||
|
'email' => 'The email has already been taken.'
|
||||||
|
]
|
||||||
|
];
|
@ -83,8 +83,6 @@ return [
|
|||||||
'search' => 'Search',
|
'search' => 'Search',
|
||||||
'search_placeholder' => 'Type to search..',
|
'search_placeholder' => 'Type to search..',
|
||||||
'filter' => 'Filter',
|
'filter' => 'Filter',
|
||||||
'create_user' => 'Create User',
|
|
||||||
'created_user' => 'Created User',
|
|
||||||
'help' => 'Help',
|
'help' => 'Help',
|
||||||
'all' => 'All',
|
'all' => 'All',
|
||||||
'all_type' => 'All :type',
|
'all_type' => 'All :type',
|
||||||
@ -92,6 +90,7 @@ return [
|
|||||||
'created' => 'Created',
|
'created' => 'Created',
|
||||||
'id' => 'ID',
|
'id' => 'ID',
|
||||||
'more_actions' => 'More Actions',
|
'more_actions' => 'More Actions',
|
||||||
|
'duplicate' => 'Duplicate',
|
||||||
|
|
||||||
'title' => [
|
'title' => [
|
||||||
'new' => 'New :type',
|
'new' => 'New :type',
|
||||||
|
9
resources/lang/en-GB/import.php
Normal file
9
resources/lang/en-GB/import.php
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'import' => 'Import',
|
||||||
|
'title' => 'Import :type',
|
||||||
|
'message' => 'Allowed file types: CSV, XLS. Please, <a target="_blank" href=":link"><strong>download</strong></a> the sample file.',
|
||||||
|
|
||||||
|
];
|
@ -17,7 +17,6 @@ return [
|
|||||||
],
|
],
|
||||||
|
|
||||||
'requirements' => [
|
'requirements' => [
|
||||||
'php_version' => 'PHP 5.6.4 or above needs to be used!',
|
|
||||||
'enabled' => ':feature needs to be enabled!',
|
'enabled' => ':feature needs to be enabled!',
|
||||||
'disabled' => ':feature needs to be disabled!',
|
'disabled' => ':feature needs to be disabled!',
|
||||||
'extension' => ':extension extension needs to be loaded!',
|
'extension' => ':extension extension needs to be loaded!',
|
||||||
|
@ -6,10 +6,13 @@ return [
|
|||||||
'added' => ':type added!',
|
'added' => ':type added!',
|
||||||
'updated' => ':type updated!',
|
'updated' => ':type updated!',
|
||||||
'deleted' => ':type deleted!',
|
'deleted' => ':type deleted!',
|
||||||
|
'duplicated' => ':type duplicated!',
|
||||||
|
'imported' => ':type imported!',
|
||||||
],
|
],
|
||||||
'error' => [
|
'error' => [
|
||||||
'not_user_company' => 'Error: You are not allowed to manage this company!',
|
'not_user_company' => 'Error: You are not allowed to manage this company!',
|
||||||
'customer' => 'Error: You can not created user! :name use this email address.',
|
'customer' => 'Error: You can not created user! :name use this email address.',
|
||||||
|
'no_file' => 'Error: No file selected!',
|
||||||
],
|
],
|
||||||
'warning' => [
|
'warning' => [
|
||||||
'deleted' => 'Warning: You are not allowed to delete <b>:name</b> because it has :text related.',
|
'deleted' => 'Warning: You are not allowed to delete <b>:name</b> because it has :text related.',
|
||||||
|
@ -10,6 +10,5 @@ return [
|
|||||||
'bank_phone' => 'Teléfono Banco',
|
'bank_phone' => 'Teléfono Banco',
|
||||||
'bank_address' => 'Dirección del Banco',
|
'bank_address' => 'Dirección del Banco',
|
||||||
'default_account' => 'Cuenta Predeterminada',
|
'default_account' => 'Cuenta Predeterminada',
|
||||||
'all' => 'Todas las cuentas',
|
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -24,6 +24,7 @@ return [
|
|||||||
],
|
],
|
||||||
|
|
||||||
'failed' => 'Estas credenciales no coinciden con nuestros registros.',
|
'failed' => 'Estas credenciales no coinciden con nuestros registros.',
|
||||||
|
'disabled' => 'Esta cuenta está deshabilitada. Por favor, póngase en contacto con el administrador del sistema.',
|
||||||
'throttle' => 'Demasiados intentos fallidos de inicio de sesión. Por favor vuelva a intentarlo después de %s segundos.',
|
'throttle' => 'Demasiados intentos fallidos de inicio de sesión. Por favor vuelva a intentarlo después de %s segundos.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -23,14 +23,19 @@ return [
|
|||||||
'histories' => 'Historial',
|
'histories' => 'Historial',
|
||||||
'payments' => 'Pagos',
|
'payments' => 'Pagos',
|
||||||
'add_payment' => 'Añadir pago',
|
'add_payment' => 'Añadir pago',
|
||||||
|
'mark_received' => 'Marcar como recibido',
|
||||||
'download_pdf' => 'Descargar PDF',
|
'download_pdf' => 'Descargar PDF',
|
||||||
'send_mail' => 'Enviar Email',
|
'send_mail' => 'Enviar Email',
|
||||||
|
|
||||||
'status' => [
|
'status' => [
|
||||||
'new' => 'Nuevo',
|
'draft' => 'Borrador',
|
||||||
'updated' => 'Actualizado',
|
'received' => 'Recibido',
|
||||||
'partial' => 'Parcial',
|
'partial' => 'Parcial',
|
||||||
'paid' => 'Pagado',
|
'paid' => 'Pagado',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'messages' => [
|
||||||
|
'received' => 'Recibo marcado como recibido con éxito!',
|
||||||
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
return [
|
|
||||||
'all' => 'Todos los clientes',
|
|
||||||
];
|
|
11
resources/lang/es-ES/customers.php
Normal file
11
resources/lang/es-ES/customers.php
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'allow_login' => '¿Permitir inicio de sesión?',
|
||||||
|
'user_created' => 'Usuario Creado',
|
||||||
|
|
||||||
|
'error' => [
|
||||||
|
'email' => 'Ese email ya está en uso.'
|
||||||
|
]
|
||||||
|
];
|
@ -11,7 +11,7 @@ return [
|
|||||||
'currencies_gbp' => 'Libra esterlina',
|
'currencies_gbp' => 'Libra esterlina',
|
||||||
'currencies_try' => 'Libra turca',
|
'currencies_try' => 'Libra turca',
|
||||||
'taxes_exempt' => 'Exentos de impuestos',
|
'taxes_exempt' => 'Exentos de impuestos',
|
||||||
'taxes_normal' => 'Normal',
|
'taxes_normal' => 'Impuesto Normal',
|
||||||
'taxes_sales' => 'Impuesto sobre Ventas',
|
'taxes_sales' => 'Impuesto sobre Ventas',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -35,6 +35,7 @@ return [
|
|||||||
'languages' => 'Idioma | Idiomas',
|
'languages' => 'Idioma | Idiomas',
|
||||||
'updates' => 'Actualización | Actualizaciones',
|
'updates' => 'Actualización | Actualizaciones',
|
||||||
'numbers' => 'Número | Números',
|
'numbers' => 'Número | Números',
|
||||||
|
'statuses' => 'Estado|Estados',
|
||||||
|
|
||||||
'dashboard' => 'Panel de Control',
|
'dashboard' => 'Panel de Control',
|
||||||
'banking' => 'Banking',
|
'banking' => 'Banking',
|
||||||
@ -76,23 +77,20 @@ return [
|
|||||||
'color' => 'Color',
|
'color' => 'Color',
|
||||||
'save' => 'Guardar',
|
'save' => 'Guardar',
|
||||||
'cancel' => 'Cancelar',
|
'cancel' => 'Cancelar',
|
||||||
'status' => 'Estado',
|
|
||||||
'from' => 'De ',
|
'from' => 'De ',
|
||||||
'to' => 'Para',
|
'to' => 'Para',
|
||||||
'print' => 'Imprimir',
|
'print' => 'Imprimir',
|
||||||
'search' => 'Buscar',
|
'search' => 'Buscar',
|
||||||
'search_placeholder' => 'Escriba para buscar..',
|
'search_placeholder' => 'Escriba para buscar..',
|
||||||
'filter' => 'Filtro',
|
'filter' => 'Filtro',
|
||||||
'create_user' => 'Crear Usuario',
|
|
||||||
'created_user' => 'Usuario Creado',
|
|
||||||
'all_statuses' => 'Todos los Estados',
|
|
||||||
'bank' => 'Transferencia Bancaria',
|
|
||||||
'cash' => 'Efectivo',
|
|
||||||
'paypal' => 'PayPal',
|
|
||||||
'help' => 'Ayuda',
|
'help' => 'Ayuda',
|
||||||
'all' => 'Todos',
|
'all' => 'Todos',
|
||||||
|
'all_type' => 'Todos :type',
|
||||||
'upcoming' => 'Próximos',
|
'upcoming' => 'Próximos',
|
||||||
'created' => 'Creado',
|
'created' => 'Creado',
|
||||||
|
'id' => 'ID',
|
||||||
|
'more_actions' => 'Más acciones',
|
||||||
|
'duplicate' => 'Duplicar',
|
||||||
|
|
||||||
'title' => [
|
'title' => [
|
||||||
'new' => 'Nuevo :type',
|
'new' => 'Nuevo :type',
|
||||||
|
@ -7,7 +7,8 @@ return [
|
|||||||
'notifications' => [
|
'notifications' => [
|
||||||
'counter' => '{0} No tiene notificaciones |{1} Tiene :count notificación | [2,*] Tiene :count notificaciones',
|
'counter' => '{0} No tiene notificaciones |{1} Tiene :count notificación | [2,*] Tiene :count notificaciones',
|
||||||
'overdue_invoices' => '{1} :count factura vencida | [2,*] :count facturas vencidas',
|
'overdue_invoices' => '{1} :count factura vencida | [2,*] :count facturas vencidas',
|
||||||
'upcoming_bills' => '{1} :count factura vencida|[2,*] :count facturas vencidas',
|
'upcoming_bills' => '{1} :count recibo por vencer|[2,*] :count recibo por vencer',
|
||||||
|
'items_stock' => '{1} :count artículo sin stock|[2,*] :count artículos sin stock',
|
||||||
'view_all' => 'Ver todas'
|
'view_all' => 'Ver todas'
|
||||||
],
|
],
|
||||||
|
|
||||||
|
9
resources/lang/es-ES/import.php
Normal file
9
resources/lang/es-ES/import.php
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'import' => 'Import',
|
||||||
|
'title' => 'Import :type',
|
||||||
|
'message' => 'Allowed file types: CSV, XLS. Please, <a target="_blank" href=":link"><strong>download</strong></a> the sample file.',
|
||||||
|
|
||||||
|
];
|
@ -22,6 +22,8 @@ return [
|
|||||||
'histories' => 'Historias',
|
'histories' => 'Historias',
|
||||||
'payments' => 'Pagos',
|
'payments' => 'Pagos',
|
||||||
'add_payment' => 'Añadir pago',
|
'add_payment' => 'Añadir pago',
|
||||||
|
'mark_paid' => 'Marcar Como Pagada',
|
||||||
|
'mark_sent' => 'Marcar Como Enviada',
|
||||||
'download_pdf' => 'Descargar PDF',
|
'download_pdf' => 'Descargar PDF',
|
||||||
'send_mail' => 'Enviar Email',
|
'send_mail' => 'Enviar Email',
|
||||||
|
|
||||||
@ -34,4 +36,14 @@ return [
|
|||||||
'paid' => 'Pagado',
|
'paid' => 'Pagado',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'messages' => [
|
||||||
|
'email_sent' => 'El email de la factura se ha enviado correctamente!',
|
||||||
|
'marked_sent' => 'Factura marcada como enviada con éxito!',
|
||||||
|
],
|
||||||
|
|
||||||
|
'notification' => [
|
||||||
|
'message' => 'Usted está recibiendo este correo electrónico porque usted tiene una factura de :amount para el cliente :cliente .',
|
||||||
|
'button' => 'Pagar Ahora',
|
||||||
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -7,4 +7,9 @@ return [
|
|||||||
'purchase_price' => 'Precio de Compra',
|
'purchase_price' => 'Precio de Compra',
|
||||||
'sku' => 'SKU',
|
'sku' => 'SKU',
|
||||||
|
|
||||||
|
'notification' => [
|
||||||
|
'message' => 'Usted está recibiendo este correo electrónico porque el producto :name se está quedando sin stock.',
|
||||||
|
'button' => 'Ver ahora',
|
||||||
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -6,12 +6,17 @@ return [
|
|||||||
'added' => ':type creado!',
|
'added' => ':type creado!',
|
||||||
'updated' => ':type actualizado!',
|
'updated' => ':type actualizado!',
|
||||||
'deleted' => ':type borrado!',
|
'deleted' => ':type borrado!',
|
||||||
|
'duplicated' => ': type duplicado!',
|
||||||
|
'imported' => ':type imported!',
|
||||||
],
|
],
|
||||||
'error' => [
|
'error' => [
|
||||||
'not_user_company' => 'Error: No tiene permisos para administrar esta empresa!',
|
'not_user_company' => 'Error: No tiene permisos para administrar esta empresa!',
|
||||||
|
'customer' => 'Error: No se puede crear el usuario! :name usa esta dirección de correo electrónico.',
|
||||||
|
'no_file' => 'Error: No file selected!',
|
||||||
],
|
],
|
||||||
'warning' => [
|
'warning' => [
|
||||||
'deleted' => 'Advertencia: No puede borrar :type porque tiene :text',
|
'deleted' => 'Advertencia: No puede borrar <b>:name</b> porque tiene :text relacionado.',
|
||||||
|
'disabled' => 'Advertencia: No se permite desactivar <b>:name</b> porque tiene :text relacionado.',
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -16,8 +16,8 @@ return [
|
|||||||
'uninstalled' => 'Desinstalado',
|
'uninstalled' => 'Desinstalado',
|
||||||
'token_link' => 'Haga <a href="https://akaunting.com/tokens" target="_blank">Click aquí</a> para obtener su API token.',
|
'token_link' => 'Haga <a href="https://akaunting.com/tokens" target="_blank">Click aquí</a> para obtener su API token.',
|
||||||
|
|
||||||
'enabled' => ':module módulo habilitado',
|
'enabled' => ':module habilitado',
|
||||||
'disabled' => ':module módulo deshabilitado',
|
'disabled' => ':module deshabilitado',
|
||||||
|
|
||||||
'installation' => [
|
'installation' => [
|
||||||
'header' => 'Instalación del módulo',
|
'header' => 'Instalación del módulo',
|
||||||
|
@ -13,7 +13,7 @@ return [
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'password' => 'Los passwords deben tener mínimo 6 caracteres y coincidir.',
|
'password' => 'Las contraseñas deben tener mínimo 6 caracteres y coincidir con la confirmación.',
|
||||||
'reset' => 'Su contraseña ha sido reestablecida!',
|
'reset' => 'Su contraseña ha sido reestablecida!',
|
||||||
'sent' => 'Hemos enviado un enlace para resetear su contraseña!',
|
'sent' => 'Hemos enviado un enlace para resetear su contraseña!',
|
||||||
'token' => 'Ese token de contraseña ya no es válido.',
|
'token' => 'Ese token de contraseña ya no es válido.',
|
||||||
|
@ -24,10 +24,10 @@ return [
|
|||||||
],
|
],
|
||||||
'invoice' => [
|
'invoice' => [
|
||||||
'tab' => 'Factura',
|
'tab' => 'Factura',
|
||||||
'prefix' => 'Prefijo de Factura',
|
'prefix' => 'Prefijo de número',
|
||||||
'digit' => 'Dígitos del Nº de Factura',
|
'digit' => 'Número de cifras',
|
||||||
'start' => 'Número de Factura Inicial',
|
'next' => 'Siguiente número',
|
||||||
'logo' => 'Logotipo de la factura',
|
'logo' => 'Logo',
|
||||||
],
|
],
|
||||||
'default' => [
|
'default' => [
|
||||||
'tab' => 'Por defecto',
|
'tab' => 'Por defecto',
|
||||||
@ -57,7 +57,7 @@ return [
|
|||||||
'tab' => 'Programación',
|
'tab' => 'Programación',
|
||||||
'send_invoice' => 'Enviar Recordatorio de Factura',
|
'send_invoice' => 'Enviar Recordatorio de Factura',
|
||||||
'invoice_days' => 'Enviar después del vencimiento',
|
'invoice_days' => 'Enviar después del vencimiento',
|
||||||
'send_bill' => 'Enviar Recordatorio de Factura',
|
'send_bill' => 'Enviar Recordatorio de Recibo',
|
||||||
'bill_days' => 'Enviar Antes del Vencimiento',
|
'bill_days' => 'Enviar Antes del Vencimiento',
|
||||||
'cron_command' => 'Comando Cron',
|
'cron_command' => 'Comando Cron',
|
||||||
'schedule_time' => 'Hora de ejecución',
|
'schedule_time' => 'Hora de ejecución',
|
||||||
|
@ -9,5 +9,7 @@ return [
|
|||||||
'check' => 'Comprobar',
|
'check' => 'Comprobar',
|
||||||
'new_core' => 'Una versión actualizada de Akaunting está disponible.',
|
'new_core' => 'Una versión actualizada de Akaunting está disponible.',
|
||||||
'latest_core' => '¡Felicidades! Tienes la última versión de Akaunting. Las actualizaciones de seguridad futuras se aplicarán automáticamente.',
|
'latest_core' => '¡Felicidades! Tienes la última versión de Akaunting. Las actualizaciones de seguridad futuras se aplicarán automáticamente.',
|
||||||
|
'success' => 'El proceso de actualización se ha completado con éxito.',
|
||||||
|
'error' => 'El proceso de actualización ha fallado, por favor inténtelo de nuevo.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -16,7 +16,7 @@ return [
|
|||||||
'accepted' => ':attribute debe ser aceptado.',
|
'accepted' => ':attribute debe ser aceptado.',
|
||||||
'active_url' => ':attribute no es una URL correcta.',
|
'active_url' => ':attribute no es una URL correcta.',
|
||||||
'after' => ':attribute debe ser posterior a :date.',
|
'after' => ':attribute debe ser posterior a :date.',
|
||||||
'after_or_equal' => ':attribute debe ser posterior a :date.',
|
'after_or_equal' => ':attribute debe ser una fecha posterior o igual a :date.',
|
||||||
'alpha' => ':attribute solo acepta letras.',
|
'alpha' => ':attribute solo acepta letras.',
|
||||||
'alpha_dash' => ':attribute solo acepta letras, números y guiones.',
|
'alpha_dash' => ':attribute solo acepta letras, números y guiones.',
|
||||||
'alpha_num' => ':attribute solo acepta letras y números.',
|
'alpha_num' => ':attribute solo acepta letras y números.',
|
||||||
@ -24,7 +24,7 @@ return [
|
|||||||
'before' => ':attribute debe ser anterior a :date.',
|
'before' => ':attribute debe ser anterior a :date.',
|
||||||
'before_or_equal' => ':attribute debe ser anterior o igual a :date.',
|
'before_or_equal' => ':attribute debe ser anterior o igual a :date.',
|
||||||
'between' => [
|
'between' => [
|
||||||
'numeric' => ':attribute debe estar entre :min - :max.',
|
'numeric' => ':attribute debe estar entre :min y :max.',
|
||||||
'file' => ':attribute debe estar entre :min - :max kilobytes.',
|
'file' => ':attribute debe estar entre :min - :max kilobytes.',
|
||||||
'string' => ':attribute debe estar entre :min - :max caracteres.',
|
'string' => ':attribute debe estar entre :min - :max caracteres.',
|
||||||
'array' => ':attribute debe tener entre :min y :max items.',
|
'array' => ':attribute debe tener entre :min y :max items.',
|
||||||
|
@ -10,7 +10,7 @@ return [
|
|||||||
'forgot_password' => 'گذرواژه خود را فراموش کرده ام',
|
'forgot_password' => 'گذرواژه خود را فراموش کرده ام',
|
||||||
'reset_password' => 'تنظیم مجدد رمز عبور',
|
'reset_password' => 'تنظیم مجدد رمز عبور',
|
||||||
'enter_email' => 'آدرس ایمیل خود را وارد نمایید',
|
'enter_email' => 'آدرس ایمیل خود را وارد نمایید',
|
||||||
'current_email' => 'ایمیل',
|
'current_email' => 'ایمیل فعلی',
|
||||||
'reset' => 'بازنشانی',
|
'reset' => 'بازنشانی',
|
||||||
'never' => 'هرگز',
|
'never' => 'هرگز',
|
||||||
'password' => [
|
'password' => [
|
||||||
@ -20,7 +20,7 @@ return [
|
|||||||
'new_confirm' => 'تکرار رمز عبور',
|
'new_confirm' => 'تکرار رمز عبور',
|
||||||
],
|
],
|
||||||
'error' => [
|
'error' => [
|
||||||
'self_delete' => 'خطا: نمی توانید خودتان حذف کنید!'
|
'self_delete' => 'خطا: نمیتوانید خودتان حذف کنید!'
|
||||||
],
|
],
|
||||||
|
|
||||||
'failed' => 'مشخصات وارد شده با اطلاعات ما سازگار نیست.',
|
'failed' => 'مشخصات وارد شده با اطلاعات ما سازگار نیست.',
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
return [
|
|
||||||
'all' => 'تمام مشتریان',
|
|
||||||
];
|
|
11
resources/lang/fa-IR/customers.php
Normal file
11
resources/lang/fa-IR/customers.php
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'allow_login' => 'مجاز به ورود به سیستم؟',
|
||||||
|
'user_created' => 'کاربر ایجاد شده',
|
||||||
|
|
||||||
|
'error' => [
|
||||||
|
'email' => 'این ایمیل قبلا انتخاب شده است.'
|
||||||
|
]
|
||||||
|
];
|
@ -83,8 +83,6 @@ return [
|
|||||||
'search' => 'جستجو',
|
'search' => 'جستجو',
|
||||||
'search_placeholder' => 'جستجو...',
|
'search_placeholder' => 'جستجو...',
|
||||||
'filter' => 'فیلتر',
|
'filter' => 'فیلتر',
|
||||||
'create_user' => 'ایجاد کاربر',
|
|
||||||
'created_user' => 'کاربر ایجاد شده',
|
|
||||||
'help' => 'راهنما',
|
'help' => 'راهنما',
|
||||||
'all' => 'همه',
|
'all' => 'همه',
|
||||||
'all_type' => 'همه :type',
|
'all_type' => 'همه :type',
|
||||||
@ -92,6 +90,7 @@ return [
|
|||||||
'created' => 'ایجاد شده',
|
'created' => 'ایجاد شده',
|
||||||
'id' => 'شناسه',
|
'id' => 'شناسه',
|
||||||
'more_actions' => 'اقدامات بیشتر',
|
'more_actions' => 'اقدامات بیشتر',
|
||||||
|
'duplicate' => 'تکراری',
|
||||||
|
|
||||||
'title' => [
|
'title' => [
|
||||||
'new' => ':type جدید',
|
'new' => ':type جدید',
|
||||||
|
@ -8,6 +8,7 @@ return [
|
|||||||
'counter' => '{0} شما اطلاعیه ای ندارید |{1} شما:count اطلاعیه دارید | [2, *] شما :coun اطلاعیه دارید',
|
'counter' => '{0} شما اطلاعیه ای ندارید |{1} شما:count اطلاعیه دارید | [2, *] شما :coun اطلاعیه دارید',
|
||||||
'overdue_invoices' => '{1} :count فاکتور سررسید شده دارید | [2, *]: :count فاکتور سررسید شده دارید',
|
'overdue_invoices' => '{1} :count فاکتور سررسید شده دارید | [2, *]: :count فاکتور سررسید شده دارید',
|
||||||
'upcoming_bills' => '{1}:count صورتحساب دارید | [2, *]:count صورتحساب دارید',
|
'upcoming_bills' => '{1}:count صورتحساب دارید | [2, *]:count صورتحساب دارید',
|
||||||
|
'items_stock' => '{1} :count موجود است | [2,*] :count موجود است',
|
||||||
'view_all' => 'نمایش همه'
|
'view_all' => 'نمایش همه'
|
||||||
],
|
],
|
||||||
|
|
||||||
|
9
resources/lang/fa-IR/import.php
Normal file
9
resources/lang/fa-IR/import.php
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'import' => 'Import',
|
||||||
|
'title' => 'Import :type',
|
||||||
|
'message' => 'Allowed file types: CSV, XLS. Please, <a target="_blank" href=":link"><strong>download</strong></a> the sample file.',
|
||||||
|
|
||||||
|
];
|
@ -37,7 +37,13 @@ return [
|
|||||||
],
|
],
|
||||||
|
|
||||||
'messages' => [
|
'messages' => [
|
||||||
|
'email_sent' => 'فاکتور با موفقت ارسال شده است!',
|
||||||
'marked_sent' => 'فاکتور با موفقت ارسال شده است!',
|
'marked_sent' => 'فاکتور با موفقت ارسال شده است!',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'notification' => [
|
||||||
|
'message' => 'شما این ایمیل را دریافت کردید به دلیل اینکه مشتری شما :customer مقدار :amount فاکتور دارد.',
|
||||||
|
'button' => 'پرداخت',
|
||||||
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -7,4 +7,9 @@ return [
|
|||||||
'purchase_price' => 'قیمت خرید',
|
'purchase_price' => 'قیمت خرید',
|
||||||
'sku' => 'کد کالا',
|
'sku' => 'کد کالا',
|
||||||
|
|
||||||
|
'notification' => [
|
||||||
|
'message' => 'شما به این دلیل این ایمیل را دریافت کردهاید که موجودی :name در حال اتمام است.',
|
||||||
|
'button' => 'مشاهده',
|
||||||
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -4,11 +4,15 @@ return [
|
|||||||
|
|
||||||
'success' => [
|
'success' => [
|
||||||
'added' => ':type اضافه شد!',
|
'added' => ':type اضافه شد!',
|
||||||
'updated' => ':type بروز شد!',
|
'updated' => ':type بهروز شد!',
|
||||||
'deleted' => ':type حذف شد!',
|
'deleted' => ':type حذف شد!',
|
||||||
|
'duplicated' => ':type دو عدد موجود است!',
|
||||||
|
'imported' => ':type imported!',
|
||||||
],
|
],
|
||||||
'error' => [
|
'error' => [
|
||||||
'not_user_company' => 'خطا:شما نمی توانید این شرکت را مدیریت کنید!',
|
'not_user_company' => 'خطا: شما اجازه مدیریت این شرکت را ندارید!',
|
||||||
|
'customer' => 'خطا در تعریف کاربر! :name از این ایمیل استفاده میکند.',
|
||||||
|
'no_file' => 'Error: No file selected!',
|
||||||
],
|
],
|
||||||
'warning' => [
|
'warning' => [
|
||||||
'deleted' => 'هشدار: شما نمی توانید <b>:name</b> را به دلیل :text حذف کنید.',
|
'deleted' => 'هشدار: شما نمی توانید <b>:name</b> را به دلیل :text حذف کنید.',
|
||||||
|
14
resources/lang/nl-NL/accounts.php
Normal file
14
resources/lang/nl-NL/accounts.php
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'account_name' => 'Bedrijfsnaam',
|
||||||
|
'number' => 'Nummer',
|
||||||
|
'opening_balance' => 'Beginsaldo',
|
||||||
|
'current_balance' => 'Huidig saldo',
|
||||||
|
'bank_name' => 'Banknaam',
|
||||||
|
'bank_phone' => 'Bank telefoon',
|
||||||
|
'bank_address' => 'Adres van de Bank',
|
||||||
|
'default_account' => 'Standaard account',
|
||||||
|
|
||||||
|
];
|
30
resources/lang/nl-NL/auth.php
Normal file
30
resources/lang/nl-NL/auth.php
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'profile' => 'Profiel',
|
||||||
|
'logout' => 'Afmelden',
|
||||||
|
'login' => 'Aanmelden',
|
||||||
|
'login_to' => 'Login om uw sessie te starten',
|
||||||
|
'remember_me' => 'Onthoud mijn gegevens',
|
||||||
|
'forgot_password' => 'Ik ben mijn wachtwoord vergeten',
|
||||||
|
'reset_password' => 'Herstel wachtwoord',
|
||||||
|
'enter_email' => 'Vul uw e-mailadres in',
|
||||||
|
'current_email' => 'Huidige E-mail',
|
||||||
|
'reset' => 'Resetten',
|
||||||
|
'never' => 'nooit',
|
||||||
|
'password' => [
|
||||||
|
'current' => 'Wachtwoord',
|
||||||
|
'current_confirm' => 'Wachtwoordbevestiging',
|
||||||
|
'new' => 'Nieuw Wachtwoord',
|
||||||
|
'new_confirm' => 'Wachtwoordbevestiging',
|
||||||
|
],
|
||||||
|
'error' => [
|
||||||
|
'self_delete' => 'Fout: Kan niet zelf verwijderen!'
|
||||||
|
],
|
||||||
|
|
||||||
|
'failed' => 'Deze referenties komen niet overeen met onze administratie.',
|
||||||
|
'disabled' => 'Deze account is uitgeschakeld. Alstublieft, neem dan contact op met de systeembeheerder.',
|
||||||
|
'throttle' => 'Te veel inlogpogingen. Probeer het opnieuw: seconden seconden.',
|
||||||
|
|
||||||
|
];
|
41
resources/lang/nl-NL/bills.php
Normal file
41
resources/lang/nl-NL/bills.php
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'bill_number' => 'Faktuur nummer',
|
||||||
|
'bill_date' => 'Faktuurdatum',
|
||||||
|
'total_price' => 'Totale prijs',
|
||||||
|
'due_date' => 'Vervaldatum',
|
||||||
|
'order_number' => 'Ordernummer',
|
||||||
|
'bill_from' => 'Factuur van',
|
||||||
|
|
||||||
|
'quantity' => 'Hoeveelheid',
|
||||||
|
'price' => 'Prijs',
|
||||||
|
'sub_total' => 'Subtotaal',
|
||||||
|
'tax_total' => 'Totaal Btw',
|
||||||
|
'total' => 'Totaal',
|
||||||
|
|
||||||
|
'item_name' => 'Item naam',
|
||||||
|
|
||||||
|
'payment_due' => 'Te betalen voor',
|
||||||
|
'amount_due' => 'Bedrag',
|
||||||
|
'paid' => 'Betaald',
|
||||||
|
'histories' => 'Geschiedenis',
|
||||||
|
'payments' => 'Betalingen',
|
||||||
|
'add_payment' => 'Toevoegen van betaling',
|
||||||
|
'mark_received' => 'Ontvangen',
|
||||||
|
'download_pdf' => 'PDF downloaden',
|
||||||
|
'send_mail' => 'Verstuur e-mail',
|
||||||
|
|
||||||
|
'status' => [
|
||||||
|
'draft' => 'Concept',
|
||||||
|
'received' => 'Ontvangen',
|
||||||
|
'partial' => 'Gedeeltelijk',
|
||||||
|
'paid' => 'Betaald',
|
||||||
|
],
|
||||||
|
|
||||||
|
'messages' => [
|
||||||
|
'received' => 'Faktuur gemarkeerd als succesvol ontvangen!',
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
13
resources/lang/nl-NL/companies.php
Normal file
13
resources/lang/nl-NL/companies.php
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'domain' => 'Domein',
|
||||||
|
'logo' => 'Logo',
|
||||||
|
'manage' => 'Bedrijven Beheren',
|
||||||
|
'all' => 'Alle bedrijven',
|
||||||
|
'error' => [
|
||||||
|
'delete_active' => 'Fout: Kan niet verwijderen van actieve bedrijf, gelieve, het eerste veranderen!',
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
9
resources/lang/nl-NL/currencies.php
Normal file
9
resources/lang/nl-NL/currencies.php
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'code' => 'Code',
|
||||||
|
'rate' => 'Tarief',
|
||||||
|
'default' => 'Standaard Valuta',
|
||||||
|
|
||||||
|
];
|
11
resources/lang/nl-NL/customers.php
Normal file
11
resources/lang/nl-NL/customers.php
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'allow_login' => 'Inloggen toestaan?',
|
||||||
|
'user_created' => 'Gebruiker aangemaakt',
|
||||||
|
|
||||||
|
'error' => [
|
||||||
|
'email' => 'Deze e-mail is reeds geregistreerd.'
|
||||||
|
]
|
||||||
|
];
|
24
resources/lang/nl-NL/dashboard.php
Normal file
24
resources/lang/nl-NL/dashboard.php
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'total_incomes' => 'Totaal inkomsten',
|
||||||
|
'receivables' => 'Vorderingen',
|
||||||
|
'open_invoices' => 'Openstaande facturen',
|
||||||
|
'overdue_invoices' => 'Vervallen facturen',
|
||||||
|
'total_expenses' => 'Totale uitgaven',
|
||||||
|
'payables' => 'Schulden',
|
||||||
|
'open_bills' => 'Open rekeningen',
|
||||||
|
'overdue_bills' => 'Openstaande fakturen',
|
||||||
|
'total_profit' => 'Totale winst',
|
||||||
|
'open_profit' => 'Open winst',
|
||||||
|
'overdue_profit' => 'Achterstallige winst',
|
||||||
|
'cash_flow' => 'Cash-Flow',
|
||||||
|
'no_profit_loss' => 'Geen winst-verlies',
|
||||||
|
'incomes_by_category' => 'Inkomsten per categorie',
|
||||||
|
'expenses_by_category' => 'Kosten per categorie',
|
||||||
|
'account_balance' => 'Betalingsbalans',
|
||||||
|
'latest_incomes' => 'Nieuwste inkomens',
|
||||||
|
'latest_expenses' => 'Nieuwste uitgaven',
|
||||||
|
|
||||||
|
];
|
17
resources/lang/nl-NL/demo.php
Normal file
17
resources/lang/nl-NL/demo.php
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'accounts_cash' => 'Contant',
|
||||||
|
'categories_uncat' => 'Ongecategoriseerd',
|
||||||
|
'categories_deposit' => 'Storting',
|
||||||
|
'categories_sales' => 'Verkoop',
|
||||||
|
'currencies_usd' => 'Amerikaanse Dollar',
|
||||||
|
'currencies_eur' => 'Euro',
|
||||||
|
'currencies_gbp' => 'Britse pond',
|
||||||
|
'currencies_try' => 'Turkse Lira',
|
||||||
|
'taxes_exempt' => 'Vrijgesteld van btw',
|
||||||
|
'taxes_normal' => 'Normale btw',
|
||||||
|
'taxes_sales' => 'Verkoop Btw',
|
||||||
|
|
||||||
|
];
|
9
resources/lang/nl-NL/footer.php
Normal file
9
resources/lang/nl-NL/footer.php
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'version' => 'Versie',
|
||||||
|
'powered' => 'Powered By Akaunting',
|
||||||
|
'software' => 'Gratis boekhoudsoftware',
|
||||||
|
|
||||||
|
];
|
108
resources/lang/nl-NL/general.php
Normal file
108
resources/lang/nl-NL/general.php
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'items' => 'Item | Items',
|
||||||
|
'incomes' => 'Betalingen',
|
||||||
|
'invoices' => 'Factuur | Facturen',
|
||||||
|
'revenues' => 'Inkomsten | Inkomsten',
|
||||||
|
'customers' => 'Klant | Klanten',
|
||||||
|
'expenses' => 'Kosten | Kosten',
|
||||||
|
'bills' => 'Fakturen | Rekeningen',
|
||||||
|
'payments' => 'Betaling | Betalingen',
|
||||||
|
'vendors' => 'Leverancier | Leveranciers',
|
||||||
|
'accounts' => 'Account | Rekeningen',
|
||||||
|
'transfers' => 'Transfer | Overdrachten',
|
||||||
|
'transactions' => 'Transactie | Transacties',
|
||||||
|
'reports' => 'Verslag | Verslagen',
|
||||||
|
'settings' => 'Instellen | Instellingen',
|
||||||
|
'categories' => 'Categorie | Categorieën',
|
||||||
|
'currencies' => 'Valuta | Valuta \'s',
|
||||||
|
'tax_rates' => 'Btw-tarief | Belastingtarieven',
|
||||||
|
'users' => 'Gebruiker | Gebruikers',
|
||||||
|
'roles' => 'Rol | Rollen',
|
||||||
|
'permissions' => 'Toestemming | Machtigingen',
|
||||||
|
'modules' => 'App | Apps',
|
||||||
|
'companies' => 'Bedrijf | Bedrijven',
|
||||||
|
'profits' => 'Winst | Winst',
|
||||||
|
'taxes' => 'Belasting | Btw',
|
||||||
|
'pictures' => 'Foto | Foto \'s',
|
||||||
|
'types' => 'Type | Types',
|
||||||
|
'payment_methods' => 'Betalingsmethode | Betalingsmethoden',
|
||||||
|
'compares' => 'Inkomen vs kosten | Inkomen vs kosten',
|
||||||
|
'notes' => 'Opmerking | Notities',
|
||||||
|
'totals' => 'Totaal | Totalen',
|
||||||
|
'languages' => 'Taalpakketten',
|
||||||
|
'updates' => 'Update | Updates',
|
||||||
|
'numbers' => 'Nummer | Nummers',
|
||||||
|
'statuses' => 'Status | Statussen',
|
||||||
|
|
||||||
|
'dashboard' => 'Dashboard',
|
||||||
|
'banking' => 'Banken',
|
||||||
|
'general' => 'Algemeen',
|
||||||
|
'no_records' => 'Geen gegevens.',
|
||||||
|
'date' => 'Datum',
|
||||||
|
'amount' => 'Bedrag',
|
||||||
|
'enabled' => 'Actief',
|
||||||
|
'disabled' => 'Uitgeschakeld',
|
||||||
|
'yes' => 'Ja',
|
||||||
|
'no' => 'Nee',
|
||||||
|
'na' => 'N. v. t',
|
||||||
|
'daily' => 'Dagelijks',
|
||||||
|
'monthly' => 'Maandelijks',
|
||||||
|
'yearly' => 'Jaarlijks',
|
||||||
|
'add' => 'Toevoegen',
|
||||||
|
'add_new' => 'Nieuw aanmaken',
|
||||||
|
'show' => 'Weergeven',
|
||||||
|
'edit' => 'Bewerken',
|
||||||
|
'delete' => 'Verwijderen',
|
||||||
|
'send' => 'Verzenden',
|
||||||
|
'download' => 'Download',
|
||||||
|
'delete_confirm' => 'Verwijderen bevestigen: naam: type?',
|
||||||
|
'name' => 'Naam',
|
||||||
|
'email' => 'Email',
|
||||||
|
'tax_number' => 'Btw nummer',
|
||||||
|
'phone' => 'Telefoonnummer',
|
||||||
|
'address' => 'Adres',
|
||||||
|
'website' => 'Website',
|
||||||
|
'actions' => 'Acties',
|
||||||
|
'description' => 'Beschrijving',
|
||||||
|
'manage' => 'Beheren',
|
||||||
|
'code' => 'Code',
|
||||||
|
'alias' => 'Alias',
|
||||||
|
'balance' => 'Saldo',
|
||||||
|
'reference' => 'Referentie',
|
||||||
|
'attachment' => 'Bijlage',
|
||||||
|
'change' => 'Wijzigen',
|
||||||
|
'color' => 'Kleur',
|
||||||
|
'save' => 'Opslaan',
|
||||||
|
'cancel' => 'Annuleren',
|
||||||
|
'from' => 'Van',
|
||||||
|
'to' => 'Aan',
|
||||||
|
'print' => 'Afdrukken',
|
||||||
|
'search' => 'Zoeken',
|
||||||
|
'search_placeholder' => 'Type om te zoeken..',
|
||||||
|
'filter' => 'Filter',
|
||||||
|
'help' => 'Hulp',
|
||||||
|
'all' => 'Alles',
|
||||||
|
'all_type' => 'Alle types',
|
||||||
|
'upcoming' => 'Aankomende',
|
||||||
|
'created' => 'Aangemaakt',
|
||||||
|
'id' => 'ID',
|
||||||
|
'more_actions' => 'Meer acties',
|
||||||
|
'duplicate' => 'Dupliceren',
|
||||||
|
|
||||||
|
'title' => [
|
||||||
|
'new' => 'Nieuw: type',
|
||||||
|
'edit' => 'Bewerken: type',
|
||||||
|
],
|
||||||
|
'form' => [
|
||||||
|
'enter' => 'Voer: veld',
|
||||||
|
'select' => [
|
||||||
|
'field' => '-Selecteer: veld -',
|
||||||
|
'file' => 'Selecteer bestand',
|
||||||
|
],
|
||||||
|
'no_file_selected' => 'Geen bestand geselecteerd...',
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
15
resources/lang/nl-NL/header.php
Normal file
15
resources/lang/nl-NL/header.php
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'change_language' => 'Taal wijzigen',
|
||||||
|
'last_login' => 'Laatste login: tijd',
|
||||||
|
'notifications' => [
|
||||||
|
'counter' => '{0} je hebt geen melding |{1} je hebt: kennisgeving | [2, *] Je hebt: kennisgevingen',
|
||||||
|
'overdue_invoices' => '{1}: aantal openstaande factuur | [2, *]: aantal achterstallige facturen',
|
||||||
|
'upcoming_bills' => '{1}: aantal aankomende faktuur | [2, *]: aantal aankomende facturen',
|
||||||
|
'items_stock' => '{1}: aantal item niet op voorraad | [2, *]: aantal items niet op voorraad',
|
||||||
|
'view_all' => 'Alles Weergeven'
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user