diff --git a/app/Http/Controllers/Incomes/Invoices.php b/app/Http/Controllers/Incomes/Invoices.php index 8b63402ad..155666422 100644 --- a/app/Http/Controllers/Incomes/Invoices.php +++ b/app/Http/Controllers/Incomes/Invoices.php @@ -513,10 +513,10 @@ class Invoices extends Controller */ public function export() { - \Excel::create('invoices', function($excel) { + \Excel::create('invoices', function ($excel) { $invoices = Invoice::with(['items', 'histories', 'payments', 'totals'])->filter(request()->input())->get(); - $excel->sheet('invoices', function($sheet) use ($invoices) { + $excel->sheet('invoices', function ($sheet) use ($invoices) { $sheet->fromModel($invoices->makeHidden([ 'company_id', 'parent_id', 'created_at', 'updated_at', 'deleted_at', 'attachment', 'discount', 'items', 'histories', 'payments', 'totals', 'media' ])); diff --git a/app/Http/Controllers/Modals/Categories.php b/app/Http/Controllers/Modals/Categories.php new file mode 100644 index 000000000..2e662c3ea --- /dev/null +++ b/app/Http/Controllers/Modals/Categories.php @@ -0,0 +1,61 @@ +middleware('permission:create-settings-categories')->only(['create', 'store', 'duplicate', 'import']); + $this->middleware('permission:read-settings-categories')->only(['index', 'show', 'edit', 'export']); + $this->middleware('permission:update-settings-categories')->only(['update', 'enable', 'disable']); + $this->middleware('permission:delete-settings-categories')->only('destroy'); + } + + /** + * Show the form for creating a new resource. + * + * @return Response + */ + public function create() + { + $html = view('modals.categories.create')->render(); + + return response()->json([ + 'success' => true, + 'error' => false, + 'message' => 'null', + 'html' => $html, + ]); + } + + /** + * Store a newly created resource in storage. + * + * @param Request $request + * + * @return Response + */ + public function store(Request $request) + { + $category = Category::create($request->all()); + + $message = trans('messages.success.added', ['type' => trans_choice('general.categories', 1)]); + + return response()->json([ + 'success' => true, + 'error' => false, + 'data' => $category, + 'message' => $message, + 'html' => 'null', + ]); + } +} diff --git a/app/Http/Controllers/Modals/Customers.php b/app/Http/Controllers/Modals/Customers.php new file mode 100644 index 000000000..b0af0b62c --- /dev/null +++ b/app/Http/Controllers/Modals/Customers.php @@ -0,0 +1,74 @@ +middleware('permission:create-incomes-customers')->only(['create', 'store', 'duplicate', 'import']); + $this->middleware('permission:read-incomes-customers')->only(['index', 'show', 'edit', 'export']); + $this->middleware('permission:update-incomes-customers')->only(['update', 'enable', 'disable']); + $this->middleware('permission:delete-incomes-customers')->only('destroy'); + } + + /** + * Show the form for creating a new resource. + * + * @return Response + */ + public function create() + { + $currencies = Currency::enabled()->pluck('name', 'code'); + + $html = view('modals.customers.create', compact('currencies'))->render(); + + return response()->json([ + 'success' => true, + 'error' => false, + 'message' => 'null', + 'html' => $html, + ]); + } + + /** + * Store a newly created resource in storage. + * + * @param Request $request + * + * @return Response + */ + public function store(Request $request) + { + $customer = Customer::create($request->all()); + + $message = trans('messages.success.added', ['type' => trans_choice('general.customers', 1)]); + + return response()->json([ + 'success' => true, + 'error' => false, + 'data' => $customer, + 'message' => $message, + 'html' => 'null', + ]); + } +} diff --git a/app/Http/Controllers/Modals/Vendors.php b/app/Http/Controllers/Modals/Vendors.php new file mode 100644 index 000000000..ccafd2877 --- /dev/null +++ b/app/Http/Controllers/Modals/Vendors.php @@ -0,0 +1,82 @@ +middleware('permission:create-expenses-vendors')->only(['create', 'store', 'duplicate', 'import']); + $this->middleware('permission:read-expenses-vendors')->only(['index', 'show', 'edit', 'export']); + $this->middleware('permission:update-expenses-vendors')->only(['update', 'enable', 'disable']); + $this->middleware('permission:delete-expenses-vendors')->only('destroy'); + } + + /** + * Show the form for creating a new resource. + * + * @return Response + */ + public function create() + { + $currencies = Currency::enabled()->pluck('name', 'code'); + + $html = view('modals.vendors.create', compact('currencies'))->render(); + + return response()->json([ + 'success' => true, + 'error' => false, + 'message' => 'null', + 'html' => $html, + ]); + } + + /** + * Store a newly created resource in storage. + * + * @param Request $request + * + * @return Response + */ + public function store(Request $request) + { + $vendor = Vendor::create($request->all()); + + // Upload logo + if ($request->file('logo')) { + $media = $this->getMedia($request->file('logo'), 'vendors'); + + $vendor->attachMedia($media, 'logo'); + } + + $message = trans('messages.success.added', ['type' => trans_choice('general.vendors', 1)]); + + return response()->json([ + 'success' => true, + 'error' => false, + 'data' => $vendor, + 'message' => $message, + 'html' => 'null', + ]); + } +} diff --git a/resources/views/incomes/revenues/create.blade.php b/resources/views/incomes/revenues/create.blade.php index c2ea34caf..fbb60bbb6 100644 --- a/resources/views/incomes/revenues/create.blade.php +++ b/resources/views/incomes/revenues/create.blade.php @@ -15,6 +15,7 @@ {{ Form::textGroup('amount', trans('general.amount'), 'money', ['required' => 'required', 'autofocus' => 'autofocus']) }} + @stack('account_id_input_start')
:message
') !!}' + error.responseJSON.name + '
'); - } - - if (error.responseJSON.email) { - $("#modal-create-customer input[name='email']").parent().parent().addClass('has-error'); - $("#modal-create-customer input[name='email']").parent().after('' + error.responseJSON.email + '
'); - } - - if (error.responseJSON.currency_code) { - $("#modal-create-customer select[name='currency_code']").parent().parent().addClass('has-error'); - $("#modal-create-customer select[name='currency_code']").parent().after('' + error.responseJSON.currency_code + '
'); + success: function(json) { + if (json['success']) { + $('body').append(json['html']); } } }); }); - function createCategory() { + $(document).on('click', '#button-category', function (e) { $('#modal-create-category').remove(); - modal = ''; - - $('body').append(modal); - - $('#category-color-picker').colorpicker(); - - $('#modal-create-category').modal('show'); - } - - $(document).on('click', '#button-create-category', function (e) { - $('#modal-create-category .modal-header').before(''); - $.ajax({ - url: '{{ url("settings/categories/category") }}', - type: 'POST', + url: '{{ url("modals/categories/create") }}', + type: 'GET', dataType: 'JSON', - data: $("#form-create-category").serialize(), - beforeSend: function () { - $(".form-group").removeClass("has-error"); - $(".help-block").remove(); - }, - success: function(data) { - $('#span-loading').remove(); - - $('#modal-create-category').modal('hide'); - - $("#category_id").append(''); - $("#category_id").select2('refresh'); - }, - error: function(error, textStatus, errorThrown) { - $('#span-loading').remove(); - - if (error.responseJSON.name) { - $("#modal-create-category input[name='name']").parent().parent().addClass('has-error'); - $("#modal-create-category input[name='name']").parent().after('' + error.responseJSON.name + '
'); - } - - if (error.responseJSON.color) { - $("#modal-create-category input[name='color']").parent().parent().addClass('has-error'); - $("#modal-create-category input[name='color']").parent().after('' + error.responseJSON.color + '
'); + success: function(json) { + if (json['success']) { + $('body').append(json['html']); } } }); diff --git a/resources/views/incomes/revenues/edit.blade.php b/resources/views/incomes/revenues/edit.blade.php index 2dac5c7d4..b43f0611a 100644 --- a/resources/views/incomes/revenues/edit.blade.php +++ b/resources/views/incomes/revenues/edit.blade.php @@ -32,6 +32,7 @@ {{ Form::textGroup('amount', trans('general.amount'), 'money', ['required' => 'required', 'autofocus' => 'autofocus']) }} + @stack('account_id_input_start')