Merge remote-tracking branch 'origin/master'
This commit is contained in:
@ -243,6 +243,7 @@ class Users extends Controller
|
||||
public function autocomplete(ARequest $request)
|
||||
{
|
||||
$user = false;
|
||||
$data = false;
|
||||
|
||||
$column = $request['column'];
|
||||
$value = $request['value'];
|
||||
@ -250,7 +251,7 @@ class Users extends Controller
|
||||
if (!empty($column) && !empty($value)) {
|
||||
switch ($column) {
|
||||
case 'id':
|
||||
$user = User::find();
|
||||
$user = User::find((int) $value);
|
||||
break;
|
||||
case 'email':
|
||||
$user = User::where('email', $value)->first();
|
||||
@ -258,12 +259,16 @@ class Users extends Controller
|
||||
default:
|
||||
$user = User::where($column, $value)->first();
|
||||
}
|
||||
|
||||
$data = $user;
|
||||
} elseif (!empty($column) && empty($value)) {
|
||||
$data = trans('validation.required', ['attribute' => $column]);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'errors' => ($user) ? false: true,
|
||||
'success' => ($user) ? true: false,
|
||||
'data' => $user
|
||||
'errors' => ($user) ? false : true,
|
||||
'success' => ($user) ? true : false,
|
||||
'data' => $data
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
92
app/Http/Controllers/Customers/Profile.php
Normal file
92
app/Http/Controllers/Customers/Profile.php
Normal file
@ -0,0 +1,92 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Customers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Customer\Profile as Request;
|
||||
use App\Models\Auth\User;
|
||||
|
||||
class Profile extends Controller
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->edit();
|
||||
}
|
||||
|
||||
public function show()
|
||||
{
|
||||
return $this->edit();
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$user = auth()->user();
|
||||
|
||||
return view('customers.profile.edit', compact('user'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function update(Request $request)
|
||||
{
|
||||
$user = auth()->user();
|
||||
|
||||
// Upload picture
|
||||
$picture = $request->file('picture');
|
||||
if ($picture && $picture->isValid()) {
|
||||
$request['picture'] = $picture->store('users');
|
||||
}
|
||||
|
||||
// Do not reset password if not entered/changed
|
||||
if (empty($request['password'])) {
|
||||
unset($request['password']);
|
||||
unset($request['password_confirmation']);
|
||||
}
|
||||
|
||||
// Update user
|
||||
$user->update($request->input());
|
||||
|
||||
// Update customer
|
||||
$user->customer->update($request->input());
|
||||
|
||||
$message = trans('messages.success.updated', ['type' => trans('auth.profile')]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('customers/profile/edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark overdue invoices notifications are read and redirect to invoices page.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function readOverdueInvoices()
|
||||
{
|
||||
$user = auth()->user();
|
||||
|
||||
// Mark invoice notifications as read
|
||||
foreach ($user->unreadNotifications as $notification) {
|
||||
// Not an invoice notification
|
||||
if ($notification->getAttribute('type') != 'App\Notifications\Income\Invoice') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$notification->markAsRead();
|
||||
}
|
||||
|
||||
// Redirect to invoices
|
||||
return redirect('customers/invoices');
|
||||
}
|
||||
}
|
@ -44,6 +44,10 @@ class Vendors extends Controller
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
if (empty($request['email'])) {
|
||||
$request['email'] = '';
|
||||
}
|
||||
|
||||
Vendor::create($request->all());
|
||||
|
||||
$message = trans('messages.success.added', ['type' => trans_choice('general.vendors', 1)]);
|
||||
@ -120,6 +124,10 @@ class Vendors extends Controller
|
||||
*/
|
||||
public function update(Vendor $vendor, Request $request)
|
||||
{
|
||||
if (empty($request['email'])) {
|
||||
$request['email'] = '';
|
||||
}
|
||||
|
||||
$vendor->update($request->all());
|
||||
|
||||
$message = trans('messages.success.updated', ['type' => trans_choice('general.vendors', 1)]);
|
||||
@ -169,6 +177,10 @@ class Vendors extends Controller
|
||||
|
||||
public function vendor(Request $request)
|
||||
{
|
||||
if (empty($request['email'])) {
|
||||
$request['email'] = '';
|
||||
}
|
||||
|
||||
$vendor = Vendor::create($request->all());
|
||||
|
||||
return response()->json($vendor);
|
||||
|
@ -46,6 +46,10 @@ class Customers extends Controller
|
||||
public function store(Request $request)
|
||||
{
|
||||
if (empty($request->input('create_user'))) {
|
||||
if (empty($request['email'])) {
|
||||
$request['email'] = '';
|
||||
}
|
||||
|
||||
Customer::create($request->all());
|
||||
} else {
|
||||
// Check if user exist
|
||||
@ -112,6 +116,11 @@ class Customers extends Controller
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$data = $row->toArray();
|
||||
|
||||
if (empty($data['email'])) {
|
||||
$data['email'] = '';
|
||||
}
|
||||
|
||||
$data['company_id'] = session('company_id');
|
||||
|
||||
Customer::create($data);
|
||||
@ -149,6 +158,10 @@ class Customers extends Controller
|
||||
public function update(Customer $customer, Request $request)
|
||||
{
|
||||
if (empty($request->input('create_user'))) {
|
||||
if (empty($request['email'])) {
|
||||
$request['email'] = '';
|
||||
}
|
||||
|
||||
$customer->update($request->all());
|
||||
} else {
|
||||
// Check if user exist
|
||||
@ -220,6 +233,10 @@ class Customers extends Controller
|
||||
|
||||
public function customer(Request $request)
|
||||
{
|
||||
if (empty($request['email'])) {
|
||||
$request['email'] = '';
|
||||
}
|
||||
|
||||
$customer = Customer::create($request->all());
|
||||
|
||||
return response()->json($customer);
|
||||
|
@ -489,6 +489,10 @@ class Invoices extends Controller
|
||||
*/
|
||||
public function emailInvoice(Invoice $invoice)
|
||||
{
|
||||
if (empty($invoice->customer_email)) {
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
$invoice = $this->prepareInvoice($invoice);
|
||||
|
||||
$logo = $this->getLogo();
|
||||
@ -584,18 +588,23 @@ class Invoices extends Controller
|
||||
|
||||
$amount = $invoice->amount - $paid;
|
||||
|
||||
$request = new PaymentRequest();
|
||||
if (!empty($amount)) {
|
||||
$request = new PaymentRequest();
|
||||
|
||||
$request['company_id'] = $invoice->company_id;
|
||||
$request['invoice_id'] = $invoice->id;
|
||||
$request['account_id'] = setting('general.default_account');
|
||||
$request['payment_method'] = setting('general.default_payment_method', 'offlinepayment.cash.1');
|
||||
$request['currency_code'] = $invoice->currency_code;
|
||||
$request['amount'] = $amount;
|
||||
$request['paid_at'] = Date::now();
|
||||
$request['_token'] = csrf_token();
|
||||
$request['company_id'] = $invoice->company_id;
|
||||
$request['invoice_id'] = $invoice->id;
|
||||
$request['account_id'] = setting('general.default_account');
|
||||
$request['payment_method'] = setting('general.default_payment_method', 'offlinepayment.cash.1');
|
||||
$request['currency_code'] = $invoice->currency_code;
|
||||
$request['amount'] = $amount;
|
||||
$request['paid_at'] = Date::now();
|
||||
$request['_token'] = csrf_token();
|
||||
|
||||
$this->payment($request);
|
||||
$this->payment($request);
|
||||
} else {
|
||||
$invoice->invoice_status_code = 'paid';
|
||||
$invoice->save();
|
||||
}
|
||||
|
||||
return redirect()->back();
|
||||
}
|
||||
@ -689,7 +698,9 @@ class Invoices extends Controller
|
||||
{
|
||||
$invoice = Invoice::find($payment->invoice_id);
|
||||
|
||||
if ($invoice->payments()->count() > 1) {
|
||||
if ($invoice->payments()->paid() == $invoice->amount) {
|
||||
$invoice->invoice_status_code = 'paid';
|
||||
} elseif ($invoice->payments()->count() > 1) {
|
||||
$invoice->invoice_status_code = 'partial';
|
||||
} else {
|
||||
$invoice->invoice_status_code = 'draft';
|
||||
|
35
app/Http/Requests/Customer/Profile.php
Normal file
35
app/Http/Requests/Customer/Profile.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Customer;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class Profile extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
$id = auth()->user()->getAttribute('id');
|
||||
|
||||
return [
|
||||
'name' => 'required|string',
|
||||
'email' => 'required|email|unique:users,email,' . $id . ',id,deleted_at,NULL',
|
||||
'password' => 'confirmed',
|
||||
'picture' => 'mimes:' . setting('general.file_types') . '|between:0,' . setting('general.file_size') * 1024,
|
||||
];
|
||||
}
|
||||
}
|
@ -23,6 +23,11 @@ class Vendor extends Request
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
$email = '';
|
||||
|
||||
// Get company id
|
||||
$company_id = $this->request->get('company_id');
|
||||
|
||||
// Check if store or update
|
||||
if ($this->getMethod() == 'PATCH') {
|
||||
$id = $this->vendor->getAttribute('id');
|
||||
@ -30,12 +35,13 @@ class Vendor extends Request
|
||||
$id = null;
|
||||
}
|
||||
|
||||
// Get company id
|
||||
$company_id = $this->request->get('company_id');
|
||||
if (!empty($this->request->get('email'))) {
|
||||
$email = 'email|unique:vendors,NULL,' . $id . ',id,company_id,' . $company_id . ',deleted_at,NULL';
|
||||
}
|
||||
|
||||
return [
|
||||
'name' => 'required|string',
|
||||
'email' => 'required|email|unique:vendors,NULL,' . $id . ',id,company_id,' . $company_id . ',deleted_at,NULL',
|
||||
'email' => $email,
|
||||
'currency_code' => 'required|string',
|
||||
];
|
||||
}
|
||||
|
@ -23,8 +23,12 @@ class Customer extends Request
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
$email = '';
|
||||
$required = '';
|
||||
|
||||
// Get company id
|
||||
$company_id = $this->request->get('company_id');
|
||||
|
||||
// Check if store or update
|
||||
if ($this->getMethod() == 'PATCH') {
|
||||
$id = $this->customer->getAttribute('id');
|
||||
@ -36,12 +40,13 @@ class Customer extends Request
|
||||
$required = 'required|';
|
||||
}
|
||||
|
||||
// Get company id
|
||||
$company_id = $this->request->get('company_id');
|
||||
if (!empty($this->request->get('email'))) {
|
||||
$email = 'email|unique:customers,NULL,' . $id . ',id,company_id,' . $company_id . ',deleted_at,NULL';
|
||||
}
|
||||
|
||||
return [
|
||||
'name' => 'required|string',
|
||||
'email' => 'required|email|unique:customers,NULL,' . $id . ',id,company_id,' . $company_id . ',deleted_at,NULL',
|
||||
'email' => $email,
|
||||
'currency_code' => 'required|string',
|
||||
'password' => $required . 'confirmed',
|
||||
];
|
||||
|
Reference in New Issue
Block a user