Commit f8d82fd3 authored by Sarun Mungthanya's avatar Sarun Mungthanya
Browse files

add user company role group permission

parent 51f4cd8b
...@@ -17,6 +17,30 @@ class AuthController extends Controller ...@@ -17,6 +17,30 @@ class AuthController extends Controller
return view('login'); return view('login');
} }
// public function login(Request $request)
// {
// $validator = Validator::make($request->all(), [
// 'username' => ['required'],
// 'password' => ['required'],
// ]);
// if ($validator->fails()) {
// return redirect()->back()->withErrors($validator)->withInput();
// }
// $credentials = [
// 'USERNAME' => $request->input('username'),
// 'password' => $request->input('password')
// ];
// $user = TabUser::where('USERNAME', 'sarun')->where('PASSWORD', 'sarun')->first();
// if (Auth::loginUsingId($user->UID)) {
// return redirect()->route('index');
// } else {
// $errors = new \Illuminate\Support\MessageBag();
// $errors->add('password', 'The password does not match with username');
// return redirect()->back()->withErrors($errors)->withInput();
// }
// }
public function login(Request $request) public function login(Request $request)
{ {
...@@ -28,30 +52,34 @@ class AuthController extends Controller ...@@ -28,30 +52,34 @@ class AuthController extends Controller
if ($validator->fails()) { if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput(); return redirect()->back()->withErrors($validator)->withInput();
} }
$credentials = [
'USERNAME' => $request->input('username'), $validated = $validator->validated();
'password' => $request->input('password')
]; if (Auth::attempt(array('email' => $validated['username'], 'password' => $validated['password']))) {
$user = TabUser::where('USERNAME', 'sarun')->where('PASSWORD', 'sarun')->first(); // $token = auth()->user()->createToken('app1_token')->plainTextToken;
if (Auth::loginUsingId($user->UID)) { // session(['shared_user_id' => auth()->id()]);
return redirect()->route('index'); return redirect()->route('index');
} else { } else {
$errors = new \Illuminate\Support\MessageBag(); $validator->errors()->add(
$errors->add('password', 'The password does not match with username'); 'password',
return redirect()->back()->withErrors($errors)->withInput(); 'The password does not match with username'
);
return redirect()->back()->withErrors($validator)->withInput();
} }
} }
public function registerView(){ public function registerView()
{
return view('register'); return view('register');
} }
public function register(Request $request){ public function register(Request $request)
{
$validator = Validator::make($request->all(), [ $validator = Validator::make($request->all(), [
'name' => ['required', 'string'], 'name' => ['required', 'string'],
'email' => ['required', 'email','unique:users'], 'email' => ['required', 'email', 'unique:users'],
'password' => ['required',"confirmed", Password::min(7)], 'password' => ['required', "confirmed", Password::min(7)],
]); ]);
$validated = $validator->validated(); $validated = $validator->validated();
......
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class CompanyController extends Controller
{
public function index() {
$menu = 'Company';
$currentContent = 'Company';
return view('home' ,compact('menu', 'currentContent'));
}
}
<?php
namespace App\Http\Controllers\Configuration;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Redirect;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use App\Http\Controllers\Utils\PaginatorController;
use stdClass;
class CompanyController extends Controller
{
protected $route = 'configurations.company';
public function index() {
$exampledata = [
[
'id' => 1,
'company_thainame' => 'บริษัทเน็ตเบย์ จำกัด มหาชน',
'company_engname' => 'Netbay'
]
,
[
'id' => 2,
'company_thainame' => 'บริษัทเน็ตเบย์ จำกัด มหาชน3',
'company_engname' => 'Netbay2'
],
[
'id' => 3,
'company_thainame' => 'บริษัทเน็ตเบย์ จำกัด มหาชน3',
'company_engname' => 'Netbay3'
],
[
'id' => 4,
'company_thainame' => 'บริษัทเน็ตเบย์ จำกัด มหาชน4',
'company_engname' => 'Netbay4'
],
[
'id' => 5,
'company_thainame' => 'บริษัทเน็ตเบย์ จำกัด มหาชน5',
'company_engname' => 'Netbay5'
],
];
$companies = PaginatorController::paginate($exampledata, 3);
$url = '/configurations/company';
$route = $this->route;
$companies->withPath( $url );
$searchBy = [
"tax" => "Tax No.",
"phone" => "Phone",
"company_thainame" => "Thai Name",
"company_engname" => "English Name",
];
return view('configurations.companies.index', compact('companies', 'url', 'route', 'searchBy'));
}
public function create()
{
$route = $this->route;
return view('configurations.companies.create' , compact('route'));
}
public function store(Request $request)
{
$rules = array(
'name' => 'required',
'password' => 'required',
'email' => 'required|email',
);
$validator = Validator::make($request->all(), $rules);
// process the login
if ($validator->fails()) {
return Redirect::back()
->withErrors($validator)
->withInput();
} else {
$user = new User;
$user->password = Hash::make($request->input('password'));
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->save();
return redirect()->route('configurations.company')
->withSuccess(__('Company created successfully.'));
}
}
public function show(User $user)
{
return view('configurations.companies.show', [
'user' => $user
]);
}
public function edit(User $user)
{
$company = [
'id' => 4,
'companyname' => 'Netbay3',
'groupname' => 'Admin4',
'admingroup' => 'Y'
];
return view('configurations.companies.edit', [
'company' => $company,
'route' => $this->route
]);
}
public function update(Request $request, User $user)
{
$rules = array(
'name' => 'required',
'email' => 'required|email',
);
$validator = Validator::make($request->all(), $rules);
// process the login
if ($validator->fails()) {
return Redirect::back()
->withErrors($validator)
->withInput();
} else {
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->save();
return redirect()->route('configurations.company')
->withSuccess(__('Company updated successfully.'));
}
}
public function destroy(User $user)
{
$user->delete();
return redirect()->route('configurations.company')
->withSuccess(__('Company deleted successfully.'));
}
}
<?php
namespace App\Http\Controllers\Configuration;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Redirect;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use App\Http\Controllers\Utils\PaginatorController;
use stdClass;
class CompanyProfileController extends Controller
{
protected $route = 'configurations.company-profile';
public function index()
{
$exampledata = [
[
'id' => 1,
'profile_name' => 'ABCD',
'xml_user_id' => 'TH000123456789',
'active' => 'Y'
],
[
'id' => 1,
'profile_name' => 'AXRD',
'xml_user_id' => 'GR000199996789',
'active' => 'N'
],
[
'id' => 1,
'profile_name' => 'AVRD',
'xml_user_id' => 'TH000123556789',
'active' => 'Y'
],
[
'id' => 1,
'profile_name' => 'TCDE',
'xml_user_id' => 'LA000135836789',
'active' => 'N'
],
[
'id' => 1,
'profile_name' => 'SEUV',
'xml_user_id' => 'LG000121235989',
'active' => 'Y'
],
];
$companyProfiles = PaginatorController::paginate($exampledata, 3);
$url = '/configurations/company-profile';
$route = $this->route;
$companyProfiles->withPath($url);
$searchBy = [
"profile_name" => "Profile",
"xml_user_id" => "XML User ID",
];
return view('configurations.company-profiles.index', compact('companyProfiles', 'url', 'route', 'searchBy'));
}
public function create()
{
$route = $this->route;
return view('configurations.company-profiles.create', compact('route'));
}
// public function store(Request $request)
// {
// return redirect()->route('configurations.company')
// ->withSuccess(__('Company created successfully.'));
// }
// }
// public function show(User $user)
// {
// return view('configurations.companyType.show', [
// 'user' => $user
// ]);
// }
public function edit()
{
$companyType = [
'id' => 1,
'typeId' => 11,
'description' => 'บริษัทเน็ตเบย์ จำกัด มหาชน',
'name' => 'Netbay'
];
return view('configurations.company-profiles.edit', [
'companyType' => $companyType,
'route' => $this->route
]);
}
// public function update(Request $request, User $user)
// {
// $rules = array(
// 'name' => 'required',
// 'email' => 'required|email',
// );
// $validator = Validator::make($request->all(), $rules);
// // process the login
// if ($validator->fails()) {
// return Redirect::back()
// ->withErrors($validator)
// ->withInput();
// } else {
// $user->name = $request->input('name');
// $user->email = $request->input('email');
// $user->save();
// return redirect()->route('configurations.company')
// ->withSuccess(__('Company updated successfully.'));
// }
// }
public function destroy()
{
// $user->delete();
return redirect()->route('configurations.company')
->withSuccess(__('Company deleted successfully.'));
}
}
<?php
namespace App\Http\Controllers\Configuration;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Redirect;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use App\Http\Controllers\Utils\PaginatorController;
use stdClass;
class CompanyTypeController extends Controller
{
protected $route = 'configurations.company-type';
public function index() {
$exampledata = [
[
'id' => 1,
'typeId' => 11,
'description' => 'บริษัทเน็ตเบย์ จำกัด มหาชน',
'name' => 'Netbay'
]
,
[
'id' => 2,
'typeId' => 12,
'description' => 'บริษัทเน็ตเบย์ จำกัด มหาชน3',
'name' => 'Netbay2'
],
[
'id' => 3,
'typeId' => 14,
'description' => 'บริษัทเน็ตเบย์ จำกัด มหาชน3',
'name' => 'Netbay3'
],
[
'id' => 4,
'typeId' => 12,
'description' => 'บริษัทเน็ตเบย์ จำกัด มหาชน4',
'name' => 'Netbay4'
],
[
'id' => 5,
'typeId' => 11,
'description' => 'บริษัทเน็ตเบย์ จำกัด มหาชน5',
'name' => 'Netbay5'
],
];
$companyTypes = PaginatorController::paginate($exampledata, 3);
$url = '/configurations/company-type';
$route = $this->route;
$companyTypes->withPath( $url );
$searchBy = [
"name" => "Name",
"description" => "Description",
];
return view('configurations.company-types.index', compact('companyTypes', 'url', 'route', 'searchBy'));
}
public function create()
{
$route = $this->route;
return view('configurations.company-types.create' , compact('route'));
}
// public function store(Request $request)
// {
// return redirect()->route('configurations.company')
// ->withSuccess(__('Company created successfully.'));
// }
// }
// public function show(User $user)
// {
// return view('configurations.companyType.show', [
// 'user' => $user
// ]);
// }
public function edit()
{
$companyType = [
'id' => 1,
'typeId' => 11,
'description' => 'บริษัทเน็ตเบย์ จำกัด มหาชน',
'name' => 'Netbay'
];
return view('configurations.company-types.edit', [
'companyType' => $companyType,
'route' => $this->route
]);
}
// public function update(Request $request, User $user)
// {
// $rules = array(
// 'name' => 'required',
// 'email' => 'required|email',
// );
// $validator = Validator::make($request->all(), $rules);
// // process the login
// if ($validator->fails()) {
// return Redirect::back()
// ->withErrors($validator)
// ->withInput();
// } else {
// $user->name = $request->input('name');
// $user->email = $request->input('email');
// $user->save();
// return redirect()->route('configurations.company')
// ->withSuccess(__('Company updated successfully.'));
// }
// }
public function destroy()
{
// $user->delete();
return redirect()->route('configurations.company')
->withSuccess(__('Company deleted successfully.'));
}
}
<?php
namespace App\Http\Controllers\Configuration;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\File;
// use App\Http\Controllers\Storage;
class ConfigOptionController extends Controller
{
public function mainlist(){
// var_dump(config('masterfile.PreStatus'));exit;
return view('configurations/config-options/config-option')
->with('defaultPagination',config('masterfile.defaultPagination'));
}
}
<?php
namespace App\Http\Controllers\Configuration;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Redirect;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use App\Http\Controllers\Utils\PaginatorController;
use stdClass;
class ConsigneeController extends Controller
{
protected $route = 'configurations.consignee';
public function index() {
$exampledata = [
[
'id' => 1,
'CSN_CODE' => 'Netbay',
'CSN_NAME' => 'บริษัทเน็ตเบย์ จำกัด มหาชน',
'CSN_EMAIL' => 'jatuporn@netbay.co.th',
'CSN_TAXID' => '0107557000101',
'CSN_BRANCH' => '0000',
]
,
[
'id' => 2,
'CSN_CODE' => 'Netbay2',
'CSN_NAME' => 'บริษัทเน็ตเบย์ จำกัด มหาชน',
'CSN_EMAIL' => 'jatuporn@netbay.co.th',
'CSN_TAXID' => '0107557000101',
'CSN_BRANCH' => '0000',
],
[
'id' => 3,
'CSN_CODE' => 'Netbay3',
'CSN_NAME' => 'บริษัทเน็ตเบย์ จำกัด มหาชน',
'CSN_EMAIL' => 'jatuporn@netbay.co.th',
'CSN_TAXID' => '0107557000101',
'CSN_BRANCH' => '0000',
],
[
'id' => 4,
'CSN_CODE' => 'Netbay4',
'CSN_NAME' => 'บริษัทเน็ตเบย์ จำกัด มหาชน',
'CSN_EMAIL' => 'jatuporn@netbay.co.th',
'CSN_TAXID' => '0107557000101',
'CSN_BRANCH' => '0000',
],
[
'id' => 5,
'CSN_CODE' => 'Netbay5',
'CSN_NAME' => 'บริษัทเน็ตเบย์ จำกัด มหาชน',
'CSN_EMAIL' => 'jatuporn@netbay.co.th',
'CSN_TAXID' => '0107557000101',
'CSN_BRANCH' => '0000',
],
];
$consignee = PaginatorController::paginate($exampledata, 3);
$url = '/configurations/consignee';
$route = $this->route;
$consignee->withPath( $url );
$searchBy = [
"name" => "Name",
"blacklist" => "BlackList",
];
return view('configurations.consignees.index', compact('consignee', 'url', 'route', 'searchBy'));
}
public function create()
{
$route = $this->route;
return view('configurations.consignees.create' , compact('route'));
}
public function store(Request $request)
{
$rules = array(
'name' => 'required',
'password' => 'required',
'email' => 'required|email',
);
$validator = Validator::make($request->all(), $rules);
// process the login
if ($validator->fails()) {
return Redirect::back()
->withErrors($validator)
->withInput();
} else {
$user = new User;
$user->password = Hash::make($request->input('password'));
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->save();
return redirect()->route('configurations.consignee')
->withSuccess(__('Company created successfully.'));
}
}
public function show(User $user)
{
return view('configurations.consignees.show', [
'user' => $user
]);
}
public function edit(User $user)
{
$consignee = [
'id' => 1,
'CSN_CODE' => 'Netbay',
'CSN_NAME' => 'บริษัทเน็ตเบย์ จำกัด มหาชน',
'CSN_TAXID' => '0107557000101',
'CSN_BRANCH' => '0000',
'CSN_ADDR' => '1/54ม.10ซ.นวลจันทร์16 ถ.นวลจันทร์ แขวงคลองกุ่ม',
'CSN_DISTRICT' => 'คลองกุ่ม',
'CSN_SUBPROVINCE' => 'บึงกุ่ม',
'CSN_PROVINCE' => 'คลองกุ่ม',
'CSN_POSTCODE' => '10240',
'CSN_COUNTRY' => 'AD',
'CSN_EMAIL' => 'jatuporn@netbay.co.th',
'CSN_PHONE' => '0933333333333',
];
$countryCode = PaginatorController::paginate( config('mockdata.getCountryCode'), 4 );
$countryCode->withPath('/configurations/consignee/edit');
$url = '/configurations/consignee/edit';
return view('configurations.consignees.edit', [
'consignee' => $consignee,
'route' => $this->route,
'countryCode'=> $countryCode,
'url'=> $url,
]);
}
public function update(Request $request, User $user)
{
$rules = array(
'name' => 'required',
'email' => 'required|email',
);
$validator = Validator::make($request->all(), $rules);
// process the login
if ($validator->fails()) {
return Redirect::back()
->withErrors($validator)
->withInput();
} else {
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->save();
return redirect()->route('configurations.consignee')
->withSuccess(__('Company updated successfully.'));
}
}
public function destroy(User $user)
{
$user->delete();
return redirect()->route('configurations.consignee')
->withSuccess(__('Company deleted successfully.'));
}
}
<?php
namespace App\Http\Controllers\Configuration;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\File;
use App\Http\Controllers\Utils\PaginatorController;
// use App\Http\Controllers\Storage;
class ExchangeRateController extends Controller
{
public function index() {
$menu = 'ExchangeRate';
$currentContent = 'ExchangeRate';
return view('home' ,compact('menu', 'currentContent'));
}
public function mainlistExchangeRate(){
$exchangerate = PaginatorController::paginate( config('masterfile.getExchangeRate'), 2 );
$exchangerate->withPath('/configurations/exchange-rate');
// var_dump(config('masterfile.PreStatus'));exit;
// dd($exchangerate);
$url = '/configurations/exchange-rate';
return view('configurations/exchange-rates/exchange-rate')
->with('dataExchangeRate',config('masterfile.getExchangeRate'))
->with('exchangerate',$exchangerate)
->with('url',$url);
}
public function mainlistCurrency(){
// var_dump(config('masterfile.PreStatus'));exit;
$currencyCode = PaginatorController::paginate( config('masterfile.getCurrency'), 2 );
$currencyCode->withPath('/configurations/currency-code');
$url = '/configurations/currency-code';
return view('configurations/currency-codes/currency-code')
->with('dataCurrency',config('masterfile.getCurrency'))
->with('currencyCode',$currencyCode)
->with('url',$url);
}
}
<?php
namespace App\Http\Controllers\Configuration;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Redirect;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\TabUser as User;
use App\Http\Controllers\Utils\PaginatorController;
use stdClass;
class GroupController extends Controller
{
public function index()
{
$exampledata = [
[
'id' => 1,
'companyname' => 'Netbay',
'groupname' => 'Admin',
'admingroup' => 'Y'
],
[
'id' => 2,
'companyname' => 'Netbay',
'groupname' => 'Admin2',
'admingroup' => 'Y'
],
[
'id' => 3,
'companyname' => 'Netbay2',
'groupname' => 'Admin3',
'admingroup' => 'Y'
],
[
'id' => 4,
'companyname' => 'Netbay3',
'groupname' => 'Admin4',
'admingroup' => 'Y'
]
];
$userGroups = PaginatorController::paginate($exampledata, 1);
$url = '/configurations/user-group';
$userGroups->withPath($url);
$searchBy = [
"groupname" => "Group Name",
"admingroup" => "Admin Group"
];
return view('configurations.user-groups.index', compact('userGroups', 'url', 'searchBy'));
}
public function create()
{
return view('configurations.user-groups.create');
}
public function store(Request $request)
{
$rules = array(
'name' => 'required',
'password' => 'required',
'email' => 'required|email',
);
$validator = Validator::make($request->all(), $rules);
// process the login
if ($validator->fails()) {
return Redirect::back()
->withErrors($validator)
->withInput();
} else {
$user = new User;
$user->password = Hash::make($request->input('password'));
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->save();
return redirect()->route('configurations.user')
->withSuccess(__('User created successfully.'));
}
}
public function show(User $user)
{
return view('configurations.users.show', [
'user' => $user
]);
}
public function edit(User $user)
{
$example = [
'id' => 4,
'companyname' => 'Netbay3',
'groupname' => 'Admin4',
'admingroup' => 'Y'
];
return view('configurations.user-groups.edit', [
'example' => $example
]);
}
public function update(Request $request, User $user)
{
$rules = array(
'name' => 'required',
'email' => 'required|email',
);
$validator = Validator::make($request->all(), $rules);
// process the login
if ($validator->fails()) {
return Redirect::back()
->withErrors($validator)
->withInput();
} else {
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->save();
return redirect()->route('configurations.user-group')
->withSuccess(__('User updated successfully.'));
}
}
public function destroy(User $user)
{
$user->delete();
return redirect()->route('configurations.user-group')
->withSuccess(__('user deleted successfully.'));
}
}
<?php
namespace App\Http\Controllers\Configuration;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Redirect;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use App\Http\Controllers\Utils\PaginatorController;
use stdClass;
class MenuController extends Controller
{
protected $route = 'configurations.menu';
public function index()
{
$exampledata = [
[
'id' => 1,
'mId' => 6,
'name' => 'User Management',
'type' => 'S',
'parentMenu' => 1,
'order' => 4
],
[
'id' => 1,
'mId' => 4,
'name' => 'Menu Management',
'type' => 'M',
'parentMenu' => 1,
'order' => 3
],
[
'id' => 1,
'mId' => 8,
'name' => 'Company Management',
'type' => 'M',
'parentMenu' => 1,
'order' => 2
],
[
'id' => 1,
'mId' => 9,
'name' => 'Import Declaration',
'type' => 'S',
'parentMenu' => 1,
'order' => 3
], [
'id' => 1,
'mId' => 6,
'name' => 'Vessel',
'type' => 'S',
'parentMenu' => 1,
'order' => 5
], [
'id' => 1,
'mId' => 26,
'name' => 'Database',
'type' => 'M',
'parentMenu' => 3,
'order' => 5
]
];
$menues = PaginatorController::paginate($exampledata, 3);
$url = '/configurations/menu';
$route = $this->route;
$menues->withPath($url);
$searchBy = [
"name" => "Name",
"type" => "Type"
];
return view('configurations.menues.index', compact('menues', 'url', 'route', 'searchBy'));
}
public function create()
{
$route = $this->route;
return view('configurations.menues.create', compact('route'));
}
// public function store(Request $request)
// {
// return redirect()->route('configurations.company')
// ->withSuccess(__('Company created successfully.'));
// }
// }
// public function show(User $user)
// {
// return view('configurations.companyType.show', [
// 'user' => $user
// ]);
// }
public function edit()
{
$menu = [
'id' => 1,
'mId' => 26,
'name' => 'Database',
'type' => 'M',
'parentMenu' => 3,
'order' => 5
];
return view('configurations.menues.edit', [
'menu' => $menu,
'route' => $this->route
]);
}
// public function update(Request $request, User $user)
// {
// $rules = array(
// 'name' => 'required',
// 'email' => 'required|email',
// );
// $validator = Validator::make($request->all(), $rules);
// // process the login
// if ($validator->fails()) {
// return Redirect::back()
// ->withErrors($validator)
// ->withInput();
// } else {
// $user->name = $request->input('name');
// $user->email = $request->input('email');
// $user->save();
// return redirect()->route('configurations.company')
// ->withSuccess(__('Company updated successfully.'));
// }
// }
public function destroy()
{
// $user->delete();
return redirect()->route('configurations.company')
->withSuccess(__('Company deleted successfully.'));
}
}
<?php
namespace App\Http\Controllers\Configuration;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Redirect;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Utils\PaginatorController;
use Illuminate\Http\Request;
use App\Models\User;
use stdClass;
class UserController extends Controller
{
protected $paginate;
public function __construct()
{
$this->paginate = config('masterfile.defaultPagination');
}
public function index()
{
// $columns = [
// [
// 'id' => 'name',
// 'name' => 'Name'
// ],
// [
// 'id' => 'email',
// 'name' => 'Email',
// ],
// ];
// $json_columns = json_encode($columns);
// $paginate = $this->paginate;
$exampledata = [
[
'id' => 1,
'username' => 'nbdev',
'firstname' => 'Netbay',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin1',
'profile' => 'default',
'approved' => 'Y'
],
[
'id' => 2,
'username' => 'nbdev',
'firstname' => 'Netbay',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin2',
'profile' => 'default',
'approved' => 'Y'
],
[
'id' => 3,
'username' => 'nbdev',
'firstname' => 'Netbay2',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin3',
'profile' => 'default',
'approved' => 'N'
],
[
'id' => 4,
'username' => 'nbdev',
'firstname' => 'Netbay3',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin4',
'profile' => 'default',
'approved' => 'Y'
],
[
'id' => 1,
'username' => 'nbdev',
'firstname' => 'Netbay',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin1',
'profile' => 'default',
'approved' => 'Y'
],
[
'id' => 2,
'username' => 'nbdev',
'firstname' => 'Netbay',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin2',
'profile' => 'default',
'approved' => 'Y'
],
[
'id' => 3,
'username' => 'nbdev',
'firstname' => 'Netbay2',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin3',
'profile' => 'default',
'approved' => 'N'
],
[
'id' => 4,
'username' => 'nbdev',
'firstname' => 'Netbay3',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin4',
'profile' => 'default',
'approved' => 'Y'
],
[
'id' => 1,
'username' => 'nbdev',
'firstname' => 'Netbay',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin1',
'profile' => 'default',
'approved' => 'Y'
],
[
'id' => 2,
'username' => 'nbdev',
'firstname' => 'Netbay',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin2',
'profile' => 'default',
'approved' => 'Y'
],
[
'id' => 3,
'username' => 'nbdev',
'firstname' => 'Netbay2',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin3',
'profile' => 'default',
'approved' => 'N'
],
[
'id' => 4,
'username' => 'nbdev',
'firstname' => 'Netbay3',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin4',
'profile' => 'default',
'approved' => 'Y'
],
[
'id' => 1,
'username' => 'nbdev',
'firstname' => 'Netbay',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin1',
'profile' => 'default',
'approved' => 'Y'
],
[
'id' => 2,
'username' => 'nbdev',
'firstname' => 'Netbay',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin2',
'profile' => 'default',
'approved' => 'Y'
],
[
'id' => 3,
'username' => 'nbdev',
'firstname' => 'Netbay2',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin3',
'profile' => 'default',
'approved' => 'N'
],
[
'id' => 4,
'username' => 'nbdev',
'firstname' => 'Netbay3',
'email' => 'admin@mail.com',
'lastname' => 'testnaja',
'group' => 'admin4',
'profile' => 'default',
'approved' => 'Y'
]
];
// $users = User::paginate(1);
// $permission = ["EDIT", "DELETE"];
// return view('configurations.users.index', compact('users', 'json_columns', 'paginate', 'url', 'permission'));
$users = PaginatorController::paginate($exampledata, 4);
$users->withPath('/configurations/user');
$url = '/configurations/user';
$searchBy = [
"username" => "Username",
"firstname" => "Firstname",
"lastname" => "Lastname",
"phone" => "Phone",
"approved" => "Approve"
];
return view('configurations.users.index', compact('users', 'url', 'searchBy'));
}
public function create()
{
return view('configurations.users.create');
}
public function store(Request $request)
{
$rules = array(
'name' => 'required',
'password' => 'required',
'email' => 'required|email',
);
$validator = Validator::make($request->all(), $rules);
// process the login
if ($validator->fails()) {
return Redirect::back()
->withErrors($validator)
->withInput();
} else {
$user = new User;
$user->password = Hash::make($request->input('password'));
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->save();
return redirect()->route('configurations.user')
->withSuccess(__('User created successfully.'));
}
}
public function show(User $user)
{
return view('configurations.users.show', [
'user' => $user
]);
}
public function edit($id)
{
//Mock data
$user = User::find(1);
return view('configurations.users.edit', [
'user' => $user
]);
}
public function update(Request $request, User $user)
{
$rules = array(
'name' => 'required',
'email' => 'required|email',
);
$validator = Validator::make($request->all(), $rules);
// process the login
if ($validator->fails()) {
return Redirect::back()
->withErrors($validator)
->withInput();
} else {
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->save();
return redirect()->route('configurations.user')
->withSuccess(__('User updated successfully.'));
}
}
public function destroy(User $user)
{
$user->delete();
return response()->json([
'status' => 'User deleted successfully'
], 200);
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class GroupController extends Controller
{
public function index() {
$menu = 'Group';
$currentContent = 'Group';
return view('home' ,compact('menu', 'currentContent'));
}
}
...@@ -8,6 +8,7 @@ class HomeController extends Controller ...@@ -8,6 +8,7 @@ class HomeController extends Controller
{ {
public function index() public function index()
{ {
$menu = 'Patch'; $menu = 'Patch';
$currentContent = 'Patch'; $currentContent = 'Patch';
return view('.home', compact('menu', 'currentContent')); return view('.home', compact('menu', 'currentContent'));
......
...@@ -7,6 +7,8 @@ use Illuminate\Http\Request; ...@@ -7,6 +7,8 @@ use Illuminate\Http\Request;
class RoleController extends Controller class RoleController extends Controller
{ {
public function index() { public function index() {
// dd("sad"); $menu = 'Role';
$currentContent = 'Role';
return view('home' ,compact('menu', 'currentContent'));
} }
} }
...@@ -2,131 +2,14 @@ ...@@ -2,131 +2,14 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\User;
use App\Models\Group;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Redirect;
class UserController extends Controller class UserController extends Controller
{ {
public function index() {
protected $route = 'user'; $menu = 'User';
protected $url = '/user'; $currentContent = 'User';
protected $prefix_folder = 'components.users.'; return view('home' ,compact('menu', 'currentContent'));
public function index(Request $request)
{
$serchSelected = '';
$keyword = '';
if(isset($request->search) && isset($request->keyword)) {
$serchSelected = $request->search;
$keyword = $request->keyword;
$companies = User::where($serchSelected,'LIKE','%'.$keyword.'%')->paginate(10);
}else{
$companies = User::paginate(10);
}
$url = $this->url;
$route = $this->route;
$companies->withPath($url);
$searchBy = [
"name" => "Name",
"email" => "Email",
];
return view($this->prefix_folder . 'index', compact('users', 'url', 'route', 'searchBy', 'serchSelected', 'keyword'));
} }
public function create()
{
$route = $this->route;
$groups = Group::all();
return view($this->prefix_folder . 'create', compact('route', 'groups'));
}
public function edit(user $user)
{
$route = $this->route;
$groups = Group::all();
return view($this->prefix_folder . 'edit', compact('user', 'groups', 'route'));
}
public function store(Request $request)
{
$rules = array(
'name' => 'required',
'tax' => 'required|unique:companies,tax'
);
$validator = Validator::make($request->all(), $rules);
if ($validator->fails()) {
return Redirect::back()
->withErrors($validator)
->withInput();
} else {
$userData = $request->except('userType');
$userData['user_type_id'] = $request->input('userType');
$user = user::create($userData);
return redirect()->route($this->route . '.list')
->withSuccess(__('user created successfully.'));
}
}
public function update(Request $request, user $user)
{
$rules = array(
'name' => 'required',
'tax' => 'required'
);
$validator = Validator::make($request->all(), $rules);
// process the login
if ($validator->fails()) {
return Redirect::back()
->withErrors($validator)
->withInput();
} else {
$userData = $request->except('userType');
$userData['user_type_id'] = $request->input('userType');
$user->update($userData);
return redirect()->route($this->route . '.list')
->withSuccess(__('user created successfully.'));
}
}
public function destroy(user $user)
{
$user->delete();
return redirect()->route($this->route . '.list')
->withSuccess(__('user deleted successfully.'));
}
public function getUsers()
{
$users = User::select('id', 'name', 'email')->get();
$formattedUsers = [];
foreach ($users as $user) {
$formattedUsers[] = [
'id' => $user->id,
'name' => $user->name,
'email' => $user->email,
];
}
return response()->json(['users' => $formattedUsers]);
}
} }
<?php
namespace App\Http\Livewire\Pages\Company;
use Livewire\Component;
use App\Models\Company;
class CompanyCreate extends Component
{
public $companyTypes ;
public $companyType = '1';
public $name;
public $tax;
public $branch;
public $name_en;
public $address;
public $district;
public $sub_province;
public $province;
public $postcode;
public $phone;
public $fax;
public $tax_incentive;
public $action ;
protected $rules = [
'companyType' => 'required|exists:company_types,id',
'name' => 'required|string|max:255',
'tax' => 'required|integer|max:9999999999999',
'branch' => 'required|integer|max:999999',
'name_en' => 'required|string|max:255',
'address' => 'required|string|max:255',
'district' => 'required|string|max:255',
'sub_province' => 'required|string|max:255',
'province' => 'required|string|max:255',
'postcode' => 'required|string|max:10',
'phone' => 'required|string|max:15',
'fax' => 'nullable|string|max:15',
'tax_incentive' => 'nullable|string|max:255',
];
protected $messages = [
'companyType.required' => 'The company type field is required.',
'companyType.exists' => 'The selected company type is invalid.',
'name.required' => 'The name field is required.',
'name.string' => 'The name must be a string.',
'name.max' => 'The name may not be greater than 255 characters.',
'tax.required' => 'The tax field is required.',
'tax.integer' => 'The tax must be a integer.',
'tax.max' => 'The tax field must not exceed 13 characters.',
'branch.required' => 'The branch field is required.',
'branch.integer' => 'The branch must be a integer.',
'branch.max' => 'The branch field must not exceed 6 characters.',
'name_en.required' => 'The English name field is required.',
'name_en.string' => 'The English name must be a string.',
'name_en.max' => 'The English name may not be greater than 255 characters.',
'address.required' => 'The address field is required.',
'address.string' => 'The address must be a string.',
'address.max' => 'The address may not be greater than 255 characters.',
'district.required' => 'The district field is required.',
'district.string' => 'The district must be a string.',
'district.max' => 'The district may not be greater than 255 characters.',
'sub_province.required' => 'The sub-province field is required.',
'sub_province.string' => 'The sub-province must be a string.',
'sub_province.max' => 'The sub-province may not be greater than 255 characters.',
'province.required' => 'The province field is required.',
'province.string' => 'The province must be a string.',
'province.max' => 'The province may not be greater than 255 characters.',
'postcode.required' => 'The postcode field is required.',
'postcode.string' => 'The postcode must be a string.',
'postcode.max' => 'The postcode may not be greater than 10 characters.',
'phone.required' => 'The phone field is required.',
'phone.string' => 'The phone must be a string.',
'phone.max' => 'The phone may not be greater than 15 characters.',
'fax.string' => 'The fax must be a string.',
'fax.max' => 'The fax may not be greater than 15 characters.',
'tax_incentive.string' => 'The tax incentive must be a string.',
'tax_incentive.max' => 'The tax incentive may not be greater than 255 characters.',
];
public function mount($companyTypes)
{
$this->companyTypes = $companyTypes;
}
public function render()
{
return view('livewire.pages.company.company-create');
}
public function submitForm()
{
$validatedData = $this->validate();
// Create a new company instance
$newCompany = new Company();
$newCompany->company_type_id = $this->companyType;
$newCompany->name = $this->name;
$newCompany->tax = $this->tax;
$newCompany->branch = $this->branch;
$newCompany->name_en = $this->name_en;
$newCompany->address = $this->address;
$newCompany->district = $this->district;
$newCompany->sub_province = $this->sub_province;
$newCompany->province = $this->province;
$newCompany->postcode = $this->postcode;
$newCompany->phone = $this->phone;
$newCompany->fax = $this->fax;
$newCompany->tax_incentive = $this->tax_incentive;
// Save the new company to the database
$newCompany->save();
// Reset form fields
$this->reset([
'companyType', 'name', 'tax', 'branch', 'name_en', 'address', 'district',
'sub_province', 'province', 'postcode', 'phone', 'fax', 'tax_incentive'
]);
$this->emit('showCompanyList' , 'Company successfully created.');
}
public function goBack()
{
$this->emit('showCompanyList', '');
}
}
<?php
namespace App\Http\Livewire\Pages\Company;
use Livewire\Component;
use App\Models\Company;
class CompanyEdit extends Component
{
public $editCompanyId;
public $companyTypes;
public $company;
protected $rules = [
'company.company_type_id' => 'required|exists:company_types,id',
'company.name' => 'required|string|max:255',
'company.tax' => 'required|integer|max:9999999999999',
'company.branch' => 'required|integer|max:999999',
'company.name_en' => 'required|string|max:255',
'company.address' => 'required|string|max:255',
'company.district' => 'required|string|max:255',
'company.sub_province' => 'required|string|max:255',
'company.province' => 'required|string|max:255',
'company.postcode' => 'required|string|max:10',
'company.phone' => 'required|string|max:15',
'company.fax' => 'nullable|string|max:15',
'company.tax_incentive' => 'nullable|string|max:255',
];
protected $messages = [
'company.company_type_id.required' => 'The company type field is required.',
'company.company_type_id.exists' => 'The selected company type is invalid.',
'company.name.required' => 'The name field is required.',
'company.name.string' => 'The name must be a string.',
'company.name.max' => 'The name may not be greater than 255 characters.',
'company.tax.required' => 'The tax field is required.',
'company.tax.integer' => 'The tax must be an integer.',
'company.tax.max' => 'The tax field must not exceed 13 characters.',
'company.branch.required' => 'The branch field is required.',
'company.branch.integer' => 'The branch must be an integer.',
'company.branch.max' => 'The branch field must not exceed 6 characters.',
'company.name_en.required' => 'The English name field is required.',
'company.name_en.string' => 'The English name must be a string.',
'company.name_en.max' => 'The English name may not be greater than 255 characters.',
'company.address.required' => 'The address field is required.',
'company.address.string' => 'The address must be a string.',
'company.address.max' => 'The address may not be greater than 255 characters.',
'company.district.required' => 'The district field is required.',
'company.district.string' => 'The district must be a string.',
'company.district.max' => 'The district may not be greater than 255 characters.',
'company.sub_province.required' => 'The sub-province field is required.',
'company.sub_province.string' => 'The sub-province must be a string.',
'company.sub_province.max' => 'The sub-province may not be greater than 255 characters.',
'company.province.required' => 'The province field is required.',
'company.province.string' => 'The province must be a string.',
'company.province.max' => 'The province may not be greater than 255 characters.',
'company.postcode.required' => 'The postcode field is required.',
'company.postcode.string' => 'The postcode must be a string.',
'company.postcode.max' => 'The postcode may not be greater than 10 characters.',
'company.phone.required' => 'The phone field is required.',
'company.phone.string' => 'The phone must be a string.',
'company.phone.max' => 'The phone may not be greater than 15 characters.',
'company.fax.string' => 'The fax must be a string.',
'company.fax.max' => 'The fax may not be greater than 15 characters.',
'company.tax_incentive.string' => 'The tax incentive must be a string.',
'company.tax_incentive.max' => 'The tax incentive may not be greater than 255 characters.',
];
public function mount($editCompanyId, $companyTypes)
{
$this->editCompanyId = $editCompanyId;
$this->companyTypes = $companyTypes;
$this->company = Company::find($editCompanyId);
}
public function render()
{
return view('livewire.pages.company.company-edit');
}
public function submitEditForm()
{
$this->validate();
$this->company->save();
$this->emit('showCompanyList', 'Company successfully updated.');
}
public function goBack()
{
$this->emit('showCompanyList', '');
}
}
<?php
namespace App\Http\Livewire\Pages\Company;
use Livewire\Component;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use App\Models\Company;
use App\Models\CompanyType;
use Livewire\WithPagination;
class CompanyIndex extends Component
{
use WithPagination;
public $perPage = 10;
public $url;
public $searchSelected = 'name';
public $editCompanyId;
public $deleteCompanyId;
public $keyword = '';
public $route = '';
protected $paginationTheme = 'bootstrap';
public $selectedOption = 'name';
public $searchBy;
public $menu;
public $action = 'list';
public $message;
public $selectedCompanies = [];
public $showDeleteListModal = false;
public $showNoPermissionModal = false;
public $showMessage = false;
protected $listeners = ['showCompanyList', 'deleteItem', 'deleteSelected'];
public function mount()
{
$this->searchBy = [
'name' => 'Name',
'name_en' => 'Name English',
'tax_branch' => 'Tax:Branch'
];
$this->message = session('message');
}
public function render()
{
$query = Company::query();
if ($this->searchSelected && $this->keyword) {
if ($this->searchSelected === 'tax_branch') {
$parts = explode(':', $this->keyword);
if (count($parts) == 2) {
[$tax, $branch] = $parts;
$query->where('tax', 'LIKE', '%' . trim($tax) . '%')
->where('branch', 'LIKE', '%' . trim($branch) . '%');
} else {
$query->where('tax', 'LIKE', '%' . $this->keyword . '%')
->orWhere('branch', 'LIKE', '%' . $this->keyword . '%');
}
} else {
$query->where($this->searchSelected, 'LIKE', '%' . $this->keyword . '%');
}
}
$results = $query->paginate($this->perPage);
$companyTypes = CompanyType::all();
return view('livewire.pages.company.company-index', [
'results' => $results,
'searchBy' => $this->searchBy,
'route' => $this->route,
'url' => $this->url,
'companyTypes' => $companyTypes,
'selectedCompanies' => $this->selectedCompanies,
'showDeleteListModal' => $this->showDeleteListModal
]);
}
public function showCompanyCreateForm()
{
if (!\Auth::user()->hasPermissions(['add-company'])) {
$this->showNoPermissionModal = TRUE;
return;
}
$this->action = 'create';
}
public function showCompanyEditForm($companyId)
{
if (!\Auth::user()->hasPermissions(['edit-company'])) {
$this->showNoPermissionModal = TRUE;
return;
}
$this->action = 'edit';
$this->editCompanyId = $companyId;
}
public function showCompanyList($message = null)
{
$this->action = 'list';
$this->keyword = '';
$this->resetPage();
$this->message = $message;
if ($this->message) {
$this->dispatchBrowserEvent('show-message', ['message' => $this->message]);
}
}
public function paginationView()
{
return 'paginate-custom';
}
public function deleteItem($deleteCompanyId)
{
if (!\Auth::user()->hasPermissions(['delete-company'])) {
$this->showNoPermissionModal = TRUE;
return;
}
$company = Company::find($deleteCompanyId);
if ($company) {
$company->delete();
$message = "Deleted Successfully";
$this->message = $message;
if ($this->message) {
$this->dispatchBrowserEvent('show-message', ['message' => $this->message]);
}
}
}
public function deleteSelected($selectedCompanies)
{
if (!\Auth::user()->hasPermissions(['delete-company'])) {
$this->showNoPermissionModal = TRUE;
return;
}
$companyDeleted = Company::whereIn("id", $selectedCompanies)->pluck('name')->toArray();
$companyStr = implode(",", $companyDeleted);
Company::destroy($selectedCompanies);
$message = "Deleted : (" . $companyStr . " )Successfully";
$this->message = $message;
$this->selectedCompanies = [];
if ($this->message) {
$this->dispatchBrowserEvent('show-message', ['message' => $this->message]);
}
}
}
<?php
namespace App\Http\Livewire\Pages\Group;
use Livewire\Component;
use App\Models\Group;
class GroupCreate extends Component
{
public $name ,$companies , $company;
public $description;
public $action;
public $role_lists;
public $user_lists;
protected $rules = [
'name' => 'required',
];
public function mount($companies)
{
$this->companies = $companies;
}
public function render()
{
return view('livewire.pages.group.group-create');
}
public function submitForm()
{
$validatedData = $this->validate([
'name' => 'required'
]);
$this->company = isset($this->company) && $this->company != null ? $this->company : $this->companies->first()->id ?? null;
$groupeData = [
'name' => $this->name,
'company_id' => $this->company
];
$group = Group::create($groupeData);
$arr_role_lists = explode(",",$this->role_lists);
$arr_user_lists = explode(",",$this->user_lists);
if (!empty($this->role_lists)) {
$group->roles()->sync($arr_role_lists);
}
// dd($group->roles);
if (!empty($this->user_lists)) {
$group->users()->sync($arr_user_lists);
}
// Reset form fields
$this->reset([
'name', 'company' ,'description', 'role_lists' , 'user_lists'
]);
$this->emit('showGroupList', 'Group successfully created.');
}
public function goBack()
{
$this->emit('showGroupList', '');
}
}
<?php
namespace App\Http\Livewire\Pages\Group;
use Livewire\Component;
use App\Models\Group;
use App\Models\Permission;
class GroupEdit extends Component
{
public $editGroupId;
public $permissions;
public $groupId;
public $group;
public $name ,$companies , $company;
public $role_lists;
public $user_lists;
protected $rules = [
'name' => 'required',
// 'group.company_id' => 'required',
];
public function mount($editGroupId, $roles, $users, $companies)
{
$this->editGroupId = $editGroupId;
$this->group = Group::findOrFail($editGroupId);
$this->name = $this->group->name;
$this->company = $this->group->company_id;
}
public function render()
{
$groupRoles = $this->group->roles()->pluck('role_id')->toArray();
$groupUsers = $this->group->users()->pluck('user_id')->toArray();
return view('livewire.pages.group.group-edit' , [
'groupRoles' => $groupRoles,
'groupUsers' => $groupUsers
]);
}
public function submitEditForm()
{
$this->validate();
$this->company = isset($this->company) && $this->company != null ? $this->company : $this->companies->first()->id ?? null;
$groupeData = [
'name' => $this->name,
'company_id' => $this->company
];
$this->group->update($groupeData);
$arr_role_lists = explode(",",$this->role_lists);
$arr_user_lists = explode(",",$this->user_lists);
$this->group->roles()->sync($arr_role_lists);
$this->group->users()->sync($arr_user_lists);
$this->emit('showGroupList', 'Group successfully updated.');
}
public function goBack()
{
$this->emit('showGroupList', '');
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment