staff, mno, clients, bug fixes

This commit is contained in:
Kwesi Banson
2023-05-08 10:13:03 +00:00
parent 903c1703b9
commit f2279bd13a
49 changed files with 3260 additions and 6511 deletions

View File

@@ -9,6 +9,7 @@ use Illuminate\Support\Arr;
use App\Jobs\SendNewUssdClientEmail; use App\Jobs\SendNewUssdClientEmail;
use App\Jobs\SendUssdClientActiveEmail; use App\Jobs\SendUssdClientActiveEmail;
use App\Jobs\SendNewNotesEmailAlert; use App\Jobs\SendNewNotesEmailAlert;
use App\Http\Requests;
class ClientsController extends Controller class ClientsController extends Controller
@@ -22,7 +23,7 @@ class ClientsController extends Controller
{ {
$client_arr = new Models\Client; $client_arr = new Models\Client;
$client_arr = $client_arr->with('auth_user_info','country_info', 'created_by_info')->orderBy('name', 'ASC')->paginate(10); $client_arr = $client_arr->with('auth_user_info','country_info', 'created_by_info')->orderBy('name', 'ASC')->paginate(15);
//dd($client_arr); //dd($client_arr);
$data = [ $data = [
'page_title' => 'Clients', 'page_title' => 'Clients',
@@ -93,48 +94,7 @@ class ClientsController extends Controller
} }
return response()->json($client_arr); return response()->json($client_arr);
} }
public function indexOriginal()
{
$client_arr = new Models\Client;
$table_columns = \DB::select(\DB::raw("show full columns from clients"));
$exclude_arr = [
'updated_at', 'id', 'auth_user_id', 'pay_mode', 'type', 'created_at', 'currency'
];
$columns = [];
$queries = [];
foreach ($table_columns as $key) {
$columns[$key->Field] = $key->Field;
}
foreach ($columns as $col) {
if (request('filter') == $col) {
$filter = request('filter');
$keyword = request('keyword');
$table_arr = ['staff_id', 'pay_mode'];
// dump($col);
// dump(in_array($col, $table_arr));
if (in_array($col, $table_arr)) {
$key = $this->get_filter_ids($filter, $keyword);
if (!empty($key)) {
$keyword = $key;
}
}
$client_arr = $client_arr->where($col, 'like', '%'.$keyword.'%');
$queries[$col] = request('keyword');
}
}
$client_arr = $client_arr->with('payment_type_info', 'service_info', 'auth_user_info', 'created_by_info')->orderBy('name', 'ASC')->paginate(10)->appends($queries);
$columns = Arr::except($columns, $exclude_arr);
$columns['pay_mode'] = 'Payment Mode';
$data = [
'page_title' => 'Clients',
'columns' => $columns,
'client_arr' => $client_arr,
'current_user' => session('current_user')
];
return view('client.index', $data);
}
/** /**
* Show the form for creating a new resource. * Show the form for creating a new resource.
@@ -243,8 +203,6 @@ class ClientsController extends Controller
'notes_body' => 'required' 'notes_body' => 'required'
]); ]);
$auth_user = session('current_user'); $auth_user = session('current_user');
// dd($request->all());
//'email' => 'unique:users,email_address' //'email' => 'unique:users,email_address'
$notes_arr = [ $notes_arr = [
'notes_body' => $request->notes_body, 'notes_body' => $request->notes_body,
@@ -278,14 +236,13 @@ class ClientsController extends Controller
'client_id' => 'required', 'client_id' => 'required',
'services' => 'required', 'services' => 'required',
'invoice_number' => 'required', 'invoice_number' => 'required',
'invoice_amount' => 'required', 'invoice_amount' => 'required|numeric',
'invoice_date' => 'required', 'invoice_date' => 'required',
'invoice_status' => 'required' 'invoice_status' => 'required'
]); ]);
$auth_user = session('current_user'); $auth_user = session('current_user');
// dd($request->all()); //dd($request->all());
//'email' => 'unique:users,email_address'
$finance_arr = [ $finance_arr = [
'invoice_number' => $request->invoice_number, 'invoice_number' => $request->invoice_number,
'invoice_amount' => $request->invoice_amount, 'invoice_amount' => $request->invoice_amount,
@@ -323,11 +280,15 @@ class ClientsController extends Controller
'launch_date' => 'required' 'launch_date' => 'required'
]); ]);
$auth_user = session('current_user'); $auth_user = session('current_user');
$network = Models\NetworkOps::find($request->network);
// dump($network);
// dd($request->all());
$shortcode_arr = [ $shortcode_arr = [
'name' => $request->name, 'name' => $request->name,
'client_id' => $request->client_id, 'client_id' => $request->client_id,
'network' => $request->network, 'network' => $network->name,
'country' => $network->country,
'shortcode' => $request->shortcode, 'shortcode' => $request->shortcode,
'code_type' => $request->code_type, 'code_type' => $request->code_type,
'toll_free' => $request->toll_free, 'toll_free' => $request->toll_free,
@@ -356,7 +317,7 @@ class ClientsController extends Controller
'client_id' => 'required', 'client_id' => 'required',
'services' => 'required', 'services' => 'required',
'invoice_number' => 'required', 'invoice_number' => 'required',
'invoice_amount' => 'required', 'invoice_amount' => 'required|numeric',
'invoice_date' => 'required', 'invoice_date' => 'required',
'invoice_status' => 'required' 'invoice_status' => 'required'
]); ]);
@@ -395,7 +356,6 @@ class ClientsController extends Controller
} }
return response()->json($data, 200); return response()->json($data, 200);
} }
/** /**
* Display the specified resource. * Display the specified resource.
* *
@@ -410,6 +370,94 @@ class ClientsController extends Controller
$service_type_names = Models\Service::pluck('name', 'name'); $service_type_names = Models\Service::pluck('name', 'name');
$show_services = Models\ClientCategory::where('client_id', $id)->get(); $show_services = Models\ClientCategory::where('client_id', $id)->get();
//->where('highlight', 'NO')
$show_notes = Models\ClientNote::with('created_by_info', 'client_info')->where('client_id', $id)->orderBy('id', 'DESC')->get()->take(20);
$voice_codes = Models\ClientShortCode::where('client_id', $id)->where('code_type', 'voice')->get();
$sms_codes = Models\ClientShortCode::where('client_id', $id)->where('code_type', 'sms')->get();
$ussd_codes = Models\ClientShortCode::where('client_id', $id)->where('code_type', 'ussd')->get();
$recent_payments = Models\ClientPayment::where('client_id', $id)->orderBy('id', 'DESC')->get();
$countries = Models\Country::pluck('en_short_name','en_short_name');
$networks = Models\NetworkOps::pluck('name', 'id');
$showdocuments = Models\ClientFile::where('client_id', $id)->get();
if ($showclient->status == 'Live') {
$status_bg = "info";
}
elseif ($showclient->status == 'Prospective') {
$status_bg = "warning";
}
else{
$status_bg = "danger";
}
$renewal_due = 'N/A';
$highlight_colour = 'none';
//review this later
if ($showclient->contract_validity == null || $showclient->contract_validity == '') {
$renewal_due = "N/A";
}
else{
$current_date = date_create(date('Y-m-d'));
$expiry_date = date_create($showclient->contract_validity);
$diff = date_diff($current_date, $expiry_date);
$polar = $diff->format("%R");
$months = $diff->format("%m");
$days = $diff->format("%a");
if ($days < 31) {
if ($polar == '-') {
$highlight_colour = 'warning';
$renewal_due = "Contract expired $days days(s) ago";
}
else{
$renewal_due = "In $days day(s)" ;
}
}
else{
if ($polar == '-') {
$highlight_colour = 'warning';
$renewal_due = "Contract expired $months month(s) ago";
}
else{
$renewal_due = "In $months months";
}
}
}
$data = [
'page_title' => 'Client Profile',
'showclient' => $showclient,
'show_services' => $show_services,
'service_type' => $service_type,
'service_type_names' => $service_type_names,
'show_notes' => $show_notes,
'status_bg' => $status_bg,
'voice_codes' => $voice_codes,
'sms_codes' => $sms_codes,
'ussd_codes' => $ussd_codes,
'countries' => $countries,
'networks' => $networks,
'renewal_due' => $renewal_due,
'recent_payments' => $recent_payments,
'highlight_colour' => $highlight_colour,
'showdocuments' => $showdocuments
];
return view('client.show', $data);
}
public function showReadonly($id)
{
//with('short_code_info')->
$showclient = Models\Client::with('service_info', 'country_info', 'auth_user_info', 'short_code_info')->find($id);
$service_type = Models\Service::pluck('name', 'id');
$service_type_names = Models\Service::pluck('name', 'name');
$show_services = Models\ClientCategory::where('client_id', $id)->get();
//->where('highlight', 'NO') //->where('highlight', 'NO')
$show_notes = Models\ClientNote::with('created_by_info', 'client_info')->where('client_id', $id)->orderBy('id', 'DESC')->get()->take(20); $show_notes = Models\ClientNote::with('created_by_info', 'client_info')->where('client_id', $id)->orderBy('id', 'DESC')->get()->take(20);
$voice_codes = Models\ClientShortCode::where('client_id', $id)->where('code_type', 'voice')->get(); $voice_codes = Models\ClientShortCode::where('client_id', $id)->where('code_type', 'voice')->get();
@@ -418,6 +466,8 @@ class ClientsController extends Controller
$recent_payments = Models\ClientPayment::where('client_id', $id)->orderBy('id', 'DESC')->get(); $recent_payments = Models\ClientPayment::where('client_id', $id)->orderBy('id', 'DESC')->get();
$countries = Models\Country::pluck('en_short_name','en_short_name'); $countries = Models\Country::pluck('en_short_name','en_short_name');
$networks = Models\NetworkOps::pluck('name', 'name'); $networks = Models\NetworkOps::pluck('name', 'name');
$all_shortcodes = Models\ClientShortCode::with('client_info', 'client_info', 'update_info')->where('client_id', $id)->orderBy('code_type', 'ASC')->get();
$showdocuments = Models\ClientFile::where('client_id', $id)->get();
if ($showclient->status == 'Live') { if ($showclient->status == 'Live') {
$status_bg = "info"; $status_bg = "info";
@@ -485,9 +535,11 @@ class ClientsController extends Controller
'networks' => $networks, 'networks' => $networks,
'renewal_due' => $renewal_due, 'renewal_due' => $renewal_due,
'recent_payments' => $recent_payments, 'recent_payments' => $recent_payments,
'highlight_colour' => $highlight_colour 'highlight_colour' => $highlight_colour,
'all_shortcodes' => $all_shortcodes,
'showdocuments' => $showdocuments
]; ];
return view('client.show', $data); return view('client.show-readonly', $data);
} }
public function showservices($id) public function showservices($id)
{ {
@@ -560,7 +612,7 @@ class ClientsController extends Controller
$status = ['Live' => 'Live', 'inactive' => 'Inactive', 'Prospective' => 'Prospective']; $status = ['Live' => 'Live', 'inactive' => 'Inactive', 'Prospective' => 'Prospective'];
$currency = Models\Currency::pluck('name', 'name'); // $currency = Models\Currency::pluck('name', 'name'); //
$company_types = ['Aggregator/Supplier' => 'Aggregator/Supplier', 'Enterprise' => 'Enterprise', 'Hybrid' => 'Hybrid']; $company_types = ['Aggregator/Supplier' => 'Aggregator/Supplier', 'Enterprise' => 'Enterprise'];
$auth_users = Models\Account::pluck('name', 'id'); $auth_users = Models\Account::pluck('name', 'id');
$industries = Models\Industry::orderBy('name', 'ASC')->pluck('name', 'name'); $industries = Models\Industry::orderBy('name', 'ASC')->pluck('name', 'name');
$message_types_arr = ['International' => 'International', 'Local' => 'Local']; $message_types_arr = ['International' => 'International', 'Local' => 'Local'];
@@ -642,7 +694,7 @@ class ClientsController extends Controller
$status_bg = "danger"; $status_bg = "danger";
} }
$contract_types = ['bilateral' => 'bilateral', 'unilateral' => 'unilateral']; $contract_types = ['Bilateral' => 'Bilateral', 'Unilateral' => 'Unilateral'];
$connections = ['SMPP' => 'SMPP', 'HTTP' => 'HTTP']; $connections = ['SMPP' => 'SMPP', 'HTTP' => 'HTTP'];
@@ -689,9 +741,10 @@ class ClientsController extends Controller
* @param int $id * @param int $id
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function update(Request $request, $id) public function update(Requests\UpdateClientRequest $request, $id)
{ {
//Todo : work on the services and the sender IDs //Todo : work on the services and the sender IDs
/*
$request->validate([ $request->validate([
'name' => 'required', 'name' => 'required',
'email' => 'required|email', 'email' => 'required|email',
@@ -700,9 +753,53 @@ class ClientsController extends Controller
'currency' => 'required', 'currency' => 'required',
'auth_user_id' => 'required' 'auth_user_id' => 'required'
]); ]);
*/
$client_update = Models\Client::find($id); $client_update = Models\Client::find($id);
if ($request->has('document_one') && $request->has('document_one_name')) {
if ($request->file('document_one')->isValid()) {
$filename = "erp_" . time() . str_random(6) . "." . $request->document_one->extension();
$request->document_one->storeAs('client_files', $filename, 'public');
$document_arr['file_path'] = $filename;
$client_update->name = $request->name;
// dd($request->support_emails); $document_arr['file_extension'] = $request->document_one->extension();
$document_arr['file_reff'] = time() . uniqid();
$document_arr['name'] = $request->document_one_name;
$document_arr['created_by'] = session('current_user.id');
$document_arr['client_id'] = $id;
$result = Models\ClientFile::create($document_arr);
}
}
if ($request->has('document_two') && $request->has('document_two_name')) {
if ($request->file('document_two')->isValid()) {
$filename = "erp_" . time() . str_random(6) . "." . $request->document_two->extension();
$request->document_two->storeAs('client_files', $filename, 'public');
$document_arr['file_path'] = $filename;
$client_update->name = $request->name;
$document_arr['file_extension'] = $request->document_two->extension();
$document_arr['file_reff'] = time() . uniqid();
$document_arr['name'] = $request->document_two_name;
$document_arr['created_by'] = session('current_user.id');
$document_arr['client_id'] = $id;
$result = Models\ClientFile::create($document_arr);
}
}
if ($request->has('document_three') && $request->has('document_three_name')) {
if ($request->file('document_three')->isValid()) {
$filename = "erp_" . time() . str_random(6) . "." . $request->document_three->extension();
$request->document_three->storeAs('client_files', $filename, 'public');
$document_arr['file_path'] = $filename;
$client_update->name = $request->name;
$document_arr['file_extension'] = $request->document_three->extension();
$document_arr['file_reff'] = time() . uniqid();
$document_arr['name'] = $request->document_three_name;
$document_arr['created_by'] = session('current_user.id');
$document_arr['client_id'] = $id;
$result = Models\ClientFile::create($document_arr);
}
}
$client_update->name = $request->name; $client_update->name = $request->name;
$client_update->email = $request->email; $client_update->email = $request->email;
@@ -772,9 +869,6 @@ class ClientsController extends Controller
} }
$retval = $this->update_services($request->services, $client_update->id); $retval = $this->update_services($request->services, $client_update->id);
*/ */
Session::flash('success_message', 'Client successfully Updated'); Session::flash('success_message', 'Client successfully Updated');
return redirect(url('clients', $id)); return redirect(url('clients', $id));
} }
@@ -819,79 +913,54 @@ class ClientsController extends Controller
} }
return true; return true;
} }
public function storeFiles(AddFilesRequest $request)
public function get_filter_ids($filter, $keyword)
{ {
switch ($filter) { $document_arr = $request->except('document');
case 'status': if ($request->hasFile('document')) {
$id = Models\Client::where('status', 'like', "%$keyword%")->get(['id']); if ($request->file('document')->isValid()) {
if ($id->isEmpty()) { $filename = "erp_" . time() . "." . $request->document->extension();
return ''; $request->document->storeAs('client_files', $filename, 'public');
} $document_arr['document'] = json_encode([$filename]);
$step = json_decode($id);
$the_id = $step[0]->id;
return (count($step) > 0 ) ? $step[0]->id : "";
break;
case 'type':
$id = Models\Client::where('type', 'like', "%$keyword%")->get(['id']);
if ($id->isEmpty()) {
return '';
}
$step = json_decode($id);
$the_id = $step[0]->id;
return (count($step) > 0 ) ? $step[0]->id : "";
break;
case 'country':
$id = Models\Country::where('alpha_2_code', 'like', "%$keyword%")->orWhere('alpha_3_code', 'like', "%$keyword%")->orWhere('en_short_name', 'like', "%$keyword%")->get(['id']);
if ($id->isEmpty()) {
return '';
}
$step = json_decode($id);
$the_id = $step[0]->id;
return (count($step) > 0 ) ? $step[0]->id : "";
break;
case 'currency':
$id = Models\Client::where('currency', 'like', "%$keyword%")->get(['id']);
if ($id->isEmpty()) {
return '';
}
$step = json_decode($id);
$the_id = $step[0]->id;
return (count($step) > 0 ) ? $step[0]->id : "";
break;
case 'auth_user_id':
$id = Models\SystemUser::where('name', 'like', "%$keyword%")->get(['id']);
if ($id->isEmpty()) {
return '';
}
$step = json_decode($id);
$the_id = $step[0]->id;
return (count($step) > 0 ) ? $step[0]->id : "";
break;
case 'name':
// $this->log_query();
$id = Models\Client::where('name', 'like', "%$keyword%")->get(['id']);
if ($id->isEmpty()) {
return '';
}
$step = json_decode($id);
return (count($step) > 0 ) ? $step[0]->id : "";
break;
case 'pay_mode':
// $this->log_query();
$id = Models\PaymentType::where('name', 'like', "%$keyword%")->get(['id']);
if ($id->isEmpty()) {
return '';
}
$step = json_decode($id);
return (count($step) > 0 ) ? $step[0]->id : "";
break;
default:
return '';
break;
} }
} }
$document_arr['file_extension'] = $request->document->extension();
$document_arr['file_reff'] = time() . uniqid();
$document_arr['last_modified_by'] = session('current_user.id');
$result = Models\ClientFile::create($document_arr);
if ($result) {
$data = ['code' => 1, 'msg' => 'Document successfully uploaded'];
}
else{
$data = ['code' => 3, 'msg' => 'Your request could not be handled at this time'];
}
return response()->json($data, 200);
}
public function getClientFile($id)
{
$client_file = Models\ClientFile::with('client_info')->findOrFail($id);
//PDF file is stored under project/public/download/info.pdf
$file = public_path('documents/client_files/') . $client_file->file_path;
$headers = []; //['Content-Type: application/pdf'];
$filename = $client_file->client_info->name . "_" . $client_file->name;
$filename = $this->cleanStr($filename);
$filename = $filename . "." . $client_file->file_extension;
// $filename = str_replace(' ', '_', $filename);
return \Response::download($file, $filename, $headers);
}
public function cleanStr($string){
// Replaces all spaces with hyphens.
$string = str_replace(' ', '-', $string);
// Removes special chars.
$string = preg_replace('/[^A-Za-z0-9\-]/', '', $string);
// Replaces multiple hyphens with single one.
$string = preg_replace('/-+/', '_', $string);
return $string;
}
} }

View File

@@ -15,7 +15,7 @@ class NetworkOperatorsController extends Controller
* *
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function index() public function indexBAK()
{ {
$network_operators = new Models\NetworkOps; $network_operators = new Models\NetworkOps;
$table_columns = \DB::select(\DB::raw("show full columns from network_operators")); $table_columns = \DB::select(\DB::raw("show full columns from network_operators"));
@@ -52,6 +52,36 @@ class NetworkOperatorsController extends Controller
return view('network_ops.index', $data); return view('network_ops.index', $data);
} }
public function index(){
//$mno_arr = Models\NetworkOps::get();
$data = [
'page_title' => 'Mobile Network Operators',
'current_user' => session('current_user')
];
return view('network_ops.index', $data);
}
public function getMnosJson(Request $request)
{
//$this->log_query();
$mno_arr = \DB::table('network_operators')
->join('staff_members AS staffam', 'staffam.id', '=', 'network_operators.account_manager_id')
->join('staff_members AS staffmodify', 'staffmodify.id', '=', 'network_operators.last_modified_by')
->select('network_operators.id', 'staffam.name AS accountManager', 'network_operators.name AS networkName', 'network_operators.country', 'network_operators.connection_status', 'staffmodify.name AS modifiedBy')
->orderBy('network_operators.name', 'ASC')
->paginate(15);
if($request->has('keyword')){
$keyword = $request->keyword;
$mno_arr = \DB::table('network_operators')
->join('staff_members AS staffam', 'staffam.id', '=', 'network_operators.account_manager_id')
->join('staff_members AS staffmodify', 'staffmodify.id', '=', 'network_operators.last_modified_by')
->select('network_operators.id', 'staffam.name AS accountManager', 'network_operators.name AS networkName', 'network_operators.country', 'network_operators.connection_status', 'staffmodify.name AS modifiedBy')
->whereRaw("network_operators.name LIKE '%$keyword%' OR network_operators.connection_status LIKE '%$keyword%' OR network_operators.country LIKE '%$keyword%' OR staffam.name LIKE '%$keyword%' ")
->orderBy('network_operators.name', 'ASC')
->paginate(15);
}
return response()->json($mno_arr);
}
/** /**
* Show the form for creating a new resource. * Show the form for creating a new resource.
@@ -60,12 +90,16 @@ class NetworkOperatorsController extends Controller
*/ */
public function create() public function create()
{ {
$countries = Models\Country::pluck('en_short_name','alpha_2_code'); $countries = Models\Country::pluck('en_short_name','en_short_name');
$account_manager = Models\SystemUser::pluck('name', 'id'); $account_manager = Models\SystemUser::pluck('name', 'id');
$services = Models\Service::pluck('name', 'name');
$status = ['Active' => 'Active', 'Inactive' => 'Inactive', 'Pending' => 'Pending'];
$data = [ $data = [
'page_title' => 'Create Network Operator', 'page_title' => 'Create Network Operator',
'countries'=> $countries, 'countries'=> $countries,
'account_manager' => $account_manager 'account_manager' => $account_manager,
'services' => $services,
'status' => $status
]; ];
return view('network_ops.create', $data); return view('network_ops.create', $data);
@@ -83,16 +117,41 @@ class NetworkOperatorsController extends Controller
'name' => 'required', 'name' => 'required',
'country' => 'required', 'country' => 'required',
'account_manager_id' => 'required', 'account_manager_id' => 'required',
'services' => 'required',
'contact_person' => 'required',
'email' => 'required',
'phone' => 'required'
]); ]);
$operator_arr = [ $operator_arr = [
'name' => $request->name, 'name' => $request->name,
'country' => $request->country, 'country' => $request->country,
'account_manager_id' => $request->account_manager_id 'account_manager_id' => $request->account_manager_id,
'contact_person' => $request->contact_person,
'connection_status' => $request->status,
'contact_person_phone' => $request->phone,
'contact_person_email' => $request->email,
'last_modified_by' => session('current_user.id')
]; ];
if ($request->has('services')) {
$operator_arr['services'] = json_encode($request->services);
}
if ($request->has('phone')) {
$operator_arr['phone'] = $request->phone;
}
if ($request->has('skype_name')) {
$operator_arr['contact_person_skype'] = $request->skype_name;
}
if ($request->has('linkedin_name')) {
$operator_arr['linkedin_name'] = $request->linkedin_name;
}
if ($request->has('contact_person')) {
$operator_arr['contact_person'] = $request->contact_person;
}
$saved = Models\NetworkOps::create($operator_arr); $saved = Models\NetworkOps::create($operator_arr);
Session::flash('success_message', 'Network Operator successfully added'); Session::flash('success_message', 'Network Operator successfully added');
return redirect(url('network_ops')); return redirect(url('mnos'));
} }
/** /**
@@ -121,16 +180,76 @@ class NetworkOperatorsController extends Controller
public function edit($id) public function edit($id)
{ {
$network_arr = Models\NetworkOps::findOrFail($id); $network_arr = Models\NetworkOps::findOrFail($id);
$countries = Models\Country::pluck('en_short_name','alpha_2_code'); $countries = Models\Country::pluck('en_short_name','en_short_name');
$account_manager = Models\SystemUser::pluck('name', 'id'); $account_manager = Models\SystemUser::pluck('name', 'id');
$services = Models\Service::pluck('name', 'name');
$connection_types = ['VPN' => 'VPN', 'DIRECT' => 'DIRECT'];
$ip_addresses = Models\Mnoips::where('mno_id', $id)->get();
if ($network_arr->support_emails) {
$support_emails = json_decode($network_arr->support_emails, true);
$support_emails = array_combine($support_emails, $support_emails);
$old_support_emails = json_decode($network_arr->support_emails, true);
}
else{
$support_emails = [];
$old_support_emails = [];
}
if ($network_arr->support_phones) {
$support_phones = json_decode($network_arr->support_phones, true);
$support_phones = array_combine($support_phones, $support_phones);
$old_support_phones = json_decode($network_arr->support_phones, true);
}
else{
$support_phones = [];
$old_support_phones = [];
}
if ($network_arr->support_skype) {
$support_skype_arr = json_decode($network_arr->support_skype, true);
$support_skype_arr = array_combine($support_skype_arr, $support_skype_arr);
$old_support_skype_arr = json_decode($network_arr->support_skype, true);
}
else{
$support_skype_arr = [];
$old_support_skype_arr = [];
}
$old_connection_type = [];
if ($network_arr->connection_type) {
$connection_type = json_decode($network_arr->connection_type, true);
$connection_type = array_combine($connection_type, $connection_type);
$old_connection_type = json_decode($network_arr->connection_type, true);
}
else{
$old_connection_type = [];
}
if ($network_arr->connection_status == 'Active') {
$status_bg = "info";
}
elseif ($network_arr->connection_status == 'Pending') {
$status_bg = "warning";
}
else{
$status_bg = "danger";
}
$data = [ $data = [
'page_title' => 'Edit Network Operator', 'page_title' => 'Edit Network Operator',
'network_arr' => $network_arr, 'network_arr' => $network_arr,
'countries'=> $countries, 'countries'=> $countries,
'account_manager' => $account_manager 'account_manager' => $account_manager,
'current_services' => json_decode($network_arr->services, true),
'services' => $services->toArray(),
'support_emails' => $support_emails,
'support_skype_arr' => $support_skype_arr,
'support_phones' => $support_phones,
'old_support_emails' => $old_support_emails,
'old_support_skype_arr' => $old_support_skype_arr,
'old_support_phones' => $old_support_phones,
'status_bg' => $status_bg,
'connection_types' => $connection_types,
'old_connection_type' => $old_connection_type,
'ip_addresses' => $ip_addresses
]; ];
return view('network_ops.edit', $data); return view('network_ops.edit', $data);
} }
@@ -147,18 +266,71 @@ class NetworkOperatorsController extends Controller
'name' => 'required', 'name' => 'required',
'country' => 'required', 'country' => 'required',
'account_manager_id' => 'required', 'account_manager_id' => 'required',
'services' => 'required',
'contact_person' => 'required',
'contact_person_email' => 'required',
'contact_person_phone' => 'required'
]); ]);
// dd($request->all());
$operator_update = Models\NetworkOps::find($id); $operator_update = Models\NetworkOps::find($id);
$operator_update->name = $request->name; $operator_update->name = $request->name;
$operator_update->country = $request->country; $operator_update->country = $request->country;
$operator_update->account_manager_id = $request->account_manager_id; $operator_update->account_manager_id = $request->account_manager_id;
$operator_update->contact_person_email = $request->contact_person_email;
$operator_update->contact_person_phone = $request->contact_person_phone;
$operator_update->contact_person = $request->contact_person;
$operator_update->connection_status = $request->connection_status ?? "";
$operator_update->connection_type = ($request->connection_type) ? json_encode($request->connection_type) : "";
$operator_update->contact_person_skype = $request->contact_person_skype ?? "";
#$operator_update->connections = ($request->connections) ? json_encode($request->connections) : "";
$operator_update->services = ($request->services) ? json_encode($request->services) : "";
$operator_update->support_emails = ($request->support_emails) ? json_encode($request->support_emails) : "";
$operator_update->support_phones = ($request->support_phones) ? json_encode($request->support_phones) : "";
$operator_update->support_skype = ($request->support_skype) ? json_encode($request->support_skype) : "";
$result = $operator_update->save(); $result = $operator_update->save();
Session::flash('success_message', 'Network Operator successfully Updated'); Session::flash('success_message', 'Network Operator successfully Updated');
return redirect(url('network_ops')); return redirect(url('mnos'));
} }
public function ipStore(Request $request)
{
$request->validate([
'mno_id' => 'required',
'ip_address' => 'required|ipv4',
'service' => 'required',
'port' => 'sometimes|numeric',
'status' => 'required'
]);
$auth_user = session('current_user');
$addresses_arr = [
'ip_address' => $request->ip_address,
'mno_id' => $request->mno_id,
'service' => $request->service,
'port' => $request->port,
'status' => $request->status,
'created_by' => $auth_user['id'],
'last_modified_by' => $auth_user['id']
];
$result = Models\Mnoips::create($addresses_arr);
if ($result) {
$data = ['code' => 1, 'msg' => 'IP Address successfully added'];
}
else{
$data = ['code' => 3, 'msg' => 'Your request could not be handled at this time'];
}
return response()->json($data, 200);
}
/** /**
* Remove the specified resource from storage. * Remove the specified resource from storage.
* *
@@ -173,43 +345,6 @@ class NetworkOperatorsController extends Controller
return response()->json($result_arr); return response()->json($result_arr);
} }
Session::flash('success_message', 'Network Operator successfully deleted!'); Session::flash('success_message', 'Network Operator successfully deleted!');
return redirect(route('network_ops.index')); return redirect(route('mnos.index'));
}
public function get_filter_ids($filter, $keyword){
switch ($filter) {
case 'name':
$id = Models\NetworkOps::where('name', 'like', "%$keyword%")->get(['id']);
if ($id->isEmpty()) {
return '';
}
$step = json_decode($id);
$the_id = $step[0]->id;
return (count($step) > 0 ) ? $step[0]->id : "";
break;
case 'country':
$id = Models\Country::where('alpha_2_code', 'like', "%$keyword%")->orWhere('alpha_3_code', 'like', "%$keyword%")->orWhere('en_short_name', 'like', "%$keyword%")->get(['id']);
if ($id->isEmpty()) {
return '';
}
$step = json_decode($id);
$the_id = $step[0]->id;
return (count($step) > 0 ) ? $step[0]->id : "";
break;
case 'account_manager_id':
$id = Models\SyatemUser::where('name', 'like', "%$keyword%")->get(['id']);
if ($id->isEmpty()) {
return '';
}
$step = json_decode($id);
$the_id = $step[0]->id;
return (count($step) > 0 ) ? $step[0]->id : "";
break;
default:
return '';
break;
}
} }
} }

View File

@@ -0,0 +1,148 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models;
use Session;
class SenderIdController extends Controller
{
public function index(){
$senderid_arr = new Models\SenderId;
// $senderid_arr = $senderid_arr->with('modified_by_info', 'network_info', 'created_by_info')->orderBy('senderid', 'ASC')->paginate(15);
// dd($senderid_arr);
$data = [
'page_title' => 'Sender IDs',
// 'senderid_arr' => $senderid_arr,
'current_user' => session('current_user')
];
return view('senderid.index', $data);
}
public function getSenderIdsJson(Request $request)
{
#$this->log_query();
$senderid_arr = \DB::table('sender_ids')
->join('staff_members AS staffcreate', 'staffcreate.id', '=', 'sender_ids.created_by')
->join('staff_members AS staffmodify', 'staffmodify.id', '=', 'sender_ids.last_modified_by')
->join('network_operators', 'network_operators.id', '=', 'sender_ids.network_id')
->join('clients', 'clients.id', '=', 'sender_ids.client_id')
->select('sender_ids.id', 'clients.name AS clientName', 'network_operators.name AS networkName', 'network_operators.country', 'sender_ids.senderid', 'sender_ids.status', 'sender_ids.network_id', 'network_operators.country','sender_ids.remarks', 'staffcreate.name As createdBy', 'staffmodify.name AS modifiedBy')
->orderBy('sender_ids.senderid', 'ASC')
->paginate(15);
if($request->has('keyword')){
$keyword = $request->keyword;
$senderid_arr = \DB::table('sender_ids')
->join('staff_members AS staffcreate', 'staffcreate.id', '=', 'sender_ids.created_by')
->join('staff_members AS staffmodify', 'staffmodify.id', '=', 'sender_ids.last_modified_by')
->join('network_operators', 'network_operators.id', '=', 'sender_ids.network_id')
->join('clients', 'clients.id', '=', 'sender_ids.client_id')
->select('sender_ids.id', 'clients.name AS clientName', 'network_operators.name AS networkName', 'network_operators.country', 'sender_ids.senderid', 'sender_ids.status', 'sender_ids.network_id', 'network_operators.country','sender_ids.remarks', 'staffcreate.name As createdBy', 'staffmodify.name AS modifiedBy')
->whereRaw("sender_ids.senderid LIKE '%$keyword%' OR sender_ids.status LIKE '%$keyword%' OR network_operators.name LIKE '%$keyword%' OR network_operators.country LIKE '%$keyword%' OR staffcreate.name LIKE '%$keyword%' OR staffmodify.name LIKE '%$keyword%' OR clients.name LIKE '%$keyword%'")
->orderBy('sender_ids.senderid', 'ASC')
->paginate(15);
}
return response()->json($senderid_arr);
}
public function create()
{
#$network_arr = Models\NetworkOps::pluck('name','country');
$networks = \DB::table('network_operators')->Select(\DB::raw('id, concat(name, " (", country, ")") AS network'))->orderBy('network')->get()->toArray();
$network_arr = array_pluck($networks, 'network', 'id');
// dd($network_arr);
#$network_arr = array_combine($network_arr, $network_arr);
$clients = Models\Client::pluck('name', 'id');
$staffmembers = Models\StaffMember::pluck('name', 'id');
$status = ['Pending' => 'Pending', 'Inactive' => 'Inactive', 'Approved' => 'Approved'];
$data = [
'page_title' => 'Create Sender ID',
'network_arr' => $network_arr,
'status' => $status,
'clients' => $clients,
'staffmembers' => $staffmembers
];
return view('senderid.create', $data);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$request->validate([
'senderid' => 'required|max:11',
'network_id' => 'required',
'status' => 'required',
'remarks' => 'sometimes',
]);
$senderid_arr = $request->except('_token');
$senderid_arr['created_by'] = session('current_user.id');
$senderid_arr['last_modified_by'] = session('current_user.id');
$senderid_arr['remarks'] = $request->remarks ?? '';
$result = Models\SenderId::create($senderid_arr);
#save services this has been moved to the main client table
//$retval = $this->store_services($request->services, $result->id);
Session::flash('success_message', 'Sender ID successfully added');
return redirect(url('senderids'));
}
public function edit($id){
$senderid = Models\SenderId::findOrFail($id);
//dd($senderid);
$networks = \DB::table('network_operators')->Select(\DB::raw('id, concat(name, " (", country, ")") AS network'))->orderBy('network')->get()->toArray();
$network_arr = array_pluck($networks, 'network', 'id');
$clients = Models\Client::pluck('name', 'id');
$staffmembers = Models\StaffMember::pluck('name', 'id');
$status = ['Pending' => 'Pending', 'Inactive' => 'Inactive', 'Approved' => 'Approved'];
$data = [
'page_title' => 'Create Sender ID',
'network_arr' => $network_arr,
'status' => $status,
'clients' => $clients,
'senderid' => $senderid,
'staffmembers' => $staffmembers
];
return view('senderid.edit', $data);
}
public function update(Request $request, $id)
{
$request->validate([
'senderid' => 'required|max:11',
'network_id' => 'required',
'status' => 'required',
'remarks' => 'sometimes',
]);
$senderid = Models\SenderId::findOrFail($id);
$senderid->senderid = $request->senderid;
$senderid->client_id = $request->client_id;
$senderid->status = $request->status;
$senderid->network_id = $request->network_id;
$senderid->remarks = $request->remarks;
$senderid->save();
Session::flash('success_message', 'Sender ID successfully Updated');
return redirect(url('senderids'));
}
}

View File

@@ -0,0 +1,141 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models;
use Session;
class StaffMembersController extends Controller
{
public function index(){
$staff_members_arr = new Models\StaffMember;
$data = [
'page_title' => 'Staff Members',
'current_user' => session('current_user')
];
return view('staff_members.index', $data);
}
public function getstaffMemberssJson(Request $request)
{
#$this->log_query();
$staff_members_arr = \DB::table('staff_members')
->join('departments', 'departments.id', '=', 'staff_members.department_id')
->join('auth_users AS staffcreate', 'staffcreate.id', '=', 'staff_members.created_by')
->join('auth_users AS staffmodify', 'staffmodify.id', '=', 'staff_members.modified_by')
->select('staff_members.id', 'staffcreate.name AS createdBy', 'staff_members.name','staff_members.phone', 'staffmodify.name AS modifiedBy', 'departments.name AS deptName', 'staff_members.gender', 'staff_members.profile_pic', 'staff_members.email', 'staff_members.personal_email', 'staff_members.staff_number', 'staff_members.staff_number', 'staff_members.status', 'staff_members.location_country', 'staff_members.hire_date')
->orderBy('staff_members.name', 'ASC')
->paginate(10);
if($request->has('keyword')){
$keyword = $request->keyword;
$staff_members_arr = \DB::table('staff_members')
->join('departments', 'departments.id', '=', 'staff_members.department_id')
->join('auth_users AS staffcreate', 'staffcreate.id', '=', 'staff_members.created_by')
->join('auth_users AS staffmodify', 'staffmodify.id', '=', 'staff_members.modified_by')
->select('staff_members.id', 'staffcreate.name AS createdBy','staff_members.name', 'staff_members.phone', 'staffmodify.name AS modifiedBy', 'departments.name AS deptName', 'staff_members.gender', 'staff_members.profile_pic', 'staff_members.email', 'staff_members.personal_email', 'staff_members.staff_number', 'staff_members.status', 'staff_members.location_country', 'staff_members.hire_date')
->whereRaw("staffcreate.name LIKE '%$keyword%' OR staffmodify.name LIKE '%$keyword%' OR staff_members.name LIKE '%$keyword%' OR departments.name LIKE '%$keyword%' OR staff_members.gender LIKE '%$keyword%' OR staff_members.email LIKE '%$keyword%' OR staff_members.personal_email LIKE '%$keyword%' OR staff_members.staff_number LIKE '%$keyword%' OR 'staff_members.staff_number' LIKE '%$keyword%' OR 'staff_members.location_country' LIKE '%$keyword%' OR 'staff_members.hire_date' LIKE '%$keyword%'")
->orderBy('staff_members.name', 'ASC')
->paginate(10);
}
return response()->json($staff_members_arr);
}
public function create()
{
$countries = Models\Country::pluck('en_short_name','en_short_name');
$departments = Models\Department::pluck('name', 'id');
$status = ['Inactive' => 'Inactive', 'Active' => 'Active', 'Pending Confirmation' => 'Pending Confirmation'];
$gender_arr = ['Female' => 'Female', 'Male' => 'Male'];
$data = [
'page_title' => 'Add Staff Member',
'countries' => $countries,
'status' => $status,
'gender_arr' => $gender_arr,
'departments' => $departments,
];
return view('staff_members.create', $data);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'gender' => 'required',
'department_id' => 'required',
'email' => 'required',
'personal_email' => 'required',
'phone' => 'required',
'location_country' => 'required',
'hire_date' => 'sometimes|date',
'profile_pic' => 'sometimes',
'staff_number' => 'sometimes'
]);
$staff_members_arr = $request->except('_token');
$staff_members_arr['created_by'] = session('current_user.id');
$staff_members_arr['modified_by'] = session('current_user.id');
$result = Models\StaffMember::create($staff_members_arr);
Session::flash('success_message', 'Staff Member successfully added');
return redirect(url('staffmembers'));
}
public function edit($id){
$staff_member = Models\StaffMember::findOrFail($id);
$countries = Models\Country::pluck('en_short_name','en_short_name');
$departments = Models\Department::pluck('name', 'id');
$status = ['Inactive' => 'Inactive', 'Active' => 'Active', 'Pending Confirmation' => 'Pending Confirmation'];
$gender_arr = ['Female' => 'Female', 'Male' => 'Male'];
$data = [
'page_title' => 'Edit Staff Member Details',
'countries' => $countries,
'status' => $status,
'staff_member' => $staff_member,
'gender_arr' => $gender_arr,
'departments' => $departments
];
return view('staff_members.edit', $data);
}
public function update(Request $request, $id)
{
$request->validate([
'name' => 'required',
'gender' => 'required',
'department_id' => 'required',
'email' => 'required',
'personal_email' => 'required',
'phone' => 'required',
'location_country' => 'required',
'hire_date' => 'sometimes|date'
]);
$staff_member = Models\StaffMember::findOrFail($id);
$staff_member->name = $request->name;
$staff_member->email = $request->email;
$staff_member->status = $request->status;
$staff_member->personal_email = $request->personal_email;
$staff_member->department_id = $request->department_id;
$staff_member->location_country = $request->location_country;
$staff_member->phone = $request->phone;
$staff_member->hire_date = $request->hire_date;
$staff_member->staff_number = $request->staff_number;
$staff_member->gender = $request->gender;
if ($request->has('profile_pic')) {
$staff_member->profile_pic = $request->profile_pic;
}
$staff_member->save();
Session::flash('success_message', 'Staff Member Details successfully Updated');
return redirect(url('staffmembers'));
}
}

View File

@@ -0,0 +1,32 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class AddFilesRequest 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()
{
return [
"name" => "required",
"description" => "sometimes",
"photo" => "required|max:2000|mimes:png,jpg,jpeg,bmp,pdf,docx",
];
}
}

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class UpdateClientRequest 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()
{
return [
'name' => 'required',
'email' => 'required|email',
'country' => 'required',
'status' => 'required',
'currency' => 'required',
'auth_user_id' => 'required',
'document_one_name' => 'required_with:document_one.*',
'document_two_name' => 'required_with:document_two.*',
'document_two_name' => 'required_with:document_three.*',
'document_one' => 'max:2000|mimes:png,jpg,jpeg,bmp,pdf,doc,docx',
'document_three' => 'max:2000|mimes:png,jpg,jpeg,bmp,pdf,doc,docx',
'document_three' => 'max:2000|mimes:png,jpg,jpeg,bmp,pdf,doc,docx'
];
}
}

14
app/Models/ClientFile.php Normal file
View File

@@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ClientFile extends Model
{
protected $guarded = array('id');
public function client_info(){
return $this->hasOne('App\Models\Client', 'id', 'client_id');
}
}

10
app/Models/Department.php Normal file
View File

@@ -0,0 +1,10 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Department extends Model
{
protected $guarded = array('id');
}

11
app/Models/Mnoips.php Normal file
View File

@@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Mnoips extends Model
{
protected $guarded = array('id');
public $table = "mno_ip_addresses";
}

View File

@@ -9,11 +9,7 @@ class NetworkOps extends Model
protected $guarded = array('id'); protected $guarded = array('id');
public $table = "network_operators"; public $table = "network_operators";
public function country_info(){
return $this->hasOne('App\Models\Country', 'alpha_2_code', 'country');
}
public function account_manager_info(){ public function account_manager_info(){
return $this->hasOne('App\Models\SystemUser', 'id', 'account_manager_id'); return $this->hasOne('App\Models\StaffMember', 'id', 'account_manager_id');
} }
} }

21
app/Models/SenderId.php Normal file
View File

@@ -0,0 +1,21 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class SenderId extends Model{
protected $guarded = array('id');
public $table = "sender_ids";
public function modified_by_info(){
return $this->hasOne('App\Models\StaffMember', 'id', 'last_modified_by');
}
public function network_info(){
return $this->hasOne('App\Models\NetworkOps', 'id', 'netowkr_id');
}
public function created_by_info(){
return $this->hasOne('App\Models\StaffMember', 'id', 'created_by');
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class StaffMember extends Model
{
protected $guarded = array('id');
public $table = "staff_members";
public function department_info(){
return $this->hasOne('App\Models\Department', 'id', 'department_id');
}
public function created_by_info(){
return $this->hasOne('App\Models\Account', 'id', 'created_by');
}
public function modified_by_info(){
return $this->hasOne('App\Models\Account', 'id', 'modified_by');
}
}

View File

@@ -1,983 +0,0 @@
# ************************************************************
# Sequel Pro SQL dump
# Version 5446
#
# https://www.sequelpro.com/
# https://github.com/sequelpro/sequelpro
#
# Host: 127.0.0.1 (MySQL 5.7.21-0ubuntu0.17.10.1)
# Database: click_team_tracker
# Generation Time: 2021-09-09 10:34:33 +0000
# ************************************************************
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
SET NAMES utf8mb4;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
# Dump of table accounts
# ------------------------------------------------------------
DROP TABLE IF EXISTS `accounts`;
CREATE TABLE `accounts` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL DEFAULT '',
`account_manager_id` int(11) NOT NULL,
`type` varchar(200) NOT NULL DEFAULT '',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
# Dump of table apps
# ------------------------------------------------------------
DROP TABLE IF EXISTS `apps`;
CREATE TABLE `apps` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`app_name` varchar(50) NOT NULL,
`app_type` varchar(4) NOT NULL,
`code` varchar(10) NOT NULL,
`country` varchar(20) NOT NULL,
`operator` varchar(20) NOT NULL,
`tollfree` varchar(5) NOT NULL,
`app_path` varchar(200) NOT NULL,
`client` varchar(50) NOT NULL,
`launch_date` varchar(30) NOT NULL,
`status` varchar(12) NOT NULL,
`other_info` text NOT NULL,
`documents` text,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOCK TABLES `apps` WRITE;
/*!40000 ALTER TABLE `apps` DISABLE KEYS */;
INSERT INTO `apps` (`id`, `app_name`, `app_type`, `code`, `country`, `operator`, `tollfree`, `app_path`, `client`, `launch_date`, `status`, `other_info`, `documents`, `created_at`, `updated_at`)
VALUES
(1,'Infobox TNM','USSD','*288#','Malawi','TNM','NO','/var/www/html/ussd_click_tnm_info','Click Mobile','N/A','Active','N/A',NULL,NULL,NULL),
(2,'Sapota ','USSD','*1515#','Malawi','TNM','NO','/var/www/html/sapota_ussd','Click Mobile','N/A','Cancelled','#Subscription is free\r\n#Subscribers billed when they receive and SMS\r\n#Promotion changed code to *2020#',NULL,NULL,NULL),
(3,'UNDP Survey','SMS','3011','Malawi','TNM','YES','/var/www/html/routes/undp_survey','UNDP','2020-11-25','Finished','Contact: Wasili +265999640867',NULL,NULL,NULL),
(4,'UNDP Survey','SMS','3011','Malawi','Airtel','YES','/var/www/html/routes/undp_survey','UNDP','2020-11-25','Finished','Contact: Wasili +265999640867',NULL,NULL,NULL),
(5,'Zampira','USSD','*2020#','Malawi','TNM','NO','/var/www/html/ussd_click_tnm_zampira_mw','Click Mobile','N/A','Pending','#Subscription is free\r\n#Subscribers billed when they receive and SMS\r\n#Promotion changed code to *2020# from *1515#',NULL,NULL,NULL),
(6,'mHealth','USSD','*321#','Malawi','TNM','YES','/var/www/html/ussd_click_tnm_mhealth','GSMA/TNM','N/A','Active','#Subscription and content both free',NULL,NULL,NULL),
(7,'Drug Side Effects Reporting App','USSD','*360#','Malawi','TNM','YES','/var/www/html/ussd_click_tnm_poisonsb_mw','Pharmacy and Medicines Poison Board of Malawi','N/A','Testing','#MT sent after each reporting',NULL,NULL,NULL),
(8,'Old mutual SULOM Predict & Win','SMS','371','Malawi','TNM','NO','','Old Mutual-SULOM','N/A','Testing','#charge 50 kwacha/SMS',NULL,NULL,NULL);
/*!40000 ALTER TABLE `apps` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table auth_users
# ------------------------------------------------------------
DROP TABLE IF EXISTS `auth_users`;
CREATE TABLE `auth_users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL DEFAULT '',
`designation` int(11) NOT NULL,
`email` varchar(200) NOT NULL DEFAULT '',
`phone` varchar(200) NOT NULL DEFAULT '',
`password` varchar(200) NOT NULL DEFAULT '',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOCK TABLES `auth_users` WRITE;
/*!40000 ALTER TABLE `auth_users` DISABLE KEYS */;
INSERT INTO `auth_users` (`id`, `name`, `designation`, `email`, `phone`, `password`, `created_at`, `updated_at`)
VALUES
(1,'Kwesi Banson',3,'kwesi@gmail.com','0509076800','5f4dcc3b5aa765d61d8327deb882cf99','2021-01-26 10:49:51',NULL),
(2,'Nicole Hughes',4,'qurysapel@mailinator.com','0283851774','4bcafd8180b0b79be2f70effc5b1ef40','2021-01-26 10:47:07','2021-01-26 10:47:07'),
(3,'Ariel Villarreal',4,'zicomybabe@mailinator.com','0277171014','d751d6f50de17d526e5ca9ab62bea364','2021-01-26 10:48:42','2021-01-26 10:48:42'),
(4,'Graiden Lynch',3,'rocivejed@mailinator.com','0226672936','5f4dcc3b5aa765d61d8327deb882cf99','2021-01-27 09:41:28','2021-01-27 09:41:28'),
(5,'Hedwig Hess',4,'howone@mailinator.com','0257839588','5f4dcc3b5aa765d61d8327deb882cf99','2021-01-27 09:42:49','2021-01-27 09:42:49'),
(6,'Hedwig Hess',4,'howone@mailinator.com','0257839588','5f4dcc3b5aa765d61d8327deb882cf99','2021-01-27 09:43:19','2021-01-27 09:43:19'),
(7,'ew',4,'howone@mailinator.com','0257839588','d41d8cd98f00b204e9800998ecf8427e','2021-02-08 17:01:35','2021-02-08 17:01:35'),
(8,'Griffin Greene',3,'nakyqiza@mailinator.com','+1 (172) 799-8752','5f4dcc3b5aa765d61d8327deb882cf99','2021-02-08 09:36:53','2021-02-08 09:36:53'),
(9,'Uriah Bush',4,'nocikuc@mailinator.com','','5f4dcc3b5aa765d61d8327deb882cf99','2021-02-14 06:02:21','2021-02-14 05:47:56');
/*!40000 ALTER TABLE `auth_users` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table click_files
# ------------------------------------------------------------
DROP TABLE IF EXISTS `click_files`;
CREATE TABLE `click_files` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(250) DEFAULT NULL,
`path` varchar(199) DEFAULT NULL,
`description` varchar(199) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
# Dump of table click_servers
# ------------------------------------------------------------
DROP TABLE IF EXISTS `click_servers`;
CREATE TABLE `click_servers` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`friendly_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`public_ip_address` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL,
`private_ip_address` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL,
`main_use` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`remarks` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`last_modified_by_id` int(11) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
LOCK TABLES `click_servers` WRITE;
/*!40000 ALTER TABLE `click_servers` DISABLE KEYS */;
INSERT INTO `click_servers` (`id`, `friendly_name`, `public_ip_address`, `private_ip_address`, `main_use`, `remarks`, `last_modified_by_id`, `created_at`, `updated_at`)
VALUES
(1,'SMS Gateway','206.225.87.174','10.199.0.1','SMS, Airtime, Electricity','Eligendi sunt recusa',1,NULL,'2021-04-19 19:22:37'),
(2,'UCM','206.225.81.36','10.199.0.10','SMSC','Ea quasi aut delectu',1,NULL,'2021-04-19 19:23:11'),
(3,'Billing Server','206.225.95.171','10.199.0.3','Airtime Billing','',1,NULL,NULL),
(4,'PACO','206.225.84.29','10.199.0.30','Bulk SMS Platform','',1,NULL,NULL),
(5,'Apps Server','206.225.84.201','10.199.0.11','Applications, Database','',1,NULL,NULL),
(6,'Reporting','216.55.186.230','10.199.0.13','Reporting for UCM','',1,NULL,NULL),
(7,'Mobile Money','206.225.95.109','10.199.0.16','Mobile Money Services','',1,NULL,NULL),
(8,'UCM 2','206.225.94.150','','SMSC for Airtel MW & ZA','',1,NULL,NULL),
(9,'IVR','206.225.82.37','','IVR Services','',1,NULL,NULL);
/*!40000 ALTER TABLE `click_servers` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table clients
# ------------------------------------------------------------
DROP TABLE IF EXISTS `clients`;
CREATE TABLE `clients` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(200) DEFAULT NULL,
`email` varchar(191) DEFAULT NULL,
`type` varchar(200) DEFAULT NULL,
`country` varchar(200) DEFAULT NULL,
`auth_user_id` int(11) NOT NULL DEFAULT '1',
`status` varchar(200) DEFAULT NULL,
`pay_mode` varchar(200) DEFAULT NULL,
`currency` varchar(200) DEFAULT NULL,
`created_by` int(11) DEFAULT '1',
`last_modified_by` int(11) DEFAULT '1',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOCK TABLES `clients` WRITE;
/*!40000 ALTER TABLE `clients` DISABLE KEYS */;
INSERT INTO `clients` (`id`, `name`, `email`, `type`, `country`, `auth_user_id`, `status`, `pay_mode`, `currency`, `created_by`, `last_modified_by`, `created_at`, `updated_at`)
VALUES
(1,'Panacea',NULL,'1','KR',1,'active','1','Lek',1,1,'2021-02-12 16:48:12','2021-02-12 16:48:12'),
(2,'INFOBIP',NULL,'1','PA',1,'active','1','Lek',9,9,'2021-02-14 05:48:51','2021-02-14 05:48:51'),
(4,'Southern Region Water Board',NULL,'1','LS',1,'active','1','Afghani',1,1,'2021-02-12 18:52:03','2021-02-12 18:52:03'),
(5,'World Star Betting',NULL,'2','CK',3,'active','1','Afghani',1,1,'2021-02-14 05:47:20','2021-02-14 05:47:20'),
(6,'TEWAYS',NULL,'1','NP',6,'active','1','Afghani',1,1,'2021-02-04 10:23:11','2021-01-28 17:55:59'),
(7,'Edan Pena',NULL,'2','GB',8,'active','1','Danish Krone',1,1,'2021-02-08 17:49:52','2021-02-08 17:49:52'),
(8,'Jasmine Rasmussen',NULL,'2','PS',8,'active','2','Azerbaijan Manat',1,1,'2021-02-14 05:44:37','2021-02-14 05:44:37'),
(9,'Tad Cook',NULL,'1','AF',5,'active','1','Colombian Peso',1,1,'2021-03-09 15:01:42','2021-03-09 15:01:42'),
(10,'Mary Faulkner',NULL,'3','CA',4,'active','2','Bitcoin',1,1,'2021-03-09 15:12:20','2021-03-09 15:12:20'),
(11,'Martena Langley',NULL,'3','LC',9,'inactive','2','Australian Dollar',1,1,'2021-03-16 17:31:13','2021-03-16 17:31:13'),
(12,'Kenneth Flynn','bojanegog@mailinator.com','2','FI',9,'active','1','South Korean won (inv.)',1,1,'2021-03-16 18:26:06','2021-03-16 18:26:06'),
(13,'Zahir Marquez','horilyji@mailinator.com','3','VG',9,'active','1','New Israeli Sheqel',1,1,'2021-03-16 18:26:34','2021-03-16 18:26:34'),
(14,'Kato Stout','xegehuta@mailinator.com','3','JP',9,'active','2','Czech koruna (pl. koruny)',1,1,'2021-03-16 18:28:15','2021-03-16 18:28:15'),
(15,'Kai Pratt','cofon@mailinator.com','3','TT',9,'inactive','1','Tenge',1,1,'2021-03-16 18:29:09','2021-03-16 18:29:09'),
(16,'Hamish Watson','juwademu@mailinator.com','3','GD',1,'active','1','Colombian Peso',1,1,'2021-03-16 18:29:47','2021-03-16 18:29:47'),
(17,'Armando Gonzalez','dysenyfaje@mailinator.com','3','DM',9,'active','1','Jamaican Dollar',1,1,'2021-04-19 18:43:13','2021-04-19 18:43:13'),
(18,'Colin Berry','lexaqa@mailinator.com','3','SB',3,'inactive','2','Australian Dollar',1,1,'2021-03-16 18:33:22','2021-03-16 18:33:22'),
(19,'Fredericka Le','zokemiw@mailinator.com','3','ME',8,'active','1','Riel',1,1,'2021-03-16 18:49:11','2021-03-16 18:49:11'),
(20,'Joseph Beard','cetokop@mailinator.com','3','TN',5,'active','1','Quetzal',1,1,'2021-03-16 18:49:31','2021-03-16 18:49:31'),
(21,'Mariko Eaton','vymeqajehy@mailinator.com','3','GH',8,'active','1','Mexican Peso',1,1,'2021-03-16 18:50:44','2021-03-16 18:50:44'),
(22,'Wendy Jennings','sydomoc@mailinator.com','3','SZ',8,'active','1','Hong Kong Dollar',1,1,'2021-03-16 18:51:03','2021-03-16 18:51:03'),
(23,'Trevor Pittman','foturun@mailinator.com','3','BW',6,'inactive','1','Guyana Dollar',1,1,'2021-04-19 12:22:50','2021-04-19 12:22:50'),
(24,'Mohammad Donovan','webyc@mailinator.com','3','YT',2,'active','2','Bulgarian Lev',1,1,'2021-04-19 12:31:22','2021-04-19 12:31:22'),
(25,'Cooper Meadows','cewoqeteh@mailinator.com','3','LU',1,'active','1','Colombian Peso',1,1,'2021-05-12 09:49:50','2021-05-12 09:49:50'),
(26,'Maia Erickson','cyny@mailinator.com','3','SL',9,'inactive','1','Namibia Dollar',1,1,'2021-05-12 09:55:54','2021-05-12 09:55:54');
/*!40000 ALTER TABLE `clients` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table countries
# ------------------------------------------------------------
DROP TABLE IF EXISTS `countries`;
CREATE TABLE `countries` (
`num_code` int(3) NOT NULL DEFAULT '0',
`alpha_2_code` varchar(2) DEFAULT NULL,
`alpha_3_code` varchar(3) DEFAULT NULL,
`en_short_name` varchar(52) DEFAULT NULL,
`nationality` varchar(39) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
LOCK TABLES `countries` WRITE;
/*!40000 ALTER TABLE `countries` DISABLE KEYS */;
INSERT INTO `countries` (`num_code`, `alpha_2_code`, `alpha_3_code`, `en_short_name`, `nationality`)
VALUES
(4,'AF','AFG','Afghanistan','Afghan'),
(8,'AL','ALB','Albania','Albanian'),
(10,'AQ','ATA','Antarctica','Antarctic'),
(12,'DZ','DZA','Algeria','Algerian'),
(16,'AS','ASM','American Samoa','American Samoan'),
(20,'AD','AND','Andorra','Andorran'),
(24,'AO','AGO','Angola','Angolan'),
(28,'AG','ATG','Antigua and Barbuda','Antiguan or Barbudan'),
(31,'AZ','AZE','Azerbaijan','Azerbaijani, Azeri'),
(32,'AR','ARG','Argentina','Argentine'),
(36,'AU','AUS','Australia','Australian'),
(40,'AT','AUT','Austria','Austrian'),
(44,'BS','BHS','Bahamas','Bahamian'),
(48,'BH','BHR','Bahrain','Bahraini'),
(50,'BD','BGD','Bangladesh','Bangladeshi'),
(51,'AM','ARM','Armenia','Armenian'),
(52,'BB','BRB','Barbados','Barbadian'),
(56,'BE','BEL','Belgium','Belgian'),
(60,'BM','BMU','Bermuda','Bermudian, Bermudan'),
(64,'BT','BTN','Bhutan','Bhutanese'),
(68,'BO','BOL','Bolivia (Plurinational State of)','Bolivian'),
(70,'BA','BIH','Bosnia and Herzegovina','Bosnian or Herzegovinian'),
(72,'BW','BWA','Botswana','Motswana, Botswanan'),
(74,'BV','BVT','Bouvet Island','Bouvet Island'),
(76,'BR','BRA','Brazil','Brazilian'),
(84,'BZ','BLZ','Belize','Belizean'),
(86,'IO','IOT','British Indian Ocean Territory','BIOT'),
(90,'SB','SLB','Solomon Islands','Solomon Island'),
(92,'VG','VGB','Virgin Islands (British)','British Virgin Island'),
(96,'BN','BRN','Brunei Darussalam','Bruneian'),
(100,'BG','BGR','Bulgaria','Bulgarian'),
(104,'MM','MMR','Myanmar','Burmese'),
(108,'BI','BDI','Burundi','Burundian'),
(112,'BY','BLR','Belarus','Belarusian'),
(116,'KH','KHM','Cambodia','Cambodian'),
(120,'CM','CMR','Cameroon','Cameroonian'),
(124,'CA','CAN','Canada','Canadian'),
(132,'CV','CPV','Cabo Verde','Cabo Verdean'),
(136,'KY','CYM','Cayman Islands','Caymanian'),
(140,'CF','CAF','Central African Republic','Central African'),
(144,'LK','LKA','Sri Lanka','Sri Lankan'),
(148,'TD','TCD','Chad','Chadian'),
(152,'CL','CHL','Chile','Chilean'),
(156,'CN','CHN','China','Chinese'),
(158,'TW','TWN','Taiwan, Province of China','Chinese, Taiwanese'),
(162,'CX','CXR','Christmas Island','Christmas Island'),
(166,'CC','CCK','Cocos (Keeling) Islands','Cocos Island'),
(170,'CO','COL','Colombia','Colombian'),
(174,'KM','COM','Comoros','Comoran, Comorian'),
(175,'YT','MYT','Mayotte','Mahoran'),
(178,'CG','COG','Congo (Republic of the)','Congolese'),
(180,'CD','COD','Congo (Democratic Republic of the)','Congolese'),
(184,'CK','COK','Cook Islands','Cook Island'),
(188,'CR','CRI','Costa Rica','Costa Rican'),
(191,'HR','HRV','Croatia','Croatian'),
(192,'CU','CUB','Cuba','Cuban'),
(196,'CY','CYP','Cyprus','Cypriot'),
(203,'CZ','CZE','Czech Republic','Czech'),
(204,'BJ','BEN','Benin','Beninese, Beninois'),
(208,'DK','DNK','Denmark','Danish'),
(212,'DM','DMA','Dominica','Dominican'),
(214,'DO','DOM','Dominican Republic','Dominican'),
(218,'EC','ECU','Ecuador','Ecuadorian'),
(222,'SV','SLV','El Salvador','Salvadoran'),
(226,'GQ','GNQ','Equatorial Guinea','Equatorial Guinean, Equatoguinean'),
(231,'ET','ETH','Ethiopia','Ethiopian'),
(232,'ER','ERI','Eritrea','Eritrean'),
(233,'EE','EST','Estonia','Estonian'),
(234,'FO','FRO','Faroe Islands','Faroese'),
(238,'FK','FLK','Falkland Islands (Malvinas)','Falkland Island'),
(239,'GS','SGS','South Georgia and the South Sandwich Islands','South Georgia or South Sandwich Islands'),
(242,'FJ','FJI','Fiji','Fijian'),
(246,'FI','FIN','Finland','Finnish'),
(248,'AX','ALA','Åland Islands','Åland Island'),
(250,'FR','FRA','France','French'),
(254,'GF','GUF','French Guiana','French Guianese'),
(258,'PF','PYF','French Polynesia','French Polynesian'),
(260,'TF','ATF','French Southern Territories','French Southern Territories'),
(262,'DJ','DJI','Djibouti','Djiboutian'),
(266,'GA','GAB','Gabon','Gabonese'),
(268,'GE','GEO','Georgia','Georgian'),
(270,'GM','GMB','Gambia','Gambian'),
(275,'PS','PSE','Palestine, State of','Palestinian'),
(276,'DE','DEU','Germany','German'),
(288,'GH','GHA','Ghana','Ghanaian'),
(292,'GI','GIB','Gibraltar','Gibraltar'),
(296,'KI','KIR','Kiribati','I-Kiribati'),
(300,'GR','GRC','Greece','Greek, Hellenic'),
(304,'GL','GRL','Greenland','Greenlandic'),
(308,'GD','GRD','Grenada','Grenadian'),
(312,'GP','GLP','Guadeloupe','Guadeloupe'),
(316,'GU','GUM','Guam','Guamanian, Guambat'),
(320,'GT','GTM','Guatemala','Guatemalan'),
(324,'GN','GIN','Guinea','Guinean'),
(328,'GY','GUY','Guyana','Guyanese'),
(332,'HT','HTI','Haiti','Haitian'),
(334,'HM','HMD','Heard Island and McDonald Islands','Heard Island or McDonald Islands'),
(336,'VA','VAT','Vatican City State','Vatican'),
(340,'HN','HND','Honduras','Honduran'),
(344,'HK','HKG','Hong Kong','Hong Kong, Hong Kongese'),
(348,'HU','HUN','Hungary','Hungarian, Magyar'),
(352,'IS','ISL','Iceland','Icelandic'),
(356,'IN','IND','India','Indian'),
(360,'ID','IDN','Indonesia','Indonesian'),
(364,'IR','IRN','Iran','Iranian, Persian'),
(368,'IQ','IRQ','Iraq','Iraqi'),
(372,'IE','IRL','Ireland','Irish'),
(376,'IL','ISR','Israel','Israeli'),
(380,'IT','ITA','Italy','Italian'),
(384,'CI','CIV','Côte d\'Ivoire','Ivorian'),
(388,'JM','JAM','Jamaica','Jamaican'),
(392,'JP','JPN','Japan','Japanese'),
(398,'KZ','KAZ','Kazakhstan','Kazakhstani, Kazakh'),
(400,'JO','JOR','Jordan','Jordanian'),
(404,'KE','KEN','Kenya','Kenyan'),
(408,'KP','PRK','Korea (Democratic People\'s Republic of)','North Korean'),
(410,'KR','KOR','Korea (Republic of)','South Korean'),
(414,'KW','KWT','Kuwait','Kuwaiti'),
(417,'KG','KGZ','Kyrgyzstan','Kyrgyzstani, Kyrgyz, Kirgiz, Kirghiz'),
(418,'LA','LAO','Lao People\'s Democratic Republic','Lao, Laotian'),
(422,'LB','LBN','Lebanon','Lebanese'),
(426,'LS','LSO','Lesotho','Basotho'),
(428,'LV','LVA','Latvia','Latvian'),
(430,'LR','LBR','Liberia','Liberian'),
(434,'LY','LBY','Libya','Libyan'),
(438,'LI','LIE','Liechtenstein','Liechtenstein'),
(440,'LT','LTU','Lithuania','Lithuanian'),
(442,'LU','LUX','Luxembourg','Luxembourg, Luxembourgish'),
(446,'MO','MAC','Macao','Macanese, Chinese'),
(450,'MG','MDG','Madagascar','Malagasy'),
(454,'MW','MWI','Malawi','Malawian'),
(458,'MY','MYS','Malaysia','Malaysian'),
(462,'MV','MDV','Maldives','Maldivian'),
(466,'ML','MLI','Mali','Malian, Malinese'),
(470,'MT','MLT','Malta','Maltese'),
(474,'MQ','MTQ','Martinique','Martiniquais, Martinican'),
(478,'MR','MRT','Mauritania','Mauritanian'),
(480,'MU','MUS','Mauritius','Mauritian'),
(484,'MX','MEX','Mexico','Mexican'),
(492,'MC','MCO','Monaco','Monégasque, Monacan'),
(496,'MN','MNG','Mongolia','Mongolian'),
(498,'MD','MDA','Moldova (Republic of)','Moldovan'),
(499,'ME','MNE','Montenegro','Montenegrin'),
(500,'MS','MSR','Montserrat','Montserratian'),
(504,'MA','MAR','Morocco','Moroccan'),
(508,'MZ','MOZ','Mozambique','Mozambican'),
(512,'OM','OMN','Oman','Omani'),
(516,'NA','NAM','Namibia','Namibian'),
(520,'NR','NRU','Nauru','Nauruan'),
(524,'NP','NPL','Nepal','Nepali, Nepalese'),
(528,'NL','NLD','Netherlands','Dutch, Netherlandic'),
(531,'CW','CUW','Curaçao','Curaçaoan'),
(533,'AW','ABW','Aruba','Aruban'),
(534,'SX','SXM','Sint Maarten (Dutch part)','Sint Maarten'),
(535,'BQ','BES','Bonaire, Sint Eustatius and Saba','Bonaire'),
(540,'NC','NCL','New Caledonia','New Caledonian'),
(548,'VU','VUT','Vanuatu','Ni-Vanuatu, Vanuatuan'),
(554,'NZ','NZL','New Zealand','New Zealand, NZ'),
(558,'NI','NIC','Nicaragua','Nicaraguan'),
(562,'NE','NER','Niger','Nigerien'),
(566,'NG','NGA','Nigeria','Nigerian'),
(570,'NU','NIU','Niue','Niuean'),
(574,'NF','NFK','Norfolk Island','Norfolk Island'),
(578,'NO','NOR','Norway','Norwegian'),
(580,'MP','MNP','Northern Mariana Islands','Northern Marianan'),
(581,'UM','UMI','United States Minor Outlying Islands','American'),
(583,'FM','FSM','Micronesia (Federated States of)','Micronesian'),
(584,'MH','MHL','Marshall Islands','Marshallese'),
(585,'PW','PLW','Palau','Palauan'),
(586,'PK','PAK','Pakistan','Pakistani'),
(591,'PA','PAN','Panama','Panamanian'),
(598,'PG','PNG','Papua New Guinea','Papua New Guinean, Papuan'),
(600,'PY','PRY','Paraguay','Paraguayan'),
(604,'PE','PER','Peru','Peruvian'),
(608,'PH','PHL','Philippines','Philippine, Filipino'),
(612,'PN','PCN','Pitcairn','Pitcairn Island'),
(616,'PL','POL','Poland','Polish'),
(620,'PT','PRT','Portugal','Portuguese'),
(624,'GW','GNB','Guinea-Bissau','Bissau-Guinean'),
(626,'TL','TLS','Timor-Leste','Timorese'),
(630,'PR','PRI','Puerto Rico','Puerto Rican'),
(634,'QA','QAT','Qatar','Qatari'),
(638,'RE','REU','Réunion','Réunionese, Réunionnais'),
(642,'RO','ROU','Romania','Romanian'),
(643,'RU','RUS','Russian Federation','Russian'),
(646,'RW','RWA','Rwanda','Rwandan'),
(652,'BL','BLM','Saint Barthélemy','Barthélemois'),
(654,'SH','SHN','Saint Helena, Ascension and Tristan da Cunha','Saint Helenian'),
(659,'KN','KNA','Saint Kitts and Nevis','Kittitian or Nevisian'),
(660,'AI','AIA','Anguilla','Anguillan'),
(662,'LC','LCA','Saint Lucia','Saint Lucian'),
(663,'MF','MAF','Saint Martin (French part)','Saint-Martinoise'),
(666,'PM','SPM','Saint Pierre and Miquelon','Saint-Pierrais or Miquelonnais'),
(670,'VC','VCT','Saint Vincent and the Grenadines','Saint Vincentian, Vincentian'),
(674,'SM','SMR','San Marino','Sammarinese'),
(678,'ST','STP','Sao Tome and Principe','São Toméan'),
(682,'SA','SAU','Saudi Arabia','Saudi, Saudi Arabian'),
(686,'SN','SEN','Senegal','Senegalese'),
(688,'RS','SRB','Serbia','Serbian'),
(690,'SC','SYC','Seychelles','Seychellois'),
(694,'SL','SLE','Sierra Leone','Sierra Leonean'),
(702,'SG','SGP','Singapore','Singaporean'),
(703,'SK','SVK','Slovakia','Slovak'),
(704,'VN','VNM','Vietnam','Vietnamese'),
(705,'SI','SVN','Slovenia','Slovenian, Slovene'),
(706,'SO','SOM','Somalia','Somali, Somalian'),
(710,'ZA','ZAF','South Africa','South African'),
(716,'ZW','ZWE','Zimbabwe','Zimbabwean'),
(724,'ES','ESP','Spain','Spanish'),
(728,'SS','SSD','South Sudan','South Sudanese'),
(729,'SD','SDN','Sudan','Sudanese'),
(732,'EH','ESH','Western Sahara','Sahrawi, Sahrawian, Sahraouian'),
(740,'SR','SUR','Suriname','Surinamese'),
(744,'SJ','SJM','Svalbard and Jan Mayen','Svalbard'),
(748,'SZ','SWZ','Swaziland','Swazi'),
(752,'SE','SWE','Sweden','Swedish'),
(756,'CH','CHE','Switzerland','Swiss'),
(760,'SY','SYR','Syrian Arab Republic','Syrian'),
(762,'TJ','TJK','Tajikistan','Tajikistani'),
(764,'TH','THA','Thailand','Thai'),
(768,'TG','TGO','Togo','Togolese'),
(772,'TK','TKL','Tokelau','Tokelauan'),
(776,'TO','TON','Tonga','Tongan'),
(780,'TT','TTO','Trinidad and Tobago','Trinidadian or Tobagonian'),
(784,'AE','ARE','United Arab Emirates','Emirati, Emirian, Emiri'),
(788,'TN','TUN','Tunisia','Tunisian'),
(792,'TR','TUR','Turkey','Turkish'),
(795,'TM','TKM','Turkmenistan','Turkmen'),
(796,'TC','TCA','Turks and Caicos Islands','Turks and Caicos Island'),
(798,'TV','TUV','Tuvalu','Tuvaluan'),
(800,'UG','UGA','Uganda','Ugandan'),
(804,'UA','UKR','Ukraine','Ukrainian'),
(807,'MK','MKD','Macedonia (the former Yugoslav Republic of)','Macedonian'),
(818,'EG','EGY','Egypt','Egyptian'),
(826,'GB','GBR','United Kingdom of Great Britain and Northern Ireland','British, UK'),
(831,'GG','GGY','Guernsey','Channel Island'),
(832,'JE','JEY','Jersey','Channel Island'),
(833,'IM','IMN','Isle of Man','Manx'),
(834,'TZ','TZA','Tanzania, United Republic of','Tanzanian'),
(840,'US','USA','United States of America','American'),
(850,'VI','VIR','Virgin Islands (U.S.)','U.S. Virgin Island'),
(854,'BF','BFA','Burkina Faso','Burkinabé'),
(858,'UY','URY','Uruguay','Uruguayan'),
(860,'UZ','UZB','Uzbekistan','Uzbekistani, Uzbek'),
(862,'VE','VEN','Venezuela (Bolivarian Republic of)','Venezuelan'),
(876,'WF','WLF','Wallis and Futuna','Wallis and Futuna, Wallisian or Futunan'),
(882,'WS','WSM','Samoa','Samoan'),
(887,'YE','YEM','Yemen','Yemeni'),
(894,'ZM','ZMB','Zambia','Zambian');
/*!40000 ALTER TABLE `countries` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table currencies
# ------------------------------------------------------------
DROP TABLE IF EXISTS `currencies`;
CREATE TABLE `currencies` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`symbol` varchar(255) DEFAULT NULL,
`currency_code` varchar(255) DEFAULT NULL,
`uuid` varchar(255) DEFAULT NULL,
`content_status` varchar(255) DEFAULT NULL,
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOCK TABLES `currencies` WRITE;
/*!40000 ALTER TABLE `currencies` DISABLE KEYS */;
INSERT INTO `currencies` (`id`, `name`, `symbol`, `currency_code`, `uuid`, `content_status`, `created_at`, `updated_at`)
VALUES
(107,'Afghani','&#1547;','AFN',NULL,NULL,NULL,NULL),
(108,'Lek','&#76;&#101;&#107;','ALL',NULL,NULL,NULL,NULL),
(109,'Netherlands Antillean guilder','&#402;','ANG',NULL,NULL,NULL,NULL),
(110,'Argentine Peso','&#36;','ARS',NULL,NULL,NULL,NULL),
(111,'Australian Dollar','&#36;','AUD',NULL,NULL,NULL,NULL),
(112,'Aruban Florin','&#402;','AWG',NULL,NULL,NULL,NULL),
(113,'Azerbaijan Manat','&#8380;','AZN',NULL,NULL,NULL,NULL),
(114,'Convertible Mark','&#75;&#77;','BAM',NULL,NULL,NULL,NULL),
(115,'Barbados Dollar','&#36;','BBD',NULL,NULL,NULL,NULL),
(116,'Bulgarian Lev','&#1083;&#1074;','BGN',NULL,NULL,NULL,NULL),
(117,'Bermudian Dollar','&#36;','BMD',NULL,NULL,NULL,NULL),
(118,'Brunei Dollar','&#36;','BND',NULL,NULL,NULL,NULL),
(119,'boliviano','&#36;&#98;','BOB',NULL,NULL,NULL,NULL),
(120,'Brazilian Real','&#82;&#36;','BRL',NULL,NULL,NULL,NULL),
(121,'Bahamian Dollar','&#36;','BSD',NULL,NULL,NULL,NULL),
(122,'Bitcoin','&#579;','BTC',NULL,NULL,NULL,NULL),
(123,'Pula','&#80;','BWP',NULL,NULL,NULL,NULL),
(124,'Belarusian Ruble','&#66;&#114;','BYN',NULL,NULL,NULL,NULL),
(125,'Belize Dollar','&#66;&#90;&#36;','BZD',NULL,NULL,NULL,NULL),
(126,'Canadian Dollar','&#36;','CAD',NULL,NULL,NULL,NULL),
(127,'Swiss Franc','&#67;&#72;&#70;','CHF',NULL,NULL,NULL,NULL),
(128,'Chilean Peso','&#36;','CLP',NULL,NULL,NULL,NULL),
(129,'Yuan Renminbi','&#165;','CNY',NULL,NULL,NULL,NULL),
(130,'Colombian Peso','&#36;','COP',NULL,NULL,NULL,NULL),
(131,'Costa Rican Colon','&#8353;','CRC',NULL,NULL,NULL,NULL),
(132,'Cuban Peso','&#8369;','CUP',NULL,NULL,NULL,NULL),
(133,'Czech koruna (pl. koruny)','&#75;&#269;','CZK',NULL,NULL,NULL,NULL),
(134,'Danish Krone','&#107;&#114;','DKK',NULL,NULL,NULL,NULL),
(135,'Dominican peso','&#82;&#68;&#36;','DOP',NULL,NULL,NULL,NULL),
(136,'Egyptian Pound','&#163;','EGP',NULL,NULL,NULL,NULL),
(137,'Euro','&#8364;','EUR',NULL,NULL,NULL,NULL),
(138,'Fiji Dollar','&#36;','FJD',NULL,NULL,NULL,NULL),
(139,'Falkland Islands pound','&#163;','FKP',NULL,NULL,NULL,NULL),
(140,'pound sterling','&#163;','GBP',NULL,NULL,NULL,NULL),
(141,'Ghana Cedi','&#162;','GHS',NULL,NULL,NULL,NULL),
(142,'Gibraltar Pound','&#163;','GIP',NULL,NULL,NULL,NULL),
(143,'Quetzal','&#81;','GTQ',NULL,NULL,NULL,NULL),
(144,'Guyana Dollar','&#36;','GYD',NULL,NULL,NULL,NULL),
(145,'Hong Kong Dollar','&#36;','HKD',NULL,NULL,NULL,NULL),
(146,'Lempira','&#76;','HNL',NULL,NULL,NULL,NULL),
(147,'Kuna','&#107;&#110;','HRK',NULL,NULL,NULL,NULL),
(148,'Forint','&#70;&#116;','HUF',NULL,NULL,NULL,NULL),
(149,'Rupiah','&#82;&#112;','IDR',NULL,NULL,NULL,NULL),
(150,'New Israeli Sheqel','&#8362;','ILS',NULL,NULL,NULL,NULL),
(151,'Indian Rupee','&#8377;','INR',NULL,NULL,NULL,NULL),
(152,'Iranian rial','&#65020;','IRR',NULL,NULL,NULL,NULL),
(153,'Iceland Krona','&#107;&#114;','ISK',NULL,NULL,NULL,NULL),
(154,'Jamaican Dollar','&#74;&#36;','JMD',NULL,NULL,NULL,NULL),
(155,'Yen','&#165;','JPY',NULL,NULL,NULL,NULL),
(156,'Som','&#1083;&#1074;','KGS',NULL,NULL,NULL,NULL),
(157,'Riel','&#6107;','KHR',NULL,NULL,NULL,NULL),
(158,'North Korean won (inv.)','&#8361;','KPW',NULL,NULL,NULL,NULL),
(159,'South Korean won (inv.)','&#8361;','KRW',NULL,NULL,NULL,NULL),
(160,'Cayman Islands dollar','&#36;','KYD',NULL,NULL,NULL,NULL),
(161,'Tenge','&#1083;&#1074;','KZT',NULL,NULL,NULL,NULL),
(162,'kip (inv.)','&#8365;','LAK',NULL,NULL,NULL,NULL),
(163,'Lebanese Pound','&#163;','LBP',NULL,NULL,NULL,NULL),
(164,'Sri Lanka Rupee','&#8360;','LKR',NULL,NULL,NULL,NULL),
(165,'Liberian Dollar','&#36;','LRD',NULL,NULL,NULL,NULL),
(166,'denar (inv.)','&#1076;&#1077;&#1085;','MKD',NULL,NULL,NULL,NULL),
(167,'Tugrik','&#8366;','MNT',NULL,NULL,NULL,NULL),
(168,'Mauritius Rupee','&#8360;','MUR',NULL,NULL,NULL,NULL),
(169,'Mexican Peso','&#36;','MXN',NULL,NULL,NULL,NULL),
(170,'Malaysian Ringgit','&#82;&#77;','MYR',NULL,NULL,NULL,NULL),
(171,'Mozambique Metical','&#77;&#84;','MZN',NULL,NULL,NULL,NULL),
(172,'Namibia Dollar','&#36;','NAD',NULL,NULL,NULL,NULL),
(173,'Naira','&#8358;','NGN',NULL,NULL,NULL,NULL),
(174,'Cordoba Oro','&#67;&#36;','NIO',NULL,NULL,NULL,NULL),
(204,'US Dollar','&#36;','USD',NULL,NULL,NULL,NULL),
(206,'Uzbekistan Sum','&#1083;&#1074;','UZS',NULL,NULL,NULL,NULL),
(207,'dong','&#8363;','VND',NULL,NULL,NULL,NULL),
(208,'East Caribbean Dollar','&#36;','XCD',NULL,NULL,NULL,NULL),
(209,'Yemeni Rial','&#65020;','YER',NULL,NULL,NULL,NULL),
(210,'Rand','&#82;','ZAR',NULL,NULL,NULL,NULL),
(211,'Kenya Shillings','shs','KES','e3c75da5-b011-4da0-a57a-0aae39f92f36','DRAFT',NULL,NULL),
(212,'Malawian kwacha','mwk','MWK',NULL,NULL,NULL,NULL);
/*!40000 ALTER TABLE `currencies` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table designations
# ------------------------------------------------------------
DROP TABLE IF EXISTS `designations`;
CREATE TABLE `designations` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
`description` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`default_privileges` text COLLATE utf8mb4_unicode_ci,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
LOCK TABLES `designations` WRITE;
/*!40000 ALTER TABLE `designations` DISABLE KEYS */;
INSERT INTO `designations` (`id`, `name`, `description`, `default_privileges`, `created_at`, `updated_at`)
VALUES
(3,'administrator',NULL,NULL,NULL,NULL),
(4,'standard',NULL,NULL,NULL,NULL),
(5,'technical',NULL,NULL,NULL,NULL);
/*!40000 ALTER TABLE `designations` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table direct_connections
# ------------------------------------------------------------
DROP TABLE IF EXISTS `direct_connections`;
CREATE TABLE `direct_connections` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`server_id` int(11) NOT NULL,
`direct_partner` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`connection_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'VPN or Internet',
`main_ip_address` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT '',
`port` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`vpn_peer_ip` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT '',
`domain_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '',
`connection_document` text COLLATE utf8mb4_unicode_ci,
`last_modified_by` int(11) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
LOCK TABLES `direct_connections` WRITE;
/*!40000 ALTER TABLE `direct_connections` DISABLE KEYS */;
INSERT INTO `direct_connections` (`id`, `server_id`, `direct_partner`, `connection_type`, `main_ip_address`, `port`, `vpn_peer_ip`, `domain_name`, `connection_document`, `last_modified_by`, `created_at`, `updated_at`)
VALUES
(1,2,'TNM Malawi','VPN','41.78.250.88','5016','','','',NULL,NULL,NULL),
(2,2,'AIrtelTigo Ghana','VPN','172.17.9.38','3010','','','',NULL,NULL,NULL),
(3,1,'Seedco','vpn','172.26.162.100','5080','41.78.57.35',NULL,NULL,1,'2021-04-17 17:50:18','2021-04-17 18:32:48'),
(4,1,'Airtel USSD','vpn','172.26.163.136','5080','41.78.57.35',NULL,NULL,1,'2021-04-17 18:29:34','2021-04-17 18:53:44'),
(5,1,'Seedco','vpn','172.26.162.100','5080','216.55.137.19',NULL,NULL,1,'2021-04-17 18:30:42','2021-04-17 18:30:42'),
(6,8,'Airtel Malawi','fqdn',NULL,'80',NULL,'messaging.airtel.mw','connection_document_1618686913.docx',1,'2021-04-17 18:58:59','2021-04-17 19:15:13'),
(7,7,'Airtel Money','vpn','172.26.163.136','4452','41.78.57.35',NULL,'connection_document_1618686983.docx',1,'2021-04-17 19:11:28','2021-04-17 19:16:23');
/*!40000 ALTER TABLE `direct_connections` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table meeting_reports
# ------------------------------------------------------------
DROP TABLE IF EXISTS `meeting_reports`;
CREATE TABLE `meeting_reports` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`client` varchar(200) NOT NULL DEFAULT '',
`service` varchar(200) NOT NULL DEFAULT '',
`auth_user_id` int(11) NOT NULL DEFAULT '1',
`contact_person` varchar(200) NOT NULL DEFAULT '',
`email` varchar(200) NOT NULL DEFAULT '',
`discussion` varchar(200) NOT NULL DEFAULT '',
`payment_type` varchar(200) NOT NULL DEFAULT '',
`current_balance` decimal(50,2) NOT NULL,
`payment_status` varchar(200) NOT NULL DEFAULT '',
`next_follow_up_date` date DEFAULT NULL,
`last_follow_up_date` date DEFAULT NULL,
`sam_comment` text,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOCK TABLES `meeting_reports` WRITE;
/*!40000 ALTER TABLE `meeting_reports` DISABLE KEYS */;
INSERT INTO `meeting_reports` (`id`, `client`, `service`, `auth_user_id`, `contact_person`, `email`, `discussion`, `payment_type`, `current_balance`, `payment_status`, `next_follow_up_date`, `last_follow_up_date`, `sam_comment`, `created_at`, `updated_at`)
VALUES
(2,'1','regular',1,'Quo id earum dolor','hatuzyde@mailinator.net','Dolor doloremque ani','1',0.00,'paid',NULL,NULL,'A positive number - The length to be returned from the start parameter, A positive number - The length to be returned from the start parameter, A positive number - The length to be returned from the s','2021-01-28 18:45:26','2021-01-22 06:23:37'),
(3,'1','regular',1,'Voluptas rerum rem u','huki@mailinator.com','Animi inventore et','2',0.00,'unpaid',NULL,NULL,'Ad vitae voluptates','2021-01-25 10:53:42','2021-01-25 10:53:42'),
(4,'1','regular',1,'Iste rerum blanditii','rujaletir@mailinator.com','Dummy text refers to the bits of content that are used to fill a website mock-up. This text helps web designers better envision how the website will look as a finished product. It is important to unde','2',9000.00,'unpaid',NULL,NULL,NULL,'2021-02-03 11:48:52','2021-02-03 11:48:52'),
(5,'5','regular',1,'Laborum rerum laboru','bofa@mailinator.com','Esse molestias aut a Esse molestias aut a \r\nEsse molestias aut a \r\nEsse molestias aut a \r\nEsse molestias aut a Esse molestias aut a Esse molestias aut a Esse molestias aut a \r\nEsse molestias aut a Es','1',0.00,'paid',NULL,NULL,NULL,'2021-02-04 10:18:38','2021-02-04 10:18:38'),
(6,'6','regular',1,'Ut nihil nostrum id','hacyticiv@mailinator.com','Enim modi rerum quas\r\n\r\ndashboard\r\n\r\nEnim modi rerum quas\r\n\r\ndashboard\r\nEnim modi rerum quas\r\n\r\ndashboard','2',0.00,'unpaid',NULL,NULL,NULL,'2021-02-04 10:19:59','2021-02-04 10:19:59'),
(7,'5','regular',1,'Consequatur exercita','lykomyl@mailinator.com','MySQL provides several variations on INSERT and UPDATE to allow inserting and updating exactly the desired data. These features provide a lot of power and flexibility, making MySQL significantly more ','2',0.00,'unpaid',NULL,NULL,NULL,'2021-02-04 10:20:45','2021-02-04 10:20:45'),
(8,'1','regular',5,'Richard Oponglo','dumug@mailinator.com','1. FOLLOW YOUR CHILD\'S PROGRESS\r\n \r\nFrom report cards, fee structures, term dates and all the regular updates from your school fast and timely. Chat with teachers and share your childs progress with ','2',49000.00,'paid',NULL,NULL,NULL,'2021-02-08 05:33:06','2021-02-08 05:33:06'),
(9,'6','regular',5,'Ben Sorkies','sukoz@mailinator.com','There isn\'t a minute that passes by that we aren\'t using our phones, including searching for places to buy food. So once you\'ve created your restaurant landing page, you\'ll have to ensure that it\'s mo','1',2300.00,'paid',NULL,NULL,NULL,'2021-02-08 06:04:47','2021-02-08 06:04:47'),
(10,'2','regular',1,'Frank Osem Panyin','fiqumisimi@mailinator.com','Doloremque aut sunt','1',6677.00,'paid','2021-02-08','2021-02-08',NULL,'2021-02-08 14:30:15','2021-02-08 14:30:15'),
(11,'1','BULK SMS',1,'Quod minim','gebif@mailinator.com','Quo sapiente nulla o','2',6788.00,'unpaid','2021-02-09','2021-02-09',NULL,'2021-02-09 10:01:43','2021-02-09 10:01:43');
/*!40000 ALTER TABLE `meeting_reports` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table migrations
# ------------------------------------------------------------
DROP TABLE IF EXISTS `migrations`;
CREATE TABLE `migrations` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`migration` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`batch` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
LOCK TABLES `migrations` WRITE;
/*!40000 ALTER TABLE `migrations` DISABLE KEYS */;
INSERT INTO `migrations` (`id`, `migration`, `batch`)
VALUES
(4,'2021_04_13_111024_create_models_server_crendentials_table',1),
(5,'2021_04_13_111110_create_models_direct_connections_table',1),
(6,'2014_10_12_000000_create_users_table',2),
(7,'2014_10_12_100000_create_password_resets_table',2),
(8,'2021_04_13_104850_create_click_servers_table',2),
(9,'2021_04_13_111024_create_server_crendentials_table',3),
(10,'2021_04_13_111110_create_direct_connections_table',3);
/*!40000 ALTER TABLE `migrations` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table network_operators
# ------------------------------------------------------------
DROP TABLE IF EXISTS `network_operators`;
CREATE TABLE `network_operators` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL DEFAULT '',
`country` varchar(200) NOT NULL DEFAULT '',
`account_manager_id` int(11) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOCK TABLES `network_operators` WRITE;
/*!40000 ALTER TABLE `network_operators` DISABLE KEYS */;
INSERT INTO `network_operators` (`id`, `name`, `country`, `account_manager_id`, `created_at`, `updated_at`)
VALUES
(1,'Airtel','GH',1,'2021-01-21 01:29:56','2021-01-20 05:57:39'),
(4,'Kennedy Solis','GH',1,'2021-01-21 01:32:16','2021-01-20 15:41:20'),
(5,'Keefe Skinner','CN',1,'2021-02-08 17:13:44','2021-02-08 17:13:44');
/*!40000 ALTER TABLE `network_operators` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table password_resets
# ------------------------------------------------------------
DROP TABLE IF EXISTS `password_resets`;
CREATE TABLE `password_resets` (
`email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`token` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
KEY `password_resets_email_index` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# Dump of table payment_type
# ------------------------------------------------------------
DROP TABLE IF EXISTS `payment_type`;
CREATE TABLE `payment_type` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL DEFAULT '',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOCK TABLES `payment_type` WRITE;
/*!40000 ALTER TABLE `payment_type` DISABLE KEYS */;
INSERT INTO `payment_type` (`id`, `name`, `created_at`, `updated_at`)
VALUES
(1,'Prepaid','2021-01-25 16:30:15',NULL),
(2,'Postpaid','2021-01-25 16:30:20',NULL);
/*!40000 ALTER TABLE `payment_type` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table privileges
# ------------------------------------------------------------
DROP TABLE IF EXISTS `privileges`;
CREATE TABLE `privileges` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL DEFAULT '',
`description` varchar(200) NOT NULL DEFAULT '',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
# Dump of table sam_comments
# ------------------------------------------------------------
DROP TABLE IF EXISTS `sam_comments`;
CREATE TABLE `sam_comments` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`report_id` int(11) NOT NULL,
`created_by_id` int(11) NOT NULL,
`message` text,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOCK TABLES `sam_comments` WRITE;
/*!40000 ALTER TABLE `sam_comments` DISABLE KEYS */;
INSERT INTO `sam_comments` (`id`, `report_id`, `created_by_id`, `message`, `created_at`, `updated_at`)
VALUES
(1,3,1,'here at the wall.','2021-02-03 00:00:00','2021-02-03 00:00:00'),
(2,3,1,'here at the wall again ','2021-02-03 00:00:00','2021-02-03 00:00:00'),
(3,4,1,'Now you know what dummy text is, lets learn about its usefulness. Some people say that they dont need to use a dummy text generator to deliver a web design project to the customer. ','2021-02-03 00:00:00','2021-02-03 00:00:00'),
(4,4,1,'Dummy text shouldnt make any logical sense, to keep people from focusing on it instead of the visual impact it has. Using filler text is all about facilitating the visual impression of a final piece of web design.','2021-02-03 00:00:00','2021-02-03 00:00:00'),
(5,4,1,'Est facere aut volu','2021-02-03 20:33:57','2021-02-03 20:33:57'),
(6,4,1,'Eius harum culpa und','2021-02-03 20:35:49','2021-02-03 20:35:49'),
(7,4,1,'Lipsum is probably the most popular dummy text generator out there. When analyzing a website template or theme, you probably saw the Latin filler text that gave structure to the page. This was almost certainly generated with Lipsum or a similar tool. It is a simple dummy text generator where you can specify how many words of filler text you need. You can download Lipsum as an add-on for Firefox, which is quite convenient for web designers.','2021-02-03 21:03:54','2021-02-03 21:03:54'),
(8,7,1,'Suppose I wish to insert the data from t2 into t1. This data would violate the primary key (a row exists where column a is 1) so the insert will fail: ERROR 1062 (23000): Duplicate entry \'1\' for key 1. Recall that in MySQL, a primary key is simply a unique index named PRIMARY. Any data that violates any unique index will cause the same problem.','2021-02-04 11:05:00','2021-02-04 11:05:00'),
(9,3,1,'Suppose I wish to insert the data from t2 into t1. This data would violate the primary key (a row exists where column a is 1) so the insert will fail: ERROR 1062 (23000): Duplicate entry','2021-02-04 11:05:43','2021-02-04 11:05:43');
/*!40000 ALTER TABLE `sam_comments` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table server_credentials
# ------------------------------------------------------------
DROP TABLE IF EXISTS `server_credentials`;
CREATE TABLE `server_credentials` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`server_id` int(11) NOT NULL,
`type` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`username` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`password` text COLLATE utf8mb4_unicode_ci NOT NULL,
`remarks` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '',
`last_modified_by` int(11) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
LOCK TABLES `server_credentials` WRITE;
/*!40000 ALTER TABLE `server_credentials` DISABLE KEYS */;
INSERT INTO `server_credentials` (`id`, `server_id`, `type`, `username`, `password`, `remarks`, `last_modified_by`, `created_at`, `updated_at`)
VALUES
(1,1,NULL,'root','eyJpdiI6IlpsaG9ranN5Q2NxMVFuTlZvT1c2cEE9PSIsInZhbHVlIjoiNEp5Mzdqa0xoWFwvNUF6Z0lJRVQ4M1RZQmpEZzZiRjhRajZBRnZ6czU0RGs9IiwibWFjIjoiM2M0Njg2YTA1MDgzM2E0ODZhYTM4MmQzNTY1YjVhYjI1Yzk5YTFlMWJjNTE1OGRhNWZmZGUxMjM3OGQxZDg4YyJ9','',1,'2021-04-19 19:20:00','2021-04-19 19:29:27'),
(2,2,NULL,'root','eyJpdiI6IktjaHNzUGdseHVIZnpRbFpnTDJRQkE9PSIsInZhbHVlIjoiWURvY0dOUjg0WWM0ZUsyXC9GXC81RitRPT0iLCJtYWMiOiI2NDA4MzRlNjU5ODE1YzRiMzQ1NTFlMzUwMGFlOWUxOTU2YTY5M2Y4OTIwNzEwOGU3ZWU0YzA5MzAzYzdhOGE3In0=','',1,'2021-04-19 19:23:11','2021-04-19 19:23:11');
/*!40000 ALTER TABLE `server_credentials` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table services
# ------------------------------------------------------------
DROP TABLE IF EXISTS `services`;
CREATE TABLE `services` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL DEFAULT '',
`type` varchar(200) NOT NULL DEFAULT '',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOCK TABLES `services` WRITE;
/*!40000 ALTER TABLE `services` DISABLE KEYS */;
INSERT INTO `services` (`id`, `name`, `type`, `created_at`, `updated_at`)
VALUES
(1,'A2P','regular','2021-02-03 12:53:10','2021-01-20 07:40:59'),
(2,'BULK SMS','regular','2021-02-03 13:17:46',NULL),
(3,'USSD','','2021-03-09 14:58:12',NULL),
(4,'SMS App','','2021-03-09 14:58:18',NULL);
/*!40000 ALTER TABLE `services` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table users
# ------------------------------------------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `users_email_unique` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# Dump of table ussd_client_payments
# ------------------------------------------------------------
DROP TABLE IF EXISTS `ussd_client_payments`;
CREATE TABLE `ussd_client_payments` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`client_id` int(11) DEFAULT NULL,
`payment_type` varchar(191) DEFAULT NULL,
`amount_paid` decimal(30,2) DEFAULT '0.00',
`remarks` text,
`last_modified_by_id` int(11) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOCK TABLES `ussd_client_payments` WRITE;
/*!40000 ALTER TABLE `ussd_client_payments` DISABLE KEYS */;
INSERT INTO `ussd_client_payments` (`id`, `client_id`, `payment_type`, `amount_paid`, `remarks`, `last_modified_by_id`, `created_at`, `updated_at`)
VALUES
(1,15,NULL,0.00,NULL,1,'2021-03-16 18:29:11','2021-03-16 18:29:11'),
(2,16,NULL,0.00,NULL,1,'2021-03-16 18:29:48','2021-03-16 18:29:48'),
(3,17,NULL,0.00,NULL,1,'2021-03-16 18:32:04','2021-03-16 18:32:04'),
(4,18,NULL,0.00,NULL,1,'2021-03-16 18:33:23','2021-03-16 18:33:23'),
(5,19,NULL,0.00,NULL,1,'2021-03-16 18:49:12','2021-03-16 18:49:12'),
(6,20,NULL,0.00,NULL,1,'2021-03-16 18:49:32','2021-03-16 18:49:32'),
(7,21,'Laudantium quia qui',2345.00,'Voluptatem quos inv',1,'2021-03-16 18:50:45','2021-03-17 12:13:30'),
(8,22,'Neque qui voluptatem',4500.00,'Dolor molestiae cons',1,'2021-03-16 18:51:04','2021-03-17 12:07:12'),
(9,23,NULL,0.00,NULL,1,'2021-04-19 12:22:51','2021-04-19 12:22:51'),
(10,24,NULL,0.00,NULL,1,'2021-04-19 12:31:23','2021-04-19 12:31:23'),
(11,25,NULL,0.00,NULL,1,'2021-05-12 09:49:53','2021-05-12 09:49:53'),
(12,26,NULL,0.00,NULL,1,'2021-05-12 09:55:55','2021-05-12 09:55:55');
/*!40000 ALTER TABLE `ussd_client_payments` ENABLE KEYS */;
UNLOCK TABLES;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

View File

@@ -51,7 +51,7 @@ return [
'public' => [ 'public' => [
'driver' => 'local', 'driver' => 'local',
// 'root' => storage_path('app/public'), // 'root' => storage_path('app/public'),
'root' => public_path('app_files'), 'root' => public_path('documents'),
'url' => env('APP_URL').'/storage', 'url' => env('APP_URL').'/storage',
'visibility' => 'public', 'visibility' => 'public',
], ],

View File

@@ -1,66 +0,0 @@
# Sam's Comments
Hi Sam,
Following your request during today training, this email serves as a reminder for you to
engage with Kwesi to come up with a tracker.
This tracker must have specifications that we get from different operators
i.e., for both USSD and SMS.
You are to engage with Hilary as well, to add a product segment on the website.
Kind Regards,
##
Hi Kwesi,
So I reviewed the tracker and below are some of my preliminary notes:
- A. when i logged in it says Welcome Effie tedela, the name is Effie Tadala 😊.
- B. the date after logging in is showing Wednesday 28th July 2021.
B. CLIENTS (the client section will require a bit more modification to accommodate the categorisation and the email alerts. I will work on it)
I am only seeing A2P clients on the list. I think that is not the full list of the A2P interconnections that we have, please engage Charity to share full list.
We need subgroups of clients; Charity can assist with the lists as well.
USSD and SMS Short Code clients- specify whether app development included or just aggregation. The short code itself should also be included.
2.1.1. toll free or revenue sharing services to be specified.
2.1.2. Specify whether USSD only, SMS only or both USSD and SMS
airtime clients.
Bulk SMS clients.
Voice clients.
an email alert to be sent out when the portal has been edited for example when a new client has been added.
I would like to be able to add a client and a notification to be sent to the account managers so that they can assign a manager to that client. Has this been done?
just like we are assigning account managers, we must have at least one point of contact from our clients end as well.
Some of the clients do not have their contacts listed on the tracker.
C. CLIENTS
can we have a way to filter the clients to be listed in alphabetical order.
I am only seeing A2P clients on the list. we need sub groups:
## Use notes column to handle the extra details
USSD Short Code clients- specify whether app development included or just aggregation.
SMS SC clients- specify whether app development included or just aggregation.
toll free or revenue sharing services to be specified.
airtime clients
Bulk SMS clients
A2P clients- grouped by country as well.
an email alert to be sent out when the portal has been edited for example when a new client has been added. I would like to be able to add a client and a notification to be sent to the account managers so that they can assign a manager to that client.
just like we are assigning account managers, we must have at least one point of contact from our clients end as well.
D. USSD clients payments
received an error when i clicked on this link.
do we have a SC monthly payment tracker for our short code clients?
E. Meeting reports:
the marketing team need to have a tab as well so that they can be updating their meeting reports with clients too.

File diff suppressed because it is too large Load Diff

View File

@@ -120,6 +120,7 @@
} }
}); });
}); });
$('#financeForm').submit(function(evt){ $('#financeForm').submit(function(evt){
evt.preventDefault(); evt.preventDefault();
var formData = new FormData($(this)[0]); var formData = new FormData($(this)[0]);
@@ -154,6 +155,18 @@
}); });
} }
},
error: function(error){
//console.log(error);
//console.log("AJAX error in request: " + JSON.stringify(err, null, 2));
var output = $.parseJSON(error.responseText);
console.log(output.errors);
$('#financeNotifyArea').removeClass('hidden');
$('#financeNotifyArea').addClass('alert alert-danger');
$.each(output.errors, function (key, value) {
console.log(value[0]);
$('#financeNotifyArea').text(value[0]);
});
} }
}); });
}); });
@@ -244,6 +257,4 @@
}); });
}); });
//
}); });

56
public/assets/js/mnos.js vendored Normal file
View File

@@ -0,0 +1,56 @@
$('#addIpBtn').click(function(evt){
evt.preventDefault();
console.log('heere');
$('#newIpModal').modal('show');
});
$('#newIpForm').submit(function(evt){
evt.preventDefault();
var formData = new FormData($(this)[0]);
$.ajax({
type: "POST",
url: base_url + '/mnos/ip_store',
data : formData,
processData: false,
contentType: false,
async: false,
success: function (data){
if (data.code === 1) {
$("#newIpForm")[0].reset();
$.alert({
title: 'Alert!',
content: 'IP Address added successfully',
});
setTimeout(function(){
location.reload();
}, 5000);
}
else if (data.code > 5) {
$.alert({
title: 'Alert!',
content: data.msg,
});
}
else {
$.alert({
title: 'Alert!',
content: 'Your request could not be handled. Try again !',
});
}
},
error: function(error){
var output = $.parseJSON(error.responseText);
console.log(output.errors);
$('#ipNotifyArea').removeClass('hidden');
$('#ipNotifyArea').addClass('alert alert-danger');
$.each(output.errors, function (key, value) {
console.log(value[0]);
$('#ipNotifyArea').text(value[0]);
});
}
});
});

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -40,4 +40,27 @@ The Account Manager
Referral Referral
Word of Mouth Word of Mouth
Marketing Marketing
# Sam
When we get a new client we fail to track various stages.
Discussion/Business case analysis
Business case approved
i. Proceed to Document review
No business case
i. Archived
Document Review
Tech Dcoument
Contract
NDA if available
Contract signing stage
Partner signed
Click Signed
Fully Executed or
Archived
Integration
Live
This will mean a client will go through various stages before they can be a LIVE customer. This will no longer be categorized by input data or by process or Admin.

View File

@@ -52,14 +52,14 @@
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="email">Contact Person</label> <label class="control-label col-md-3 col-sm-3 col-xs-12" for="contact_person">Contact Person</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('name') ? 'has-error' : ''}}"> <div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('name') ? 'has-error' : ''}}">
{!! Form::text('contact_person', old('contact_person'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Contact Person' , 'id' => 'contact_person']) !!} {!! Form::text('contact_person', old('contact_person'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Contact Person' , 'id' => 'contact_person']) !!}
{!! $errors->first('contact_person', '<p class="help-block">:message</p>') !!} {!! $errors->first('contact_person', '<p class="help-block">:message</p>') !!}
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="email">Phone</label> <label class="control-label col-md-3 col-sm-3 col-xs-12" for="phone">Phone</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('phone') ? 'has-error' : ''}}"> <div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('phone') ? 'has-error' : ''}}">
{!! Form::text('phone', old('phone'), ['class' => 'form-control', 'placeholder'=>'Enter Phone Number' , 'id' => 'phone']) !!} {!! Form::text('phone', old('phone'), ['class' => 'form-control', 'placeholder'=>'Enter Phone Number' , 'id' => 'phone']) !!}
{!! $errors->first('phone', '<p class="help-block">:message</p>') !!} {!! $errors->first('phone', '<p class="help-block">:message</p>') !!}

View File

@@ -5,7 +5,7 @@
@endif @endif
@endsection @endsection
@section('content') @section('content')
<div class=""> <div class="">
<div class="page-title"> <div class="page-title">
<div class="title_left" style="width:800px !important;"> <div class="title_left" style="width:800px !important;">
<ol class="breadcrumb"> <ol class="breadcrumb">
@@ -27,11 +27,7 @@
{{-- start of content --}} {{-- start of content --}}
<div class="x_content"> <div class="x_content">
<br> <br>
{!! Form::model($client, [ {!! Form::model($client, [ 'method' => 'PATCH', 'files' => 'true', 'url' => ['clients', $client], 'class' => 'form-horizontal form-label-left']) !!}
'method' => 'PATCH',
'url' => ['clients', $client],
'class' => 'form-horizontal form-label-left'
]) !!}
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
<div class="form-group"> <div class="form-group">
@@ -209,13 +205,13 @@
{!! $errors->first('payment_mode', '<p class="help-block">:message</p>') !!} {!! $errors->first('payment_mode', '<p class="help-block">:message</p>') !!}
</div> </div>
</div> </div>
<div class="form-group"> <!-- <div class="form-group">
<div class=" {{ $errors->has('sender_ids') ? 'has-error' : ''}}"> <div class=" {{ $errors->has('sender_ids') ? 'has-error' : ''}}">
<label class="" for="senderIds">Requested Sender IDs</label> <label class="" for="senderIds">Requested Sender IDs</label>
{!! Form::select('sender_ids[]', $sender_ids, $old_sender_ids, ['class' => 'form-control senderIds' , 'id' => 'senderIds', 'multiple' => 'true' ]) !!} {!! Form::select('sender_ids[]', $sender_ids, $old_sender_ids, ['class' => 'form-control senderIds' , 'id' => 'senderIds', 'multiple' => 'true' ]) !!}
{!! $errors->first('sender_ids', '<p class="help-block">:message</p>') !!} {!! $errors->first('sender_ids', '<p class="help-block">:message</p>') !!}
</div> </div>
</div> </div> -->
<div class="form-group"> <div class="form-group">
<div class=" {{ $errors->has('how_we_got_client') ? 'has-error' : ''}}"> <div class=" {{ $errors->has('how_we_got_client') ? 'has-error' : ''}}">
<label class="" for="howWeGotClient">How We got Client</label> <label class="" for="howWeGotClient">How We got Client</label>
@@ -225,7 +221,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<div class=" {{ $errors->has('how_we_got_client_other') ? 'has-error' : ''}}"> <div class=" {{ $errors->has('how_we_got_client_other') ? 'has-error' : ''}}">
<label class="" for="smppUsername">Other</label> <label class="" for="howWeGotClientOther">Other</label>
{!! Form::text('how_we_got_client_other', null, ['class' => 'form-control' , 'id' => 'howWeGotClientOther', 'placeholder' => 'Specify how we got the client']) !!} {!! Form::text('how_we_got_client_other', null, ['class' => 'form-control' , 'id' => 'howWeGotClientOther', 'placeholder' => 'Specify how we got the client']) !!}
{!! $errors->first('how_we_got_client_other', '<p class="help-block">:message</p>') !!} {!! $errors->first('how_we_got_client_other', '<p class="help-block">:message</p>') !!}
</div> </div>
@@ -237,6 +233,69 @@
{!! $errors->first('notes', '<p class="help-block">:message</p>') !!} {!! $errors->first('notes', '<p class="help-block">:message</p>') !!}
</div> </div>
</div> </div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<div class=" {{ $errors->has('how_we_got_client_other') ? 'has-error' : ''}}">
<label class="" for="documentOneName">Document Name</label>
{!! Form::text('document_one_name', null, ['class' => 'form-control' , 'id' => 'documentOneName', 'placeholder' => 'Enter name of document']) !!}
{!! $errors->first('document_one_name', '<p class="help-block">:message</p>') !!}
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<div class=" {{ $errors->has('document_one') ? 'has-error' : ''}}">
<label class="" for="documentOne">First Document</label>
{!! Form::file('document_one', null, ['class' => 'form-control' , 'id' => 'documentOne', 'placeholder' => 'Select file to upload']) !!}
{!! $errors->first('document_one', '<p class="help-block">:message</p>') !!}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<div class=" {{ $errors->has('how_we_got_client_other') ? 'has-error' : ''}}">
<label class="" for="documentOneName">Document Name</label>
{!! Form::text('document_two_name', null, ['class' => 'form-control' , 'id' => 'documentTwoName', 'placeholder' => 'Enter name of document']) !!}
{!! $errors->first('document_two_name', '<p class="help-block">:message</p>') !!}
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<div class=" {{ $errors->has('document_two') ? 'has-error' : ''}}">
<label class="" for="documentTwo">Second Document</label>
{!! Form::file('document_two', null, ['class' => 'form-control' , 'id' => 'documentTwo', 'placeholder' => 'Select file to upload']) !!}
{!! $errors->first('document_two', '<p class="help-block">:message</p>') !!}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<div class=" {{ $errors->has('how_we_got_client_other') ? 'has-error' : ''}}">
<label class="" for="documentThreeName">Document Name</label>
{!! Form::text('document_three_name', null, ['class' => 'form-control' , 'id' => 'documentThreeName', 'placeholder' => 'Enter name of document']) !!}
{!! $errors->first('document_three_name', '<p class="help-block">:message</p>') !!}
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<div class=" {{ $errors->has('document_three') ? 'has-error' : ''}}">
<label class="" for="documentThree">Third Document</label>
{!! Form::file('document_three', null, ['class' => 'form-control' , 'id' => 'documentThree', 'placeholder' => 'Select file to upload']) !!}
{!! $errors->first('document_three', '<p class="help-block">:message</p>') !!}
</div>
</div>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label>Status *:</label> <label>Status *:</label>
<div class="bg-<?php echo $status_bg; ?> " style="border-radius: 5px; border: 1px solid black; padding: 10px;"> <div class="bg-<?php echo $status_bg; ?> " style="border-radius: 5px; border: 1px solid black; padding: 10px;">
@@ -269,8 +328,7 @@
{{-- end of x_panel --}} {{-- end of x_panel --}}
</div> </div>
</div> </div>
</div>
</div>
@endsection @endsection

View File

@@ -82,7 +82,7 @@
} }
var table = new Tabulator("#clientsTable", { var table = new Tabulator("#clientsTable", {
ajaxURL: "clients/all", ajaxURL: "clients/all",
paginationSize: 20, paginationSize: 15,
layout: "fitColumns", layout: "fitColumns",
pagination: "remote", pagination: "remote",
selectable: false, selectable: false,

View File

@@ -29,7 +29,7 @@
<div class="form-group" > <div class="form-group" >
<div class="col-md-12" style="padding-bottom: 5px;"> <div class="col-md-12" style="padding-bottom: 5px;">
<label for="invoiceAmountEdit">Invoice Amount</label> <label for="invoiceAmountEdit">Invoice Amount</label>
<input type="number" class="form-control" name="invoice_amount" id="invoiceAmountEdit" required > <input type="text" class="form-control" name="invoice_amount" id="invoiceAmountEdit" required >
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">

View File

@@ -9,6 +9,7 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="hidden" id="financeNotifyArea"></div>
<form class="form-vertical" method="POST" id="financeForm" action="{{ url('clients/finance_store') }}"> <form class="form-vertical" method="POST" id="financeForm" action="{{ url('clients/finance_store') }}">
{{ csrf_field() }} {{ csrf_field() }}
<input type="hidden" name="client_id" id="clientID" value="{{ $showclient->id }}"> <input type="hidden" name="client_id" id="clientID" value="{{ $showclient->id }}">
@@ -28,15 +29,10 @@
<div class="form-group" > <div class="form-group" >
<div class="col-md-12" style="padding-bottom: 5px;"> <div class="col-md-12" style="padding-bottom: 5px;">
<label for="invoiceAmount">Invoice Amount</label> <label for="invoiceAmount">Invoice Amount</label>
<input type="number" class="form-control" name="invoice_amount" id="invoiceAmount" required > <input type="text" class="form-control" name="invoice_amount" id="invoiceAmount" required >
<div class="help-block text-warning">Enter Amount with comma</div>
</div> </div>
</div> </div>
<!-- <div class="form-group" >
<div class="col-md-12" style="padding-bottom: 5px;">
<label for="invoiceDate">Invoice Date *</label>
<input type="text" class="form-control" name="invoice_date" id="invoiceDate" required >
</div>
</div> -->
<div class="form-group"> <div class="form-group">
<div class="col-md-12"> <div class="col-md-12">
<div class='input-group date' id='myDatepicker2' style="padding-bottom: 5px;"> <div class='input-group date' id='myDatepicker2' style="padding-bottom: 5px;">
@@ -49,22 +45,6 @@
</div> </div>
</div> </div>
</div> </div>
<!-- <div class="form-group" >
<div class="col-md-12" style="padding-bottom: 5px;">
<label for="invoiceStatus">Invoice Status</label>
<input type="text" class="form-control" name="invoice_status" id="invoiceStatus"></textarea>
</div>
</div> -->
<!-- <div class="form-group">
<div class="col-md-12" style="padding-bottom: 5px">
<label for="invoiceStatus">Invoice Status</label>
<select id="invoiceStatus" class="form-control">
<option>--Select--</option>
<option value="PAID">Paid</option>
<option value="UNPAID">Unpaid</option>
</select>
</div>
</div> -->
<div class="form-group"> <div class="form-group">
<div class="col-md-12" style="padding-bottom: 5px"> <div class="col-md-12" style="padding-bottom: 5px">
<label for="invoiceStatus">Status *</label> <label for="invoiceStatus">Status *</label>

View File

@@ -3,7 +3,6 @@
<table class="table table-striped "> <table class="table table-striped ">
<thead> <thead>
<tr class="headings"> <tr class="headings">
{{-- <th>#</th> --}}
<th class="column-title">Invoice Number</th> <th class="column-title">Invoice Number</th>
<th class="column-title">Invoice Amount</th> <th class="column-title">Invoice Amount</th>
<th class="column-title">Invoice Date</th> <th class="column-title">Invoice Date</th>

View File

@@ -0,0 +1,325 @@
@extends('layouts.master')
@section('page_title')
@if(isset($page_title))
{{ $page_title }}
@endif
@endsection
@section('content')
<div class="">
<div class="page-title">
<div class="title_left" style="width:800px !important;">
<ol class="breadcrumb">
<li><a href="{!! url('dashboard') !!}">Dashboard</a></li>
<li><a href="{!! url('clients') !!}">Clients</a></li>
<li><a href="{!! url('clients', $showclient->id) !!}">{{ $showclient->name }}</a></li>
<li class="active">Full Details</li>
</ol>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
Update Client Details
@include('commons.notifications')
<div class="clearfix"></div>
</div>
{{-- start of content --}}
<div class="x_content">
<div class="row">
<div class="col-md-4">
<h4>Primary Details</h4>
<table class="table">
<tr>
<th>Name</th>
<td>{{ $showclient->name }}</td>
</tr>
<tr>
<th>Account Manager</th>
<td>{{ $showclient->auth_user_info->name }}</td>
</tr>
<tr>
<th>Contact Person</th>
<td>{{ $showclient->contact_person }}</td>
</tr>
<tr>
<th>Phone</th>
<td>{{ $showclient->phone }}</td>
</tr>
<tr>
<th>Email</th>
<td>{{ $showclient->email }}</td>
</tr>
<tr>
<th>Skype Name</th>
<td>{{ $showclient->skype_name }}</td>
</tr>
<tr>
<th>LinkedIn </th>
<td>{{ $showclient->linkedin_name }}</td>
</tr>
<tr>
<th>Contract Type </th>
<td>{{ $showclient->contract_type }}</td>
</tr>
<tr>
<th>Contract Validity </th>
<td>{{ $showclient->contract_validity }}</td>
</tr>
<tr>
<th>Contract Auto Renew </th>
<td>{{ $showclient->contract_auto_renew }}</td>
</tr>
</table>
</div>
<div class="col-md-4">
<h4>Company Details</h4>
<table class="table">
<tr>
<th>Name</th>
<td>{{ $showclient->country }}</td>
</tr>
<tr>
<th>Company Type</th>
<td>{{ $showclient->company_type }}</td>
</tr>
<tr>
<th>Connections</th>
<td>
<?php
echo ($showclient->connections) ? implode(',', json_decode($showclient->connections)) : "";
?>
</td>
</tr>
<tr>
<th>SMPP Details</th>
<td>
<?php
echo ($showclient->smpp_details) ? implode(',', json_decode($showclient->smpp_details)) : "";
?>
</td>
</tr>
<tr>
<th>Message Types</th>
<td>
<?php
echo ($showclient->message_types) ? implode(',', json_decode($showclient->message_types)) : "";
?>
</td>
</tr>
<tr>
<th>Support Phones</th>
<td>
<?php
echo ($showclient->support_phones) ? implode(',', json_decode($showclient->support_phones)) : "";
?>
</td>
</tr>
<tr>
<th>Support Emails</th>
<td>
<?php
echo ($showclient->support_emails) ? implode(',', json_decode($showclient->support_emails)) : "";
?>
</td>
</tr>
<tr>
<th>Rate Emails</th>
<td>
<?php
echo ($showclient->rate_emails) ? implode(',', json_decode($showclient->rate_emails)) : "";
?>
</td>
</tr>
<tr>
<th>Support Skype IDs</th>
<td>
<?php
echo ($showclient->support_skype) ? implode(',', json_decode($showclient->support_skype)) : "";
?>
</td>
</tr>
<tr>
<th>How We got this client</th>
<td>{{ $showclient->how_we_got_client }}</td>
</tr>
</table>
</div>
<div class="col-md-4">
<h4>Finance Details</h4>
<table class="table">
<tr>
<th>Payment Mode</th>
<td>
<?php echo $showclient->pay_mode ?? ""; ?></td>
</tr>
<tr>
<th>Finance Emails</th>
<td><?php echo ($showclient->finance_email) ? implode(',', json_decode($showclient->finance_email)) : ""; ?></td>
</tr>
</table>
<h5>Recent Payments</h5>
<div style="height: 250px; overflow: scroll;">
<div class="table-responsive">
<table class="table table-striped ">
<thead>
<tr class="headings">
<th class="column-title">Invoice Number</th>
<th class="column-title">Invoice Amount</th>
<th class="column-title">Invoice Date</th>
<th class="column-title">Services</th>
<th class="column-title">Remarks</th>
<th class="column-title">Status</th>
</tr>
</thead>
<tbody>
@if ($recent_payments->isEmpty())
<tr>
<td class="" colspan="12">No Records found</td>
</tr>
@else
@foreach ($recent_payments as $row)
<tr class="even pointer">
<td class="mes-td col-md-1">{{ $row->invoice_number }}</td>
<td class="mes-td col-md-1">{{ number_format($row->invoice_amount) }}</td>
<td class="mes-td col-md-2">{{ date('d-m-Y', strtotime($row->invoice_date)) }}</td>
<td class="mes-td col-md-3">{{ $row->services }} </td>
<td class="mes-td col-md-3" style="width: 100px;">{{ $row->remarks }}</td>
<td class="mes-td col-md-1"><span class="label label-<?php echo ($row->invoice_status == 'PAID') ? 'success' : 'danger'; ?>"> {{ $row->invoice_status }}</span></td>
</tr>
@endforeach
@endif
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 well">
<h4>Documents</h4>
@if(!$showdocuments->isEmpty() == true)
<div class="row">
<div class="col-md-6">
<div class="row">
@foreach($showdocuments as $docs)
<div class="col-md-3">
<p class="url">
<span class="fs1 text-info" aria-hidden="true" data-icon=""></span>
<a href="{{ url('clients/downloadfile', $docs->id) }}"><i class="fa fa-paperclip"></i> {{ $docs->name }}.{{ $docs->file_extension }}</a>
</p>
</div>
@endforeach
</div>
</div>
</div>
@else
<p>No Documents found</p>
@endif
</div>
</div>
<div class="row">
<div class="col-md-6">
<h4>Notes</h4>
<div class="" style="height: 400px; overflow: scroll;">
<ul class="messages list-group" style="padding: 15px;">
@if($show_notes->isEmpty())
<li style="" class="">No notes found</li>
@else
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Content</th>
<th scope="col">Services</th>
<th scope="col">Author</th>
<th scope="col">Date</th>
</tr>
</thead>
<tbody>
<?php $count = 1; ?>
@foreach($show_notes as $notes)
<tr>
<th scope="row">{{ $count }}</th>
<td>{{ $notes->notes_body }}</td>
<td>{{ $notes->services }}</td>
<td>{{ $notes->created_by_info->name }}</td>
<td>{{ $notes->created_at }}</td>
</tr>
<?php $count++; ?>
@endforeach
</tbody>
</table>
@endif
</ul>
</div>
</div>
<div class="col-md-6">
<div style="height: 400px; overflow: scroll;">
<h4>SMS Short Codes</h4>
<div>
<div class="table-responsive">
<table class="table table-striped table-bordered table-condensed">
<thead>
<tr class="headings">
{{-- <th>#</th> --}}
<th class="column-title">Name</th>
<th class="column-title">Code</th>
<th class="column-title">Type</th>
<th class="column-title">Network</th>
<th class="column-title">Toll Free</th>
<th class="column-title">Status</th>
<th class="column-title">Launch Date</th>
</th>
</tr>
</thead>
<tbody>
@if ($all_shortcodes->isEmpty())
<tr>
<td class="" colspan="12">No Records found</td>
</tr>
@else
@foreach ($all_shortcodes as $row)
<tr class="even pointer">
<td class="mes-td col-md-2">{{ $row->name }}</td>
<td class="mes-td col-md-1">{{ $row->shortcode }}</td>
<td class="mes-td col-md-1">{{ $row->code_type }}</td>
<td class="mes-td col-md-2">{{ ucfirst($row->network) }}</td>
<td class="mes-td col-md-2">{{ ucfirst($row->country) }}</td>
<td class="mes-td col-md-1">{{ strtoupper($row->toll_free) }}</td>
<td class="mes-td col-md-1">{{ $row->status }}</td>
<td class="mes-td col-md-1" style="width: 100px;">{{ date('d-m-Y', strtotime($row->launch_date)) }}</td>
</tr>
@endforeach
@endif
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
{{-- end of x_content --}}
</div>
{{-- end of x_panel --}}
</div>
</div>
</div>
@endsection
@section('javascript')
<script type="text/javascript">
$(function(){
});
</script>
@endsection

View File

@@ -10,6 +10,7 @@
@include('client.partials.finance') @include('client.partials.finance')
@include('client.partials.create-shortcodes') @include('client.partials.create-shortcodes')
@include('client.partials.edit-finance') @include('client.partials.edit-finance')
<?php ?>
<div class=""> <div class="">
<div class="page-title"> <div class="page-title">
<div class="title_left"> <div class="title_left">
@@ -69,11 +70,13 @@
</li> </li>
</ul> </ul>
@endif @endif
<a class="btn btn-success" href="{{ url('clients/'. $showclient->id . '/edit') }}"><i class="fa fa-edit m-right-xs"></i>Edit Client</a> @if(session('current_user.id') == $showclient->auth_user_id)
<a class="btn btn-success" href="{{ url('clients/'. $showclient->id . '/edit') }}"><i class="fa fa-edit m-right-xs"></i> Edit Client</a>
@endif
<a class="btn btn-primary" href="{{ url('clients/readonly/'. $showclient->id) }}"><i class="fa fa-eye m-right-xs"></i> Full Details (Readonly)</a>
<br /> <br />
<!-- start skills --> <!-- start skills -->
<!-- <h4>Finance</h4> <!-- <h4>Finance</h4>
<ul class="list-unstyled user_data"> <ul class="list-unstyled user_data">
@@ -132,7 +135,7 @@
<div class="col-md-4"> <div class="col-md-4">
<h4 class="lead"><strong>Support Phone(s)</strong></h4> <h4 class="lead"><strong>Support Phone(s)</strong></h4>
@if($showclient->support_phones !== null) @if(!empty($showclient->support_phones))
<blockquote> <blockquote>
<?php <?php
$the_arr = json_decode($showclient->support_phones, true) ?> $the_arr = json_decode($showclient->support_phones, true) ?>
@@ -148,7 +151,7 @@
N/A N/A
@endif @endif
<h4 class="lead"><strong>Support Email(s)</strong></h4> <h4 class="lead"><strong>Support Email(s)</strong></h4>
@if($showclient->support_emails !== null) @if(!empty($showclient->support_emails))
<blockquote> <blockquote>
<?php <?php
$the_arr = json_decode($showclient->support_emails, true) ?> $the_arr = json_decode($showclient->support_emails, true) ?>
@@ -163,7 +166,7 @@
@else @else
N/A N/A
@endif @endif
@if($showclient->rate_emails !== null) @if(!empty($showclient->rate_emails))
<h4 class="lead"><strong>Rates Email(s)</strong></h4> <h4 class="lead"><strong>Rates Email(s)</strong></h4>
<blockquote> <blockquote>
<?php <?php
@@ -180,10 +183,10 @@
N/A N/A
@endif @endif
<h4 class="lead"><strong>Finance Email(s)</strong></h4> <h4 class="lead"><strong>Finance Email(s)</strong></h4>
@if($showclient->finance_emails !== null) @if(!empty($showclient->finance_email))
<blockquote> <blockquote>
<?php <?php
$the_arr = json_decode($showclient->finance_emails, true) ?> $the_arr = json_decode($showclient->finance_email, true) ?>
<ul> <ul>
<?php foreach ($the_arr as $row): ?> <?php foreach ($the_arr as $row): ?>
@@ -199,7 +202,7 @@
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<h4 class="lead"><strong>Support Skype ID(s)</strong></h4> <h4 class="lead"><strong>Support Skype ID(s)</strong></h4>
@if($showclient->support_skype !== null) @if(!empty($showclient->support_skype))
<blockquote> <blockquote>
<?php <?php
$the_arr = json_decode($showclient->support_skype, true) ?> $the_arr = json_decode($showclient->support_skype, true) ?>
@@ -218,6 +221,17 @@
<h4>How We Got This Client</h4> <h4>How We Got This Client</h4>
<?php echo $showclient->how_we_got_client ?? "N/A" ?> <?php echo $showclient->how_we_got_client ?? "N/A" ?>
</div> </div>
<h4>Documents</h4>
@if(!$showdocuments->isEmpty() == true)
@foreach($showdocuments as $docs)
<p class="url">
<span class="fs1 text-info" aria-hidden="true" data-icon=""></span>
<a href="{{ url('clients/downloadfile', $docs->id) }}"><i class="fa fa-paperclip"></i> {{ $docs->name }}.{{ $docs->file_extension }}</a>
</p>
@endforeach
@else
<p>No Documents found</p>
@endif
</div> </div>

View File

@@ -0,0 +1,320 @@
@extends('layouts.master')
@section('page_title')
@if(isset($page_title))
{{ $page_title }}
@endif
@endsection
@section('content')
@include('client.partials.new_notes')
@include('client.partials.finance')
@include('client.partials.create-shortcodes')
@include('client.partials.edit-finance')
<div class="">
<div class="page-title">
<div class="title_left">
</div>
<div class="title_left">
<ol class="breadcrumb">
<li><a href="{!! url('dashboard') !!}">Dashboard</a></li>
<li><a href="{!! url('clients') !!}">Clients</a></li>
<li class="active">Client Details</li>
</ol>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Client Details </h2>
<div class="clearfix"></div>
@include('commons.notifications')
</div>
<div class="x_content">
<div class="col-md-3 col-sm-3 col-xs-12 profile_left">
<div class="profile_img">
<div id="crop-avatar">
<!-- Current avatar -->
<img class="img-responsive avatar-view" src="{{ url('public/assets/img/generic-client.png') }}" alt="Generic Client Icon" title="Change the avatar" width="100px">
</div>
</div>
<h3>{{ $showclient->name }}</h3>
<div class="well" style="border-radius: 25px;">
Click Account Manager <br>
<strong><em> <?php echo $showclient->auth_user_info->name ?? 'N/A' ?> </em></strong>
</div>
<h4>Status : <span class="label label-{{ $status_bg }}">{{ $showclient->status }}</span></h4>
<ul class="list-unstyled user_data">
<li><i class="fa fa-phone user-profile-icon"></i> <?php echo $showclient->phone ?? "N/A"; ?></li>
<li><i class="fa fa-envelope user-profile-icon"></i> <?php echo $showclient->email ?? "N/A"; ?> </li>
<li class="m-top-xs"><i class="fa fa-skype user-profile-icon"></i> <?php echo $showclient->skype_name ?? "N/A"; ?></li>
<li class="m-top-xs"><i class="fa fa-linkedin user-profile-icon"></i> <?php echo $showclient->linkedin_name ?? "N/A"; ?></li>
</ul>
<h5 style="text-decoration: underline;">Highlights</h5>
@if(!$show_notes->isEmpty())
<ul class="legend list-unstyled">
<li>
<p>
<span class="icon"><i class="fa fa-square blue"></i></span> <span class="name">
<?php for ($i = 0; $i < $show_notes->count(); $i++) { ?>
<?php if ($show_notes[$i]->highlight == 'NO'): continue; endif; ?>
<strong> {{ $i+1 . "." }}</strong> {{ $show_notes[$i]->notes_body }}
<?php } ?>
</span>
</p>
</li>
</ul>
@endif
<a class="btn btn-success" href="{{ url('clients/'. $showclient->id . '/edit') }}"><i class="fa fa-edit m-right-xs"></i>Edit Client</a>
<br />
<!-- start skills -->
<!-- <h4>Finance</h4>
<ul class="list-unstyled user_data">
<li><i class="fa fa-phone user-profile-icon"></i> [Phone Number here]</li>
<li><i class="fa fa-envelope user-profile-icon"></i> [email here] </li>
<li class="m-top-xs"><i class="fa fa-skype user-profile-icon"></i> [Skype ID Here]</li>
</ul> -->
<!-- end of skills -->
</div>
<div class="col-md-9 col-sm-9 col-xs-12" style="border: 1px solid; min-height: 500px;">
<div class="" role="tabpanel" data-example-id="togglable-tabs">
<ul id="myTab" class="nav nav-tabs bar_tabs" role="tablist">
<li role="presentation" class="active"><a href="#tabCompany" id="company-tab" role="tab" data-toggle="tab" aria-expanded="true">Company</a></li>
<!-- <li role="presentation" class=""><a href="#tabConnection" role="tab" id="connection-tab" data-toggle="tab" aria-expanded="false">Connection</a></li> -->
<li role="presentation" class=""><a href="#tabContract" role="tab" id="contract-tab2" data-toggle="tab" aria-expanded="false">Contract</a></li>
<li role="presentation" class=""><a href="#tabFinance" role="tab" id="finance-tab2" data-toggle="tab" aria-expanded="false">Finance</a></li>
<li role="presentation" class=""><a href="#tabNotes" role="tab" id="notes-tab2" data-toggle="tab" aria-expanded="false">Notes</a></li>
<li role="presentation" class=""><a href="#tabSmsShortCode" role="tab" id="smsshortcode-tab2" data-toggle="tab" aria-expanded="false">SMS Short Codes</a></li>
<li role="presentation" class=""><a href="#tabUssdShortCode" role="tab" id="ussdshortcode-tab2" data-toggle="tab" aria-expanded="false">USSD Short Codes</a></li>
<li role="presentation" class=""><a href="#tabVoiceShortCode" role="tab" id="voiceshortcode-tab2" data-toggle="tab" aria-expanded="false">Voice Short Codes</a></li>
</ul>
<div id="myTabContent" class="tab-content">
<div role="tabpanel" class="tab-pane fade active in" id="tabCompany" aria-labelledby="company-tab">
<div class="col-md-4">
<h4 class="lead"><strong>Company Details</strong></h4>
<blockquote>
<p>Country : <strong> {{ $showclient->country or "N/A" }}</strong></p>
<p>Company Type : <strong> {{ $showclient->company_type or "N/A" }}</strong></p>
<!-- <p>Products </p> -->
<!-- <p>Products Description</p> -->
<!-- <p>Product Specification</p> -->
<!-- <p>Networks</p> gettype(json_decode($showclient->sender_ids, true )); -->
<p>Requested Sender IDs : <strong> <?php if($showclient->sender_ids) { echo implode(", ", json_decode($showclient->sender_ids, true)); } else {echo "N/A"; } ?></strong></p>
</blockquote>
<h4 class="lead"><strong>Connection Details </strong></h4>
<blockquote>
<p>Connection Types : <em> <?php if($showclient->connections) { echo implode(", ", json_decode($showclient->connections, true)); } else {echo "N/A"; } ?></em></p>
<p>SMPP Username : <em>
<?php if($showclient->smpp_username) { echo $showclient->smpp_username; } else {echo "N/A"; } ?></em></p>
<p>Message Types : <em>
<?php if($showclient->message_types) {
$types_array = json_decode($showclient->message_types);
echo implode(', ', $types_array);
}
else {
echo "N/A";
} ?>
</em>
</p>
</blockquote>
</div>
<div class="col-md-4">
<h4 class="lead"><strong>Support Phone(s)</strong></h4>
@if(!empty($showclient->support_phones))
<blockquote>
<?php
$the_arr = json_decode($showclient->support_phones, true) ?>
<ul>
<?php foreach ($the_arr as $row): ?>
<li>{{ $row }}</li>
<?php endforeach ?>
</ul>
</blockquote>
@else
N/A
@endif
<h4 class="lead"><strong>Support Email(s)</strong></h4>
@if(!empty($showclient->support_emails))
<blockquote>
<?php
$the_arr = json_decode($showclient->support_emails, true) ?>
<ul>
<?php foreach ($the_arr as $row): ?>
<li>{{ $row }}</li>
<?php endforeach ?>
</ul>
</blockquote>
@else
N/A
@endif
@if(!empty($showclient->rate_emails))
<h4 class="lead"><strong>Rates Email(s)</strong></h4>
<blockquote>
<?php
$the_arr = json_decode($showclient->rate_emails, true) ?>
<ul>
<?php foreach ($the_arr as $row): ?>
<li>{{ $row }}</li>
<?php endforeach ?>
</ul>
</blockquote>
@else
N/A
@endif
<h4 class="lead"><strong>Finance Email(s)</strong></h4>
@if(!empty($showclient->finance_emails))
<blockquote>
<?php
$the_arr = json_decode($showclient->finance_emails, true) ?>
<ul>
<?php foreach ($the_arr as $row): ?>
<li>{{ $row }}</li>
<?php endforeach ?>
</ul>
</blockquote>
@else
N/A
@endif
</div>
<div class="col-md-4">
<h4 class="lead"><strong>Support Skype ID(s)</strong></h4>
@if(!empty($showclient->support_skype))
<blockquote>
<?php
$the_arr = json_decode($showclient->support_skype, true) ?>
<ul>
<?php foreach ($the_arr as $row): ?>
<li>{{ $row }}</li>
<?php endforeach ?>
</ul>
</blockquote>
@else
N/A
@endif
<div class="well">
<h4>How We Got This Client</h4>
<?php echo $showclient->how_we_got_client ?? "N/A" ?>
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane fade" id="tabConnection" aria-labelledby="connection-tab">
<h4 class="lead"><strong>Connection Details </strong></h4>
<blockquote>
<p>Connection Types : <?php if($showclient->connections) { echo implode(", ", json_decode($showclient->connections, true)); } else {echo "N/A"; } ?></p>
<br>
<p>Partner SMPP Details <br>
<?php //if($showclient->smpp_details) { echo $showclient->smpp_details; } else {echo "N/A"; } ?></p>
</blockquote>
</div>
<div role="tabpanel" class="tab-pane fade" id="tabContract" aria-labelledby="contract-tab">
<h4 class="lead"> <strong>Contract Details </strong></h4>
<blockquote>
<p>Contract Type : <strong> {{ ucfirst($showclient->contract_type) ?? 'N/A'}} </strong><br> </p>
<p>Contract Validity (Date) : <strong> {{ $showclient->contract_validity or 'N/A'}} </strong></p>
<p>Contract Auto Renewal : <strong> {{ $showclient->contract_auto_renew or 'N/A'}} </strong></p>
<p>Renewal Due : <strong class="text-<?php echo ($highlight_colour == 'none') ? '' : 'danger'; ?> "> {{ $renewal_due }} </strong></p>
</blockquote>
</div>
<div role="tabpanel" class="tab-pane fade" id="tabFinance" aria-labelledby="finance-tab">
<h4 class="lead"><strong>Finance Details </strong></h4>
<button type="button" class="btn btn-success btn-sm pull-right" id="createPaymentBtn"><i class="fa fa-plus-square"></i> New Payment Details</button>
<div class="clearfix"></div>
<hr>
@include('client.partials.recent-payments')
</div>
<div role="tabpanel" class="tab-pane fade" id="tabNotes" aria-labelledby="notes-tab">
<strong><h3> Notes</h3> </strong>
<div class="pull-right">
<!-- {{ url('clients/create-notes') }} -->
<button type="button" class="btn btn-success btn-sm" id="createNotesBtn">New Notes <i class="fa fa-plus-square"></i> </button>
</div>
<div class="clearfix"></div>
<div style="background-color: #dce2e4; height: 400px; overflow: scroll;">
<ul class="messages list-group" style="padding: 15px;">
@if($show_notes->isEmpty())
<li style="" class="">No notes found</li>
@else
<?php for ($i = 0; $i < $show_notes->count(); $i++) { ?>
<?php if ($show_notes[$i]->highlight == 'YES'): continue; endif; ?>
<li class="list-group-item list-group-item-<?php echo ($i%2 == 0)? "secondary" : "info"; ?>">
<div class="message_date">
<h3 class="date text-info"><?php echo date('d', strtotime($show_notes[$i]->created_at)); ?></h3>
<p class="month"><?php echo date('M', strtotime($show_notes[$i]->created_at)); ?></p>
<p class="year"><?php echo date('Y', strtotime($show_notes[$i]->created_at)); ?></p>
</div>
<div class="message_wrapper">
<h4 class="heading">{{ $show_notes[$i]->client_info->name }}</h4>
<blockquote class="message"><em>Content : </em> {{ $show_notes[$i]->notes_body }}</blockquote>
<br />
<p class="url">
<span class="fs1 text-info" aria-hidden="true" data-icon=""></span>
<a href="#"><i class="fa fa-edit"></i>Account Manager : {{ $show_notes[$i]->created_by_info->name }} </a>
</p>
</div>
</li>
<?php } ?>
@endif
</ul>
</div>
</div>
<div role="tabpanel" class="tab-pane fade" id="tabSmsShortCode" aria-labelledby="smsshortcode-tab">
<h4 class="lead"><strong>SMS Short Code </strong></h4>
<button type="button" class="btn btn-success btn-sm pull-right" id="createSmsShortCodeBtn"><i class="fa fa-plus-square"></i> New Short Code</button>
<div class="clearfix"></div>
@include('client.partials.sms-codes')
</div>
<div role="tabpanel" class="tab-pane fade" id="tabUssdShortCode" aria-labelledby="ussdshortcode-tab">
<h4 class="lead"><strong>USSD Short Codes </strong></h4>
<button type="button" class="btn btn-success btn-sm pull-right" id="createUssdShortCodeBtn"><i class="fa fa-plus-square"></i> New Short Code</button>
<div class="clearfix"></div>
@include('client.partials.ussd-codes')
</div>
<div role="tabpanel" class="tab-pane fade" id="tabVoiceShortCode" aria-labelledby="voiceshortcode-tab">
<h4 class="lead"><strong>Voice Short Code </strong></h4>
<button type="button" class="btn btn-success btn-sm pull-right" id="createVoiceShortCodeBtn"><i class="fa fa-plus-square"></i> New Short Code</button>
<div class="clearfix"></div>
@include('client.partials.voice-codes')
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('javascript')
<script type="text/javascript" src="{{ url('public/assets/js/clientshow.js') }}"></script>
@endsection

View File

@@ -138,7 +138,7 @@
<!-- Custom Theme Scripts --> <!-- Custom Theme Scripts -->
<script src="{!! url('public/assets/build/js/custom.js') !!}"></script> <script src="{!! url('public/assets/build/js/custom.js') !!}"></script>
</body> </body>
</html> </html>

View File

@@ -17,8 +17,10 @@
<li><a href="#">Pre-Paid</a></li> <li><a href="#">Pre-Paid</a></li>
</ul> </ul>
</li> --> </li> -->
<li><a href="{!! url('network_ops') !!}"><i class="fa fa-globe"></i> Network Operators </a></li> <li><a href="{!! url('mnos') !!}"><i class="fa fa-globe"></i> Network Operators </a></li>
<li><a href="{!! url('clickapps') !!}"><i class="fa fa-code"></i> Click Apps </a></li> <li><a href="{!! url('clickapps') !!}"><i class="fa fa-code"></i> Click Apps </a></li>
<li><a href="{!! url('senderids') !!}"><i class="fa fa-th-list"></i> Sender IDs </a></li>
<li><a href="{!! url('staffmembers') !!}"><i class="fa fa-users"></i> Team Members</a></li>
<!-- <li> <!-- <li>
<li><a href="{!! url('infrastructure/server-list') !!}">Server List</a></li> <li><a href="{!! url('infrastructure/server-list') !!}">Server List</a></li>
<a href="{!! url('services') !!}"><i class="fa fa-shopping-bag"></i> Services </a> <a href="{!! url('services') !!}"><i class="fa fa-shopping-bag"></i> Services </a>

View File

@@ -10,7 +10,7 @@
<div class="title_left" style="width:800px !important;"> <div class="title_left" style="width:800px !important;">
<ol class="breadcrumb"> <ol class="breadcrumb">
<li><a href="{!! url('dashboard') !!}">Dashboard</a></li> <li><a href="{!! url('dashboard') !!}">Dashboard</a></li>
<li class="active">Create Network Operator</li> <li class="active">New Network Operator</li>
</ol> </ol>
</div> </div>
</div> </div>
@@ -25,32 +25,74 @@
{{-- start of content --}} {{-- start of content --}}
<div class="x_content"> <div class="x_content">
<br> <br>
{!! Form::open(['url' => 'network_ops', 'class' => 'form-horizontal form-label-left']) !!} {!! Form::open(['url' => 'mnos', 'class' => 'form-horizontal form-label-left']) !!}
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Name</label> <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Name *</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('name') ? 'has-error' : ''}}"> <div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('name') ? 'has-error' : ''}}">
{!! Form::text('name', old('name'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter network operator name' , 'id' => 'name']) !!} {!! Form::text('name', old('name'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter network operator name' , 'id' => 'name']) !!}
{!! $errors->first('name', '<p class="help-block">:message</p>') !!} {!! $errors->first('name', '<p class="help-block">:message</p>') !!}
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="country">Country</label> <label class="control-label col-md-3 col-sm-3 col-xs-12" for="country">Country *</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('country') ? 'has-error' : ''}}"> <div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('country') ? 'has-error' : ''}}">
{!! Form::select('country', $countries ,old('country'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Country' , 'id' => 'country']) !!} {!! Form::select('country', $countries ,old('country'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Select Country' , 'id' => 'country']) !!}
{!! $errors->first('country', '<p class="help-block">:message</p>') !!} {!! $errors->first('country', '<p class="help-block">:message</p>') !!}
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="account_manager_id">Account Manager</label> <label class="control-label col-md-3 col-sm-3 col-xs-12" for="account_manager_id">Account Manager *</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('account_manager_id') ? 'has-error' : ''}}"> <div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('account_manager_id') ? 'has-error' : ''}}">
{!! Form::select('account_manager_id', $account_manager ,old('account_manager_id'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Account Manager' , 'id' => 'account_manager_id']) !!} {!! Form::select('account_manager_id', $account_manager ,old('account_manager_id'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Account Manager' , 'id' => 'account_manager_id']) !!}
{!! $errors->first('account_manager_id', '<p class="help-block">:message</p>') !!} {!! $errors->first('account_manager_id', '<p class="help-block">:message</p>') !!}
</div> </div>
</div> </div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="email">Contact Person *</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('name') ? 'has-error' : ''}}">
{!! Form::text('contact_person', old('contact_person'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Contact Person' , 'id' => 'contact_person']) !!}
{!! $errors->first('contact_person', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="phone">Phone *</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('phone') ? 'has-error' : ''}}">
{!! Form::text('phone', old('phone'), ['class' => 'form-control', 'placeholder'=>'Enter Phone Number' , 'id' => 'phone']) !!}
{!! $errors->first('phone', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="email">Email *</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('name') ? 'has-error' : ''}}">
{!! Form::text('email', old('email'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter email' , 'id' => 'email']) !!}
{!! $errors->first('email', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="skypeName">Skype Name</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('name') ? 'has-error' : ''}}">
{!! Form::text('skype_name', old('skype_name'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Skype Name' , 'id' => 'skypeName']) !!}
{!! $errors->first('skype_name', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="type">Services *</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('services') ? 'has-error' : ''}}">
{!! Form::select('services[]', $services ,old('services'), ['class' => 'form-control col-md-7 col-xs-12' , 'id' => 'services', 'multiple'=> 'true']) !!}
{!! $errors->first('typeservices', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="status">Status *</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('status') ? 'has-error' : ''}}">
{!! Form::select('status', $status ,old('status'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Status ' , 'id' => 'status']) !!}
{!! $errors->first('status', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="ln_solid"></div> <div class="ln_solid"></div>
<div class="form-group"> <div class="form-group">
<div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3"> <div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
<button type="submit" class="btn btn-success"><i class="fa fa-save"></i> Submit</button> <button type="submit" class="btn btn-success btn-block"><i class="fa fa-save"></i> Submit</button>
</div> </div>
</div> </div>
{!! Form::close() !!} {!! Form::close() !!}

View File

@@ -6,78 +6,192 @@
@endsection @endsection
@section('content') @section('content')
<div class=""> @include('network_ops.partials.newip')
<div class="">
<div class="page-title"> <div class="page-title">
<div class="title_left" style="width:800px !important;"> <div class="title_left" style="width:800px !important;">
<ol class="breadcrumb"> <ol class="breadcrumb">
<li><a href="{!! url('dashboard') !!}">Dashboard</a></li> <li><a href="{!! url('dashboard') !!}">Dashboard</a></li>
<li><a href="{!! url('network_ops') !!}">Network Operator</a></li> <li><a href="{!! url('mnos') !!}">Network Operator</a></li>
<li class="active">Update Network Operator</li> <li class="active">Update Network Operator</li>
</ol> </ol>
</div> </div>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
<div> <div>@include('commons.notifications')</div>
@include('commons.notifications')
</div>
<div class="row"> <div class="row">
<div class="col-md-6 col-sm-12 col-xs-12"> <div class="col-md-10 col-sm-12 col-xs-12">
<div class="x_panel"> <div class="x_panel">
<div class="x_title"> <div class="x_title">
{{-- @include('commons.notifications') --}}
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
{{-- start of content --}} {{-- start of content --}}
<div class="x_content"> <div class="x_content">
<br> <br>
{!! Form::model($network_arr, [ {!! Form::model($network_arr, ['method' => 'PATCH', 'url' => ['mnos', $network_arr], 'class' => 'form-horizontal form-label-left' ]) !!}
'method' => 'PATCH', <div class="row">
'url' => ['network_ops', $network_arr], <div class="col-md-4">
'class' => 'form-horizontal form-label-left'
]) !!}
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Name</label> <div class=" {{ $errors->has('name') ? 'has-error' : ''}}">
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('name') ? 'has-error' : ''}}"> <label class="" for="name">Name</label>
{!! Form::text('name', old('name'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter name' , 'id' => 'name']) !!} {!! Form::text('name', old('name'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter name' , 'id' => 'name']) !!}
{!! $errors->first('name', '<p class="help-block">:message</p>') !!} {!! $errors->first('name', '<p class="help-block">:message</p>') !!}
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="country">Country</label> <div class="{{ $errors->has('country') ? 'has-error' : ''}}">
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('country') ? 'has-error' : ''}}"> <label class="" for="country">Country</label>
{!! Form::select('country', $countries ,old('country'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Country' , 'id' => 'country']) !!} {!! Form::select('country', $countries ,old('country'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Country' , 'id' => 'country']) !!}
{!! $errors->first('country', '<p class="help-block">:message</p>') !!} {!! $errors->first('country', '<p class="help-block">:message</p>') !!}
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="account_manager_id">Account Manager</label> <div class="{{ $errors->has('account_manager_id') ? 'has-error' : ''}}">
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('account_manager_id') ? 'has-error' : ''}}"> <label class="" for="account_manager_id">Account Manager</label>
{!! Form::select('account_manager_id', $account_manager ,old('account_manager_id'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Account Manager' , 'id' => 'account_manager_id']) !!} {!! Form::select('account_manager_id', $account_manager ,old('account_manager_id'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Account Manager' , 'id' => 'account_manager_id']) !!}
{!! $errors->first('account_manager_id', '<p class="help-block">:message</p>') !!} {!! $errors->first('account_manager_id', '<p class="help-block">:message</p>') !!}
</div> </div>
</div> </div>
<div class="form-group">
<div class=" {{ $errors->has('contact_person') ? 'has-error' : ''}}">
<label class="" for="email">Contact Person</label>
{!! Form::text('contact_person', old('contact_person'), ['class' => 'form-control', 'placeholder'=>'Enter Contact Person' , 'id' => 'contact_person']) !!}
{!! $errors->first('contact_person', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<div class=" {{ $errors->has('contact_person_phone') ? 'has-error' : ''}}">
<label class="" for="email">Phone</label>
{!! Form::text('contact_person_phone', old('contact_person_phone'), ['class' => 'form-control', 'placeholder'=>'Enter Phone Number' , 'id' => 'phone']) !!}
{!! $errors->first('contact_person_phone', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<div class=" {{ $errors->has('email') ? 'has-error' : ''}}">
<label class="" for="email">Email</label>
{!! Form::text('contact_person_email', old('contact_person_email'), ['class' => 'form-control ', 'placeholder'=>'Enter email' , 'id' => 'email']) !!}
{!! $errors->first('contact_person_email', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<div class=" {{ $errors->has('skype_name') ? 'has-error' : ''}}">
<label class="" for="skypeName">Skype Name</label>
{!! Form::text('contact_person_skype', old('contact_person_skype'), ['class' => 'form-control', 'placeholder'=>'Enter Skype Name' , 'id' => 'skypeName']) !!}
{!! $errors->first('contact_person_skype', '<p class="help-block">:message</p>') !!}
</div>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<div class=" {{ $errors->has('services') ? 'has-error' : ''}}">
<label class="" for="type">Services</label>
{!! Form::select('services[]', $services, $current_services, ['class' => 'form-control typeServices' , 'id' => 'services', 'multiple'=> 'true']) !!}
{!! $errors->first('services', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<div class=" {{ $errors->has('support_skype') ? 'has-error' : ''}}">
<label class="" for="rateEmail">Support Skype IDs (Multiple) </label>
{!! Form::select('support_skype[]', $support_skype_arr, $old_support_skype_arr, ['class' => 'form-control supportSkype', 'id' => 'supportSkype', 'multiple' => 'true']) !!}
{!! $errors->first('support_skype', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<div class=" {{ $errors->has('support_email') ? 'has-error' : ''}}">
<label class="" for="supportEmail">Support Emails (Multiple) </label>
{!! Form::select('support_emails[]', $support_emails, $old_support_emails, ['class' => 'form-control supportEmail', 'id' => 'supportEmail', 'multiple' => 'true']) !!}
{!! $errors->first('support_emails', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<div class=" {{ $errors->has('support_phones') ? 'has-error' : ''}}">
<label class="" for="supportPhones">Support Phone Numbers (Multiple) </label>
{!! Form::select('support_phones[]', $support_phones, $old_support_phones, ['class' => 'form-control supportPhones', 'id' => 'supportPhones', 'multiple' => 'true']) !!}
{!! $errors->first('support_phones', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label>Status *:</label>
<div class="bg-<?php echo $status_bg; ?> " style="border-radius: 5px; border: 1px solid black; padding: 10px;">
<p >
Live:
<input type="radio" class="flat" name="connection_status" id="statusLive" value="Active" <?php echo ($network_arr->connection_status == 'Active') ? "checked" : ""; ?> />
</p>
<p>
Pending:
<input type="radio" class="flat" name="connection_status" id="statusProspect" value="Pending" <?php echo ($network_arr->connection_status == 'Pending') ? "checked" : ""; ?> />
</p>
<p>
Inactive
<input type="radio" class="flat" name="connection_status" id="statusInactive" value="Inactive" <?php echo ($network_arr->connection_status == 'Inactive') ? "checked" : ""; ?> />
</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<div class=" {{ $errors->has('connection_type') ? 'has-error' : ''}}">
<label class="" for="connectionType">Connection Types</label>
{!! Form::select('connection_type[]', $connection_types, $old_connection_type, ['class' => 'form-control' , 'id' => 'connectionType', 'multiple'=> 'true']) !!}
{!! $errors->first('connection_type', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="">
<p>IP Addresses <a href="" class="btn btn-primary btn-xs pull-right" id="addIpBtn" >Add IP</a></p>
<table class="table table-striped">
<thead>
<tr>
<th scope="col active">Service</th>
<th scope="col success">IP</th>
<th scope="col warning">Port</th>
<th scope="col info">Status</th>
</tr>
</thead>
@foreach($ip_addresses as $row)
<tr>
<td class="">{{ $row->service }}</td>
<td class="">{{ $row->ip_address }}</td>
<td class="">{{ $row->port }}</td>
<td class="">{{ $row->status }}</td>
</tr>
@endforeach
</table>
</div>
</div>
</div>
<div class="ln_solid"></div> <div class="ln_solid"></div>
<div class="form-group"> <div class="form-group">
<div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3"> <div class="col-md-12 col-sm-12">
<button type="submit" class="btn btn-success"><i class="fa fa-save"></i> Update Operator</button> <button type="submit" class="btn btn-success btn-block"><i class="fa fa-save"></i> Update Operator</button>
</div> </div>
</div> </div>
{!! Form::close() !!} {!! Form::close() !!}
</div> </div>
</div> </div>
</div> </div>
</div>
</div> </div>
</div>
@endsection @endsection
@section('javascript') @section('javascript')
<script type="text/javascript" src="{{ url('public/assets/js/mnos.js') }}"></script>
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){
$('select').select2(); $('select').select2();
$('.supportEmail').select2({
tags : true
});
$('.supportPhones').select2({
tags : true
});
$('.supportSkype').select2({
tags : true
});
}); });
</script> </script>

View File

@@ -0,0 +1,84 @@
@extends('layouts.master')
@section('page_title')
@if(isset($page_title))
{{ $page_title }}
@endif
@endsection
@section('content')
<div class="">
<div class="page-title">
<div class="title_left" style="width:800px !important;">
<ol class="breadcrumb">
<li><a href="{!! url('dashboard') !!}">Dashboard</a></li>
<li><a href="{!! url('network_ops') !!}">Network Operator</a></li>
<li class="active">Update Network Operator</li>
</ol>
</div>
</div>
<div class="clearfix"></div>
<div>
@include('commons.notifications')
</div>
<div class="row">
<div class="col-md-6 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
{{-- @include('commons.notifications') --}}
<div class="clearfix"></div>
</div>
{{-- start of content --}}
<div class="x_content">
<br>
{!! Form::model($network_arr, [
'method' => 'PATCH',
'url' => ['network_ops', $network_arr],
'class' => 'form-horizontal form-label-left'
]) !!}
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Name</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('name') ? 'has-error' : ''}}">
{!! Form::text('name', old('name'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter name' , 'id' => 'name']) !!}
{!! $errors->first('name', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="country">Country</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('country') ? 'has-error' : ''}}">
{!! Form::select('country', $countries ,old('country'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Country' , 'id' => 'country']) !!}
{!! $errors->first('country', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="account_manager_id">Account Manager</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('account_manager_id') ? 'has-error' : ''}}">
{!! Form::select('account_manager_id', $account_manager ,old('account_manager_id'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Account Manager' , 'id' => 'account_manager_id']) !!}
{!! $errors->first('account_manager_id', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="ln_solid"></div>
<div class="form-group">
<div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
<button type="submit" class="btn btn-success"><i class="fa fa-save"></i> Update Operator</button>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>
</div>
@endsection
@section('javascript')
<script type="text/javascript">
$(function(){
$('select').select2();
});
</script>
@endsection

View File

@@ -4,7 +4,9 @@
{{ $page_title }} {{ $page_title }}
@endif @endif
@endsection @endsection
@section('css')
<link href="{!! url('public/assets/vendors/tabulator/css/bootstrap/tabulator_bootstrap.css') !!}" type="text/css" rel="stylesheet">
@endsection
@section('content') @section('content')
<div class=""> <div class="">
<div class="page-title"> <div class="page-title">
@@ -19,15 +21,14 @@
<div class="title_right"> <div class="title_right">
<div class="row"> <div class="row">
<form method="GET" action="{!! url('network_ops') !!}"> <form method="GET" action="{!! url('mnos') !!}">
<div class="col-md-5 col-sm-5 col-xs-12 form-group"> <div class="col-md-5 col-sm-5 col-xs-12 form-group">
<div style="margin-top:1px; margin-right:-90px;" class="top_search"> <div style="margin-top:1px; margin-right:-90px;" class="top_search">
{!! Form::select('filter', $columns, null, ['class' => 'form-control', 'placeholder' => 'Select Filter here']) !!}
</div> </div>
</div> </div>
<div class="col-md-5 col-sm-5 col-xs-12 form-group pull-right top_search" style="margin-top: -2px;"> <div class="col-md-5 col-sm-5 col-xs-12 form-group pull-right top_search" style="margin-top: -2px;">
<div class="input-group"> <div class="input-group">
<input type="text" name="keyword" class="form-control" placeholder="Keyword here..."> <input type="text" name="keyword" class="form-control" id="keywordField" placeholder="Keyword here...">
<span class="input-group-btn"> <span class="input-group-btn">
<button type="submit" class="btn btn-primary" style="color: #fff;" type="button">Go!</button> <button type="submit" class="btn btn-primary" style="color: #fff;" type="button">Go!</button>
</span> </span>
@@ -37,9 +38,7 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
<div class="pull-right"> <div class="pull-right"></div>
<a href="{!! url('network_ops') !!}" class="btn btn-warning btn-xs"><i class="fa fa-refresh"></i> Reset Filter</a>
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -53,57 +52,14 @@
<div class="x_title"> <div class="x_title">
<h2> Network Operators </h2> <h2> Network Operators </h2>
<div class="pull-right"> <div class="pull-right">
<a class="btn btn-primary btn-sm" href="{!! url('network_ops/create') !!}"><i class="fa fa-plus-circle"></i> Add Network Operator <a class="btn btn-primary btn-sm" href="{!! url('mnos/create') !!}"><i class="fa fa-plus-circle"></i> Add Network Operator
</a> </a>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
<div class="x_content"> <div class="x_content">
<div id="mnosTable"></div>
<div class="table-responsive">
<table class="table table-striped ">
<thead>
<tr class="headings">
{{-- <th>#</th> --}}
<th class="column-title">Name</th>
<th class="column-title">Country</th>
<th class="column-title">Account Manager</th>
<th class="column-title no-link last"><span class="nobr">Action</span>
</th>
<th class="bulk-actions" colspan="7">
<a class="antoo" style="color:#fff; font-weight:500;">Bulk Actions ( <span class="action-cnt"> </span> ) <i class="fa fa-chevron-down"></i></a>
</th>
</tr>
</thead>
<tbody>
@if ($network_operators->isEmpty())
<tr>
<td class="" colspan="6">No Records found</td>
</tr>
@else
@foreach ($network_operators as $row)
<tr class="even pointer">
<td class="mes-td" >{{ $row->name }}</td>
<td class="mes-td" >{{ $row->country_info->en_short_name }}</td>
<td class="mes-td" >{{ $row->account_manager_info->name }}</td>
<td class="last" >
<a href="{!! route('network_ops.show', [$row->id]) !!}" class="btn btn-xs btn-info"><i class="fa fa-info-circle"></i></a>
<a href="{!! route('network_ops.edit', [$row->id]) !!}" class="btn btn-xs btn-primary"><i class="fa fa-edit"></i></a>
<a title="Remove Operator" class="btn btn-xs btn-danger removeOperator"><i class="fa fa-trash"></i></a>
<input type="hidden" name="network_operator_id" class="networkOperatorID" value="{{ $row->id }}">
</td>
</tr>
@endforeach
@endif
</tbody>
</table>
</div>
{{ $network_operators->links() }} <br>
Page : {{ $network_operators->currentPage() }} of {{ $network_operators->lastPage() }} |
Total Records : <span id="totalRecords">{{ $network_operators->total() }}</span>
</div> </div>
</div> </div>
</div> </div>
@@ -113,50 +69,84 @@
@endsection @endsection
@section('javascript') @section('javascript')
<script src="{!! url('public/assets/vendors/tabulator/js/tabulator.js') !!}"></script>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function(){ $(document).ready(function(){
//$('select').select2(); function link(cell, formatterParams){
$(".removeOperator").click(function(evt){ var url = cell.getValue();
var recordsTotal = Number($('#totalRecords').text()); var rowID = cell.getData().id
var Rrow = $(this).parents('tr'); return "<a href='"+ base_url + "/mnos/"+rowID+"/edit' class='btn btn-link'>"+url+"</a>";
var theUrl = "{!! url('network_ops/destroy') !!}"; }
var networkOperatorID = $(this).siblings('.networkOperatorID').val(); var table = new Tabulator("#mnosTable", {
var linker = base_url + "/network_ops/" + networkOperatorID; ajaxURL: "mnos/all",
swal({ paginationSize: 15,
title: "Delete Confirmation", layout: "fitColumns",
text: "This will remove the Network Operator completely from the system. Do you want to continue", rowFormatter:function(row){
type: "info", if(row.getData().connection_status == "active"){
showCancelButton: true, //row.getElement().style.backgroundColor = "#1e3b20";
confirmButtonClass: "btn-danger conBtn", row.getElement().style.backgroundColor = "red";
confirmButtonText: "Yes, remove it!", }
showLoaderOnConfirm: true,
closeOnConfirm: false,
closeOnCancel: false
}, },
function(isConfirm){ pagination: "remote",
if (isConfirm) { selectable: false,
$.ajax({ printAsHtml: true,
headers: { ajaxLoaderLoading: $('#logo_spinner').html(),
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') columns: [
{
title: "Name",
field: "networkName",
sorter: "string",
formatter:link,
}, },
type: "DELETE", {
data: { id: networkOperatorID }, title: "Country",
url: base_url + "/network_ops/" + networkOperatorID, field: "country",
success: function(data){ sorter: "string",
if (data.code === 1) { },
$(Rrow).remove(); {
$('#totalRecords').text(recordsTotal - 1); title: "Status",
swal("Deleted!", "Selected Operator has been removed .", "success"); field: "connection_status",
sorter: "string",
formatter:function(cell, formatterParams){
var value = cell.getValue();
if(value == 'Active'){
return "<span style='color:#3FB449; font-weight:bold;'>" + value + "</span>";
} }
if (data.code === 3) { else if(value == 'Pending'){
swal("Not Permitted", "This Operator has transactions! .", "warning"); return "<span style='color:#f0ad4e; font-weight:bold;'>" + value + "</span>";
} }
else if(value == null || value == ''){
//return "None";
return "<span style='color:#d9534f; font-weight:bold;'>Not Specified</span>";
} }
});// end of ajax function else{
} else { return "<span style='color:#d9534f; font-weight:bold;'>" + value + "</span>";
swal("Cancelled", "You cancelled the operation :)", "error");
} }
}},
{
title: "Account Manager",
field: "accountManager",
sorter: "string",
},
{
title: "Last Modified By",
field: "modifiedBy",
sorter: "string",
}
],
rowClick:function(e, row){
var userID = row.getData().id;
console.log(userID);
//$('#userEditModal').modal('show');
},
}); });
$('#keywordField').on('keyup', function(){
console.log('up');
var keyword = $(this).val();
table.setData("mnos/all?keyword=" + keyword);
}); });
}); });
</script> </script>

View File

@@ -0,0 +1,165 @@
@extends('layouts.master')
@section('page_title')
@if(isset($page_title))
{{ $page_title }}
@endif
@endsection
@section('content')
<div class="">
<div class="page-title">
<div class="title_left">
<div class="title_left">
<ol class="breadcrumb">
<li><a href="{!! url('dashboard') !!}">Dashboard</a></li>
<li class="active">Network Operators</li>
</ol>
</div>
</div>
<div class="title_right">
<div class="row">
<form method="GET" action="{!! url('network_ops') !!}">
<div class="col-md-5 col-sm-5 col-xs-12 form-group">
<div style="margin-top:1px; margin-right:-90px;" class="top_search">
{!! Form::select('filter', $columns, null, ['class' => 'form-control', 'placeholder' => 'Select Filter here']) !!}
</div>
</div>
<div class="col-md-5 col-sm-5 col-xs-12 form-group pull-right top_search" style="margin-top: -2px;">
<div class="input-group">
<input type="text" name="keyword" class="form-control" placeholder="Keyword here...">
<span class="input-group-btn">
<button type="submit" class="btn btn-primary" style="color: #fff;" type="button">Go!</button>
</span>
</div>
</div>
</form>
</div>
<div class="row">
<div class="col-sm-12">
<div class="pull-right">
<a href="{!! url('network_ops') !!}" class="btn btn-warning btn-xs"><i class="fa fa-refresh"></i> Reset Filter</a>
</div>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
@include('commons.notifications')
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2> Network Operators </h2>
<div class="pull-right">
<a class="btn btn-primary btn-sm" href="{!! url('network_ops/create') !!}"><i class="fa fa-plus-circle"></i> Add Network Operator
</a>
</div>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="table-responsive">
<table class="table table-striped ">
<thead>
<tr class="headings">
{{-- <th>#</th> --}}
<th class="column-title">Name</th>
<th class="column-title">Country</th>
<th class="column-title">Account Manager</th>
<th class="column-title no-link last"><span class="nobr">Action</span>
</th>
<th class="bulk-actions" colspan="7">
<a class="antoo" style="color:#fff; font-weight:500;">Bulk Actions ( <span class="action-cnt"> </span> ) <i class="fa fa-chevron-down"></i></a>
</th>
</tr>
</thead>
<tbody>
@if ($network_operators->isEmpty())
<tr>
<td class="" colspan="6">No Records found</td>
</tr>
@else
@foreach ($network_operators as $row)
<tr class="even pointer">
<td class="mes-td" >{{ $row->name }}</td>
<td class="mes-td" >{{ $row->country_info->en_short_name }}</td>
<td class="mes-td" >{{ $row->account_manager_info->name }}</td>
<td class="last" >
<a href="{!! route('network_ops.show', [$row->id]) !!}" class="btn btn-xs btn-info"><i class="fa fa-info-circle"></i></a>
<a href="{!! route('network_ops.edit', [$row->id]) !!}" class="btn btn-xs btn-primary"><i class="fa fa-edit"></i></a>
<a title="Remove Operator" class="btn btn-xs btn-danger removeOperator"><i class="fa fa-trash"></i></a>
<input type="hidden" name="network_operator_id" class="networkOperatorID" value="{{ $row->id }}">
</td>
</tr>
@endforeach
@endif
</tbody>
</table>
</div>
{{ $network_operators->links() }} <br>
Page : {{ $network_operators->currentPage() }} of {{ $network_operators->lastPage() }} |
Total Records : <span id="totalRecords">{{ $network_operators->total() }}</span>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('javascript')
<script type="text/javascript">
$(document).ready(function(){
//$('select').select2();
$(".removeOperator").click(function(evt){
var recordsTotal = Number($('#totalRecords').text());
var Rrow = $(this).parents('tr');
var theUrl = "{!! url('network_ops/destroy') !!}";
var networkOperatorID = $(this).siblings('.networkOperatorID').val();
var linker = base_url + "/network_ops/" + networkOperatorID;
swal({
title: "Delete Confirmation",
text: "This will remove the Network Operator completely from the system. Do you want to continue",
type: "info",
showCancelButton: true,
confirmButtonClass: "btn-danger conBtn",
confirmButtonText: "Yes, remove it!",
showLoaderOnConfirm: true,
closeOnConfirm: false,
closeOnCancel: false
},
function(isConfirm){
if (isConfirm) {
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
type: "DELETE",
data: { id: networkOperatorID },
url: base_url + "/network_ops/" + networkOperatorID,
success: function(data){
if (data.code === 1) {
$(Rrow).remove();
$('#totalRecords').text(recordsTotal - 1);
swal("Deleted!", "Selected Operator has been removed .", "success");
}
if (data.code === 3) {
swal("Not Permitted", "This Operator has transactions! .", "warning");
}
}
});// end of ajax function
} else {
swal("Cancelled", "You cancelled the operation :)", "error");
}
});
});
});
</script>
@endsection

View File

@@ -0,0 +1,61 @@
<div class="modal fade" id="newIpModal" tabindex="-1" role="dialog" aria-labelledby="paymentModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<!-- <h4 class="modal-title">Default Modal</h4> -->
<h5 class="modal-title text-center" id="paymentModalLabelHeading">IP Addresses</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="hidden" id="ipNotifyArea"></div>
<form class="form-vertical" method="POST" id="newIpForm" action="{{ url('clients/finance_store') }}">
{{ csrf_field() }}
<input type="hidden" name="mno_id" id="mnoID" value="{{ $network_arr->id }}">
<div class="row">
<div class="form-group">
<div class="col-md-12">
<label for="service">Service *</label>
{!! Form::select('service', $services , old('service'), ['class' => 'form-control' , 'id' => 'service', 'placeholder' => 'Select Service', 'required' => 'required', 'style' => 'width: 100%']) !!}
</div>
</div>
<div class="form-group" >
<div class="col-md-12" style="padding-bottom: 5px;">
<label for="ip">IP Address *</label>
<input type="text" class="form-control" name="ip_address" id="invoiceNumber" required >
</div>
</div>
<div class="form-group" >
<div class="col-md-12" style="padding-bottom: 5px;">
<label for="port">Port</label>
<input type="number" class="form-control" name="port" id="port" >
</div>
</div>
<div class="form-group">
<div class="col-md-12" style="padding-bottom: 5px">
<label for="status">Status *</label>
{!! Form::select('status', [ 'ACTIVE' => 'ACTIVE', 'INACTIVE' => 'INACTIVE'] , old('status'), ['class' => 'form-control' , 'id' => 'invoiceStatus', 'required' => 'required', 'placeholder' => '', 'style' => 'width: 100%']) !!}
</div>
</div>
<div class="form-group" style="margin-bottom: 0.2rem; padding-bottom: 5px; padding-top: 5px;">
<div class="col-md-12" style="padding-bottom: 10px;">
<button type="submit" class="btn btn-success btn-block updateBtn"> <i class="fa fa-send"></i> Submit</button>
</div>
</div>
<div class="form-group" style="margin-bottom: 0.5rem; padding-bottom: 5px; padding-top: 5px;">
<div class="col-md-12">
<button type="button" class="btn btn-dark btn-block" data-dismiss="modal"><i class="fa fa-close"></i> Close</button>
</div>
</div>
</div>
</form>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->

View File

@@ -0,0 +1,94 @@
@extends('layouts.master')
@section('page_title')
@if(isset($page_title))
{{ $page_title }}
@endif
@endsection
@section('content')
<div class="">
<div class="page-title">
<div class="title_left" style="width:800px !important;">
<ol class="breadcrumb">
<li><a href="{!! url('dashboard') !!}">Dashboard</a></li>
<li class="active"><a href="{!! url('senderids') !!}">Sender IDs</a></li>
<li class="active">New Sender ID</li>
</ol>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
New Sender ID
@include('commons.notifications')
<div class="clearfix"></div>
</div>
{{-- start of content --}}
<div class="x_content">
<br>
{!! Form::open(['url' => 'senderids', 'class' => 'form-horizontal form-label-left']) !!}
<div class="row">
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="senderIDD">Sender ID</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('senderid') ? 'has-error' : ''}}">
{!! Form::text('senderid', old('senderid'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter sender ID' , 'id' => 'senderIDD', 'required' => 'true']) !!}
{!! $errors->first('name', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="clientID">Client</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('name') ? 'has-error' : ''}}">
{!! Form::select('client_id', $clients, old('client_id'), ['class' => 'form-control', 'placeholder'=>'Select Client' , 'id' => 'clientID', 'required' => 'true']) !!}
{!! $errors->first('client_id', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="status">Status</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('status') ? 'has-error' : ''}}">
{!! Form::select('status', $status ,old('status'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Select Status ' , 'id' => 'status', 'required' => 'true']) !!}
{!! $errors->first('status', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="network">Network</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('network') ? 'has-error' : ''}}">
{!! Form::select('network_id', $network_arr, old('network_id'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Select Network ' , 'id' => 'network', 'required' => 'true']) !!}
{!! $errors->first('network', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="remarks">Remarks</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('remarks') ? 'has-error' : ''}}">
{!! Form::text('remarks', old('remarks'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter remarks here' , 'id' => 'remarks']) !!}
{!! $errors->first('remarks', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="ln_solid"></div>
<div class="form-group">
<div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
<button type="submit" class="btn btn-success btn-block"><i class="fa fa-save"></i> Submit</button>
</div>
</div>
{!! Form::close() !!}
</div>
{{-- end of x_content --}}
</div>
{{-- end of x_panel --}}
</div>
</div>
</div>
@endsection
@section('javascript')
<script type="text/javascript">
$(function(){
$('select').select2();
});
</script>
@endsection

View File

@@ -0,0 +1,98 @@
@extends('layouts.master')
@section('page_title')
@if(isset($page_title))
{{ $page_title }}
@endif
@endsection
@section('content')
<div class="">
<div class="page-title">
<div class="title_left" style="width:800px !important;">
<ol class="breadcrumb">
<li><a href="{!! url('dashboard') !!}">Dashboard</a></li>
<li class="active"><a href="{!! url('senderids') !!}">Sender IDs</a></li>
<li class="active">Update Sender ID</li>
</ol>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
Update Sender ID
@include('commons.notifications')
<div class="clearfix"></div>
</div>
{{-- start of content --}}
<div class="x_content">
<br>
{!! Form::model($senderid, [
'method' => 'PATCH',
'url' => ['senderids', $senderid],
'class' => 'form-horizontal form-label-left'
]) !!}
<div class="row">
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="senderIDD">Sender ID</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('senderid') ? 'has-error' : ''}}">
{!! Form::text('senderid', old('senderid'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter sender ID' , 'id' => 'senderIDD', 'required' => 'true']) !!}
{!! $errors->first('name', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="clientID">Client</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('name') ? 'has-error' : ''}}">
{!! Form::select('client_id', $clients, old('client_id'), ['class' => 'form-control', 'placeholder'=>'Select Client' , 'id' => 'clientID', 'required' => 'true']) !!}
{!! $errors->first('client_id', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="status">Status</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('status') ? 'has-error' : ''}}">
{!! Form::select('status', $status ,old('status'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Select Status ' , 'id' => 'status', 'required' => 'true']) !!}
{!! $errors->first('status', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="network">Network</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('network') ? 'has-error' : ''}}">
{!! Form::select('network_id', $network_arr, old('network_id'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Select Network ' , 'id' => 'network', 'required' => 'true']) !!}
{!! $errors->first('network', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="remarks">Remarks</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('remarks') ? 'has-error' : ''}}">
{!! Form::text('remarks', old('remarks'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter remarks here' , 'id' => 'remarks']) !!}
{!! $errors->first('remarks', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="ln_solid"></div>
<div class="form-group">
<div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
<button type="submit" class="btn btn-success btn-block"><i class="fa fa-save"></i> Submit</button>
</div>
</div>
{!! Form::close() !!}
</div>
{{-- end of x_content --}}
</div>
{{-- end of x_panel --}}
</div>
</div>
</div>
@endsection
@section('javascript')
<script type="text/javascript">
$(function(){
$('select').select2();
});
</script>
@endsection

View File

@@ -0,0 +1,143 @@
@extends('layouts.master')
@section('page_title')
@if(isset($page_title))
{{ $page_title }}
@endif
@endsection
@section('css')
<link href="{!! url('public/assets/vendors/tabulator/css/bootstrap/tabulator_bootstrap.css') !!}" type="text/css" rel="stylesheet">
@endsection
@section('content')
<div class="">
<div class="page-title">
<div class="title_left">
<div class="title_left">
<ol class="breadcrumb">
<li><a href="{!! url('dashboard') !!}">Dashboard</a></li>
<li class="active">Sender IDs</li>
</ol>
</div>
</div>
<div class="title_right">
<div class="row">
<form method="GET" action="{!! url('senderids') !!}">
<div class="col-md-5 col-sm-5 col-xs-12 form-group">
<div style="margin-top:1px; margin-right:-90px;" class="top_search">
</div>
</div>
<div class="col-md-5 col-sm-5 col-xs-12 form-group pull-right top_search" style="margin-top: -2px;">
<div class="input-group">
<input type="text" name="keyword" class="form-control" id="keywordField" placeholder="Keyword here...">
<span class="input-group-btn">
<button type="submit" class="btn btn-primary" style="color: #fff;" type="button">Go!</button>
</span>
</div>
</div>
</form>
</div>
<div class="row">
<div class="col-sm-12">
<div class="pull-right"></div>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
@include('commons.notifications')
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2> Sender IDs </h2>
<div class="pull-right">
<a class="btn btn-primary btn-sm" href="{!! url('senderids/create') !!}"><i class="fa fa-plus-circle"></i> New Sender ID</a>
</div>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div id="senderIdsTable"></div>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('javascript')
<script src="{!! url('public/assets/vendors/tabulator/js/tabulator.js') !!}"></script>
<script type="text/javascript">
$(document).ready(function(){
function link(cell, formatterParams){
var url = cell.getValue();
var rowID = cell.getData().id
return "<a href='"+ base_url + "/senderids/"+rowID+"/edit' class='btn btn-link'>"+url+"</a>";
}
var table = new Tabulator("#senderIdsTable", {
ajaxURL: "senderids/all",
paginationSize: 15,
layout: "fitColumns",
pagination: "remote",
selectable: false,
printAsHtml: true,
ajaxLoaderLoading: $('#logo_spinner').html(),
columns: [
{
title: "Client",
field: "clientName",
sorter: "string",
formatter:link,
},
{
title: "Sender ID",
field: "senderid",
sorter: "string",
},
{
title: "Status",
field: "status",
sorter: "string",
},
{
title: "Network",
field: "networkName",
sorter: "string",
},
{
title: "Country",
field: "country",
sorter: "string",
},
{
title: "Created By",
field: "createdBy",
sorter: "string",
},
{
title: "Last Modified By",
field: "modifiedBy",
sorter: "string",
}
],
rowClick:function(e, row){
var userID = row.getData().id;
console.log(userID);
//$('#userEditModal').modal('show');
},
});
$('#keywordField').on('keyup', function(){
console.log('up');
var keyword = $(this).val();
table.setData("senderids/all?keyword=" + keyword);
});
});
</script>
@endsection

View File

@@ -0,0 +1,122 @@
@extends('layouts.master')
@section('page_title')
@if(isset($page_title))
{{ $page_title }}
@endif
@endsection
@section('content')
<div class="">
<div class="page-title">
<div class="title_left" style="width:800px !important;">
<ol class="breadcrumb">
<li><a href="{!! url('dashboard') !!}">Dashboard</a></li>
<li class="active"><a href="{!! url('staffmembers') !!}">Team Members</a></li>
<li class="active">New Team Member</li>
</ol>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
New Team Member
@include('commons.notifications')
<div class="clearfix"></div>
</div>
{{-- start of content --}}
<div class="x_content">
<br>
{!! Form::open(['url' => 'staffmembers', 'class' => 'form-horizontal form-label-left']) !!}
<div class="row">
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="staffName">Name</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('name') ? 'has-error' : ''}}">
{!! Form::text('name', old('name'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Full Name' , 'id' => 'staffName', 'required' => 'true']) !!}
{!! $errors->first('name', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="gender">Gender</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('gender') ? 'has-error' : ''}}">
{!! Form::select('gender', $gender_arr, old('gender'), ['class' => 'form-control', 'placeholder'=>'Select Gender' , 'id' => 'gender', 'required' => 'true']) !!}
{!! $errors->first('gender', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="email">Phone</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('phone') ? 'has-error' : ''}}">
{!! Form::text('phone', old('phone'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Mobile Number' , 'id' => 'phone', 'required' => 'true']) !!}
{!! $errors->first('phone', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="email">Email</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('email') ? 'has-error' : ''}}">
{!! Form::text('email', old('email'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Email Address' , 'id' => 'email', 'required' => 'true']) !!}
{!! $errors->first('email', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="staffName">Personal Email</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('personalEmail') ? 'has-error' : ''}}">
{!! Form::text('personal_email', old('personal_email'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Personal Email' , 'id' => 'personalEmail', 'required' => 'true']) !!}
{!! $errors->first('personal_email', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="departmentID">Department</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('name') ? 'has-error' : ''}}">
{!! Form::select('department_id', $departments, old('department_id'), ['class' => 'form-control', 'placeholder'=>'Select Department' , 'id' => 'departmentID', 'required' => 'true']) !!}
{!! $errors->first('department_id', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="status">Status</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('status') ? 'has-error' : ''}}">
{!! Form::select('status', $status ,old('status'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Select Status ' , 'id' => 'status', 'required' => 'true']) !!}
{!! $errors->first('status', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="locationCountry">Country</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('network') ? 'has-error' : ''}}">
{!! Form::select('location_country', $countries, old('location_country'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Select Country ' , 'id' => 'locationCountry', 'required' => 'true']) !!}
{!! $errors->first('location_country', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="hireDate">Hire Date</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('hire_date') ? 'has-error' : ''}}">
{!! Form::text('hire_date', old('hire_date'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Hire Date' , 'id' => 'hireDate']) !!}
{!! $errors->first('hire_date', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="ln_solid"></div>
<div class="form-group">
<div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
<button type="submit" class="btn btn-success btn-block"><i class="fa fa-save"></i> Submit</button>
</div>
</div>
{!! Form::close() !!}
</div>
{{-- end of x_content --}}
</div>
{{-- end of x_panel --}}
</div>
</div>
</div>
@endsection
@section('javascript')
<script type="text/javascript">
$(function(){
$('select').select2();
});
</script>
@endsection

View File

@@ -0,0 +1,127 @@
@extends('layouts.master')
@section('page_title')
@if(isset($page_title))
{{ $page_title }}
@endif
@endsection
@section('content')
<div class="">
<div class="page-title">
<div class="title_left" style="width:800px !important;">
<ol class="breadcrumb">
<li><a href="{!! url('dashboard') !!}">Dashboard</a></li>
<li class="active"><a href="{!! url('staffmembers') !!}">Team Members</a></li>
<li class="active">Update Team Member Details</li>
</ol>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
Update Team Details
@include('commons.notifications')
<div class="clearfix"></div>
</div>
{{-- start of content --}}
<div class="x_content">
<br>
{!! Form::model($staff_member, [
'method' => 'PATCH',
'url' => ['staffmembers', $staff_member->id],
'class' => 'form-horizontal form-label-left'
]) !!}
<div class="row">
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="staffName">Name</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('staffmembers') ? 'has-error' : ''}}">
{!! Form::text('name', old('name'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Full Name' , 'id' => 'staffName', 'required' => 'true']) !!}
{!! $errors->first('name', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="gender">Gender</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('gender') ? 'has-error' : ''}}">
{!! Form::select('gender', $gender_arr, old('gender'), ['class' => 'form-control', 'placeholder'=>'Select Gender' , 'id' => 'gender', 'required' => 'true']) !!}
{!! $errors->first('gender', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="email">Phone</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('phone') ? 'has-error' : ''}}">
{!! Form::text('phone', old('phone'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Mobile Number' , 'id' => 'phone', 'required' => 'true']) !!}
{!! $errors->first('phone', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="email">Email</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('email') ? 'has-error' : ''}}">
{!! Form::text('email', old('email'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Email Address' , 'id' => 'email', 'required' => 'true']) !!}
{!! $errors->first('email', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="staffName">Personal Email</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('personalEmail') ? 'has-error' : ''}}">
{!! Form::text('personal_email', old('personal_email'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Personal Email' , 'id' => 'personalEmail', 'required' => 'true']) !!}
{!! $errors->first('personal_email', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="departmentID">Department</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('name') ? 'has-error' : ''}}">
{!! Form::select('department_id', $departments, old('department_id'), ['class' => 'form-control', 'placeholder'=>'Select Department' , 'id' => 'departmentID', 'required' => 'true']) !!}
{!! $errors->first('department_id', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="status">Status</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('status') ? 'has-error' : ''}}">
{!! Form::select('status', $status ,old('status'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Select Status ' , 'id' => 'status', 'required' => 'true']) !!}
{!! $errors->first('status', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="locationCountry">Country</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('network') ? 'has-error' : ''}}">
{!! Form::select('location_country', $countries, old('location_country'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Select Country ' , 'id' => 'locationCountry', 'required' => 'true']) !!}
{!! $errors->first('location_country', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="hireDate">Hire Date</label>
<div class="col-md-6 col-sm-6 col-xs-12 {{ $errors->has('hire_date') ? 'has-error' : ''}}">
{!! Form::text('hire_date', old('hire_date'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter Hire Date' , 'id' => 'hireDate']) !!}
{!! $errors->first('hire_date', '<p class="help-block">:message</p>') !!}
</div>
</div>
<div class="ln_solid"></div>
<div class="form-group">
<div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
<button type="submit" class="btn btn-success btn-block"><i class="fa fa-save"></i> Submit</button>
</div>
</div>
{!! Form::close() !!}
</div>
{{-- end of x_content --}}
</div>
{{-- end of x_panel --}}
</div>
</div>
</div>
@endsection
@section('javascript')
<script type="text/javascript">
$(function(){
$('select').select2();
});
</script>
@endsection

View File

@@ -0,0 +1,141 @@
@extends('layouts.master')
@section('page_title')
@if(isset($page_title))
{{ $page_title }}
@endif
@endsection
@section('css')
<link href="{!! url('public/assets/vendors/tabulator/css/bootstrap/tabulator_bootstrap.css') !!}" type="text/css" rel="stylesheet">
@endsection
@section('content')
<div class="">
<div class="page-title">
<div class="title_left">
<div class="title_left">
<ol class="breadcrumb">
<li><a href="{!! url('dashboard') !!}">Dashboard</a></li>
<li class="active">Team Members</li>
</ol>
</div>
</div>
<div class="title_right">
<div class="row">
<form method="GET" action="{!! url('staffmembers') !!}">
<div class="col-md-5 col-sm-5 col-xs-12 form-group">
<div style="margin-top:1px; margin-right:-90px;" class="top_search">
</div>
</div>
<div class="col-md-5 col-sm-5 col-xs-12 form-group pull-right top_search" style="margin-top: -2px;">
<div class="input-group">
<input type="text" name="keyword" class="form-control" id="keywordField" placeholder="Keyword here...">
<span class="input-group-btn">
<button type="submit" class="btn btn-primary" style="color: #fff;" type="button">Go!</button>
</span>
</div>
</div>
</form>
</div>
<div class="row">
<div class="col-sm-12">
<div class="pull-right"></div>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
@include('commons.notifications')
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2> Team Members </h2>
<div class="pull-right">
<a class="btn btn-primary btn-sm" href="{!! url('staffmembers/create') !!}"><i class="fa fa-plus-circle"></i> New Staff Member</a>
</div>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div id="staffMembersTable"></div>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('javascript')
<script src="{!! url('public/assets/vendors/tabulator/js/tabulator.js') !!}"></script>
<script type="text/javascript">
$(document).ready(function(){
function link(cell, formatterParams){
var url = cell.getValue();
var rowID = cell.getData().id
return "<a href='"+ base_url + "/staffmembers/"+rowID+"/edit' class='btn btn-link'>"+url+"</a>";
}
var table = new Tabulator("#staffMembersTable", {
ajaxURL: "staffmembers/all",
paginationSize: 15,
layout: "fitColumns",
pagination: "remote",
selectable: false,
printAsHtml: true,
ajaxLoaderLoading: $('#logo_spinner').html(),
columns: [
{
title: "Name",
field: "name",
sorter: "string",
formatter:link,
},
{
title: "Email",
field: "email",
sorter: "string",
},
{
title: "Phone",
field: "phone",
sorter: "string",
},
{
title: "Department",
field: "deptName",
sorter: "string",
},
{
title: "Status",
field: "status",
sorter: "string",
},
{
title: "Country",
field: "location_country",
sorter: "string",
},
{
title: "Hire Date",
field: "hire_date",
sorter: "string",
}
],
rowClick:function(e, row){
var userID = row.getData().id;
console.log(userID);
//$('#userEditModal').modal('show');
},
});
$('#keywordField').on('keyup', function(){
console.log('up');
var keyword = $(this).val();
table.setData("staffmembers/all?keyword=" + keyword);
});
});
</script>
@endsection

View File

@@ -19,6 +19,7 @@ Auth::routes();
Route::get('/home', 'HomeController@index')->name('home'); Route::get('/home', 'HomeController@index')->name('home');
*/ */
//Route::post('ipstore', 'NetworkOperatorsController@ipStore');
Route::get('testemail', 'UtilityController@EmailTest'); Route::get('testemail', 'UtilityController@EmailTest');
@@ -41,10 +42,22 @@ Route::group(['middleware' => ['checklogin']], function(){
Route::get('dashboard', 'DashboardController@index'); Route::get('dashboard', 'DashboardController@index');
Route::get('reportdetails/{id}', 'MeetingReportsController@showDetails'); Route::get('reportdetails/{id}', 'MeetingReportsController@showDetails');
Route::resource('network_ops', 'NetworkOperatorsController'); Route::get('mnos/all', 'NetworkOperatorsController@getMnosJson');
Route::post('mnos/ip_store', 'NetworkOperatorsController@ipStore');
Route::resource('mnos', 'NetworkOperatorsController');
Route::resource('services', 'ServicesController'); Route::resource('services', 'ServicesController');
Route::get('senderids/all', 'SenderIdController@getSenderIdsJson');
Route::resource('senderids', 'SenderIdController');
Route::get('staffmembers/all', 'StaffMembersController@getstaffMemberssJson');
Route::resource('staffmembers', 'StaffMembersController');
Route::get('clients/downloadfile/{id}', 'ClientsController@getClientFile');
Route::post('clients/shortcode_store', 'ClientsController@shortcodeStore'); Route::post('clients/shortcode_store', 'ClientsController@shortcodeStore');
Route::post('clients/notes_store', 'ClientsController@notesStore'); Route::post('clients/notes_store', 'ClientsController@notesStore');
Route::post('clients/finance_store', 'ClientsController@financeStore'); Route::post('clients/finance_store', 'ClientsController@financeStore');
@@ -54,6 +67,7 @@ Route::group(['middleware' => ['checklogin']], function(){
Route::get('clients/create-notes', 'ClientsController@createNotes'); Route::get('clients/create-notes', 'ClientsController@createNotes');
Route::get('clients/shortcodes', 'ClientsController@getShortCodes'); Route::get('clients/shortcodes', 'ClientsController@getShortCodes');
Route::get('clients/readonly/{id}', 'ClientsController@showReadonly');
Route::get('clients/all', 'ClientsController@getClientJson'); Route::get('clients/all', 'ClientsController@getClientJson');
Route::post('clients/raw', 'ClientsController@getClientJsonRawJs'); Route::post('clients/raw', 'ClientsController@getClientJsonRawJs');
Route::get('clients/indexrawjs', 'ClientsController@indexRawJs'); Route::get('clients/indexrawjs', 'ClientsController@indexRawJs');
@@ -93,9 +107,5 @@ Route::group(['middleware' => ['checklogin']], function(){
Route::resource('clickapps', 'ClickAppsController'); Route::resource('clickapps', 'ClickAppsController');
Route::resource('marketreport', 'MarketerReportController'); Route::resource('marketreport', 'MarketerReportController');
}); });