bug fixes and new additions
@@ -1,4 +1,4 @@
|
|||||||
# URL
|
F# URL
|
||||||
- http://206.225.84.201/general/team_tracker
|
- http://206.225.84.201/general/team_tracker
|
||||||
|
|
||||||
# Email
|
# Email
|
||||||
@@ -55,3 +55,7 @@ app password: sqczcsrtcehpywjv
|
|||||||
|
|
||||||
- daniel
|
- daniel
|
||||||
- theCitadel@111
|
- theCitadel@111
|
||||||
|
|
||||||
|
|
||||||
|
- andrew
|
||||||
|
- blacktone@900
|
||||||
@@ -30,6 +30,14 @@ class ClientsController extends Controller
|
|||||||
];
|
];
|
||||||
return view('client.index-tabulator', $data);
|
return view('client.index-tabulator', $data);
|
||||||
}
|
}
|
||||||
|
public function indexInactive(){
|
||||||
|
$data = [
|
||||||
|
'page_title' => 'Inactive Clients',
|
||||||
|
'current_user' => session('current_user')
|
||||||
|
];
|
||||||
|
// dd('foo bar');
|
||||||
|
return view('client.index-inactive', $data);
|
||||||
|
}
|
||||||
public function indexBak(){
|
public function indexBak(){
|
||||||
$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(10);
|
||||||
@@ -73,6 +81,7 @@ class ClientsController extends Controller
|
|||||||
->join('auth_users AS aumngr', 'aumngr.id', '=', 'clients.auth_user_id')
|
->join('auth_users AS aumngr', 'aumngr.id', '=', 'clients.auth_user_id')
|
||||||
->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by')
|
->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by')
|
||||||
->select('clients.id', 'clients.name', 'clients.status', 'clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy')
|
->select('clients.id', 'clients.name', 'clients.status', 'clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy')
|
||||||
|
|
||||||
->paginate(10);
|
->paginate(10);
|
||||||
|
|
||||||
if($request->has('keyword')){
|
if($request->has('keyword')){
|
||||||
@@ -87,6 +96,56 @@ class ClientsController extends Controller
|
|||||||
return response()->json($client_arr);
|
return response()->json($client_arr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getInactiveClientJson(Request $request){
|
||||||
|
|
||||||
|
$client_arr = \DB::table('clients')
|
||||||
|
->join('auth_users AS aumngr', 'aumngr.id', '=', 'clients.auth_user_id')
|
||||||
|
->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by')
|
||||||
|
->join('flags AS flags', 'flags.country', '=', 'clients.country')
|
||||||
|
->select('clients.id', 'clients.name', 'clients.status','clients.progress_indicator_score', 'clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy', 'flags.url AS theflag')
|
||||||
|
->whereRaw("status = 'inactive'")
|
||||||
|
->orderBy('name', 'ASC')
|
||||||
|
->get();
|
||||||
|
// ->paginate(15);
|
||||||
|
|
||||||
|
if($request->has('keyword')){
|
||||||
|
$keyword = $request->keyword;
|
||||||
|
$client_arr = \DB::table('clients')
|
||||||
|
->join('auth_users AS aumngr', 'aumngr.id', '=', 'clients.auth_user_id')
|
||||||
|
->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by')
|
||||||
|
->join('flags AS flags', 'flags.country', '=', 'clients.country')
|
||||||
|
->select('clients.id','clients.name', 'clients.status', 'clients.progress_indicator_score','clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy', 'flags.url AS theflag')
|
||||||
|
->whereRaw("status = 'inactive'")
|
||||||
|
->whereRaw("clients.name like '%$keyword%' or clients.status like '%$keyword%' OR clients.country like '%$keyword%' OR aumngr.name like '%$keyword%' OR aumodify.name like '%$keyword%' OR clients.progress_indicator_score like '%$keyword%'")
|
||||||
|
->orderBy('name', 'ASC')
|
||||||
|
->get();
|
||||||
|
// ->paginate(15);
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json($client_arr);
|
||||||
|
}
|
||||||
|
public function getInacticeClientJsonRawJs(Request $request){
|
||||||
|
$client_arr = \DB::table('clients')
|
||||||
|
->join('auth_users AS aumngr', 'aumngr.id', '=', 'clients.auth_user_id')
|
||||||
|
->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by')
|
||||||
|
->select('clients.id', 'clients.name', 'clients.status', 'clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy')
|
||||||
|
->whereRaw("status = 'inactive'")
|
||||||
|
->paginate(10);
|
||||||
|
|
||||||
|
if($request->has('keyword')){
|
||||||
|
$keyword = $request->keyword;
|
||||||
|
$client_arr = \DB::table('clients')
|
||||||
|
->join('auth_users AS aumngr', 'aumngr.id', '=', 'clients.auth_user_id')
|
||||||
|
->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by')
|
||||||
|
->select('clients.id','clients.name', 'clients.status', 'clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy')
|
||||||
|
// ->where('status', 'inactive')
|
||||||
|
->whereRaw("status = 'inactive'")
|
||||||
|
->whereRaw("clients.name like '%$keyword%' or clients.status like '%$keyword%' OR clients.country like '%$keyword%' OR aumngr.name like '%$keyword%' OR aumodify.name like '%$keyword%'")
|
||||||
|
->paginate(10);
|
||||||
|
}
|
||||||
|
return response()->json($client_arr);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the form for creating a new resource.
|
* Show the form for creating a new resource.
|
||||||
@@ -99,7 +158,7 @@ class ClientsController extends Controller
|
|||||||
$service_type = Models\Service::pluck('name', 'name');
|
$service_type = Models\Service::pluck('name', 'name');
|
||||||
$payment_type = ['Prepaid' => 'Prepaid', 'Postpaid' => 'Postpaid']; //Models\PaymentType::pluck('name', 'id');
|
$payment_type = ['Prepaid' => 'Prepaid', 'Postpaid' => 'Postpaid']; //Models\PaymentType::pluck('name', 'id');
|
||||||
$auth_users = Models\SystemUser::pluck('name', 'id');
|
$auth_users = Models\SystemUser::pluck('name', 'id');
|
||||||
$status = ['Live' => 'Live', 'inactive' => 'Inactive', 'Prospective' => 'Prospective'];
|
$status = ['Live' => 'Live', 'inactive' => 'Inactive', 'Prospective' => 'Prospective', 'Cancelled' => 'Cancelled'];
|
||||||
$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', 'Hybrid' => 'Hybrid'];
|
||||||
$industries = Models\Industry::orderBy('name', 'ASC')->pluck('name', 'name');
|
$industries = Models\Industry::orderBy('name', 'ASC')->pluck('name', 'name');
|
||||||
@@ -669,6 +728,7 @@ class ClientsController extends Controller
|
|||||||
'Telkom Kenya' => 'Telkom Kenya',
|
'Telkom Kenya' => 'Telkom Kenya',
|
||||||
'Orange Kenya' => 'Orange Kenya'
|
'Orange Kenya' => 'Orange Kenya'
|
||||||
];
|
];
|
||||||
|
// dd($networks_raw);
|
||||||
//->where('highlight', 'NO')
|
//->where('highlight', 'NO')
|
||||||
$show_notes = Models\ClientNote::with('created_by_info', 'client_info')->where('client_id', $id)->orderBy('created_at', 'DESC')->get()->take(20);
|
$show_notes = Models\ClientNote::with('created_by_info', 'client_info')->where('client_id', $id)->orderBy('created_at', 'DESC')->get()->take(20);
|
||||||
$show_notes_highlight = Models\ClientNote::with('created_by_info', 'client_info')->where('client_id', $id)->where('highlight', 'YES')->orderBy('created_at', 'DESC')->get()->take(1);
|
$show_notes_highlight = Models\ClientNote::with('created_by_info', 'client_info')->where('client_id', $id)->where('highlight', 'YES')->orderBy('created_at', 'DESC')->get()->take(1);
|
||||||
@@ -684,7 +744,7 @@ class ClientsController extends Controller
|
|||||||
$support_fees = Models\ClientSupportFees::where('client_id', $id)->orderBy('id', 'DESC')->get();
|
$support_fees = Models\ClientSupportFees::where('client_id', $id)->orderBy('id', 'DESC')->get();
|
||||||
|
|
||||||
$showdocuments = Models\ClientFile::where('client_id', $id)->get();
|
$showdocuments = Models\ClientFile::where('client_id', $id)->get();
|
||||||
$client_sender_ids = Models\SenderId::with('network_info', 'created_by_info')->where('client_id', $id)->orderBy('senderid', 'ASC')->get();
|
//$client_sender_ids = Models\SenderId::with('network_info', 'created_by_info')->where('client_id', $id)->orderBy('senderid', 'ASC')->get();
|
||||||
// dd($showdocuments[0]->name);
|
// dd($showdocuments[0]->name);
|
||||||
if ($showclient->status == 'Live') {
|
if ($showclient->status == 'Live') {
|
||||||
$status_bg = "info";
|
$status_bg = "info";
|
||||||
@@ -695,7 +755,7 @@ class ClientsController extends Controller
|
|||||||
else{
|
else{
|
||||||
$status_bg = "danger";
|
$status_bg = "danger";
|
||||||
}
|
}
|
||||||
|
// dd($showclient->progress_indicator_score);
|
||||||
if ($showclient->progress_indicator_score >= 70) {
|
if ($showclient->progress_indicator_score >= 70) {
|
||||||
$progress_status_bg = "success";
|
$progress_status_bg = "success";
|
||||||
}
|
}
|
||||||
@@ -705,7 +765,7 @@ class ClientsController extends Controller
|
|||||||
else{
|
else{
|
||||||
$progress_status_bg = "danger";
|
$progress_status_bg = "danger";
|
||||||
}
|
}
|
||||||
|
// dump($progress_status_bg);
|
||||||
|
|
||||||
$renewal_due = 'N/A';
|
$renewal_due = 'N/A';
|
||||||
$highlight_colour = 'none';
|
$highlight_colour = 'none';
|
||||||
@@ -777,8 +837,8 @@ class ClientsController extends Controller
|
|||||||
'showdocuments' => $showdocuments,
|
'showdocuments' => $showdocuments,
|
||||||
'support_fees' => $support_fees,
|
'support_fees' => $support_fees,
|
||||||
'recurring_arr' => $recurring_arr,
|
'recurring_arr' => $recurring_arr,
|
||||||
'client_sender_ids' => $client_sender_ids,
|
// 'client_sender_ids' => $client_sender_ids,
|
||||||
'sender_id_statuses' => $sender_id_statuses,
|
// 'sender_id_statuses' => $sender_id_statuses,
|
||||||
'country_network_arr' => $country_networks,
|
'country_network_arr' => $country_networks,
|
||||||
'mnos_arr' => ['' => '-- Select Country first --']
|
'mnos_arr' => ['' => '-- Select Country first --']
|
||||||
];
|
];
|
||||||
@@ -787,8 +847,8 @@ class ClientsController extends Controller
|
|||||||
// dd($value->network_info->name);
|
// dd($value->network_info->name);
|
||||||
// }
|
// }
|
||||||
// dd($data);
|
// dd($data);
|
||||||
// return view('client.show_original_copy', $data);
|
// return view('client.show', $data);
|
||||||
return view('client.show_test', $data);
|
return view('client.show_accordion', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function showReadonly($id){
|
public function showReadonly($id){
|
||||||
@@ -958,7 +1018,8 @@ class ClientsController extends Controller
|
|||||||
$countries = Models\Country::orderBy('en_short_name', 'ASC')->pluck('en_short_name','en_short_name');
|
$countries = Models\Country::orderBy('en_short_name', 'ASC')->pluck('en_short_name','en_short_name');
|
||||||
|
|
||||||
$payment_type = ['Prepaid' => 'Prepaid', 'Postpaid' => 'Postpaid']; // Models\PaymentType::pluck('name', 'id')->toArray();
|
$payment_type = ['Prepaid' => 'Prepaid', 'Postpaid' => 'Postpaid']; // Models\PaymentType::pluck('name', 'id')->toArray();
|
||||||
$status = ['Live' => 'Live', 'inactive' => 'Inactive', 'Prospective' => 'Prospective'];
|
// $status = ['Live' => 'Live', 'inactive' => 'Inactive', 'Prospective' => 'Prospective'];
|
||||||
|
$status = ['Live' => 'Live', 'inactive' => 'Inactive', 'Prospective' => 'Prospective', 'Cancelled' => 'Cancelled'];
|
||||||
$currency = Models\Currency::orderBy('name', 'ASC')->pluck('name', 'name');
|
$currency = Models\Currency::orderBy('name', 'ASC')->pluck('name', 'name');
|
||||||
$existing_documents = Models\ClientFile::where('client_id', $id)->get();
|
$existing_documents = Models\ClientFile::where('client_id', $id)->get();
|
||||||
$files = [
|
$files = [
|
||||||
@@ -996,7 +1057,7 @@ class ClientsController extends Controller
|
|||||||
if ($client->progress_indicator !== "COMPLETED") {
|
if ($client->progress_indicator !== "COMPLETED") {
|
||||||
$stage_details = Models\ClientOnboardingMainStage::where('stage', $client->progress_indicator)->first();
|
$stage_details = Models\ClientOnboardingMainStage::where('stage', $client->progress_indicator)->first();
|
||||||
// dump($stage_details);
|
// dump($stage_details);
|
||||||
$onboarding_sub_items_progress = Models\ClientOnboardingProgress::where('stage_id', $stage_details->stage_id)->where('client_id', $id)->pluck('name', 'name');
|
$onboarding_sub_items_progress = Models\ClientOnboardingProgress::where('stage_id', $stage_details->stage_id)->where('client_id', $id)->where('status', 'COMPLETED')->pluck('name', 'name');
|
||||||
// dd($onboarding_sub_items_progress);
|
// dd($onboarding_sub_items_progress);
|
||||||
$onboarding_sub_items = Models\ClientOnboardingSubItem::where('stage_id', $stage_details->stage_id)->pluck('name', 'name');
|
$onboarding_sub_items = Models\ClientOnboardingSubItem::where('stage_id', $stage_details->stage_id)->pluck('name', 'name');
|
||||||
}
|
}
|
||||||
@@ -1125,6 +1186,7 @@ class ClientsController extends Controller
|
|||||||
'has_pending' => $has_pending,
|
'has_pending' => $has_pending,
|
||||||
'files' => $files
|
'files' => $files
|
||||||
];
|
];
|
||||||
|
// dd($data['onboarding_sub_items_progress']);
|
||||||
return view('client.edit', $data);
|
return view('client.edit', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1145,7 +1207,11 @@ class ClientsController extends Controller
|
|||||||
$get_stage_subs_items = Models\ClientOnboardingSubItem::where('stage_id', $current_pending_stage_details->stage_id)->get();
|
$get_stage_subs_items = Models\ClientOnboardingSubItem::where('stage_id', $current_pending_stage_details->stage_id)->get();
|
||||||
#update the table for onboarding progress
|
#update the table for onboarding progress
|
||||||
foreach ($request->onboarding_sub_items_progress as $value) {
|
foreach ($request->onboarding_sub_items_progress as $value) {
|
||||||
$stage_id = ['stage_id' => $current_pending_stage_details->stage_id, 'client_id' => $id, 'name' => $value ];
|
$stage_id = [
|
||||||
|
'stage_id' => $current_pending_stage_details->stage_id,
|
||||||
|
'client_id' => $id,
|
||||||
|
'name' => $value
|
||||||
|
];
|
||||||
$progress_arr = [
|
$progress_arr = [
|
||||||
'status' => 'COMPLETED'
|
'status' => 'COMPLETED'
|
||||||
];
|
];
|
||||||
@@ -1154,10 +1220,7 @@ class ClientsController extends Controller
|
|||||||
|
|
||||||
//update the status of onboarding progress stage in clients
|
//update the status of onboarding progress stage in clients
|
||||||
$get_stage_onboarding_status = Models\ClientOnboardingProgress::where('client_id', $id)->where('stage_id', $current_pending_stage_details->stage_id)->where('status', 'COMPLETED')->get();
|
$get_stage_onboarding_status = Models\ClientOnboardingProgress::where('client_id', $id)->where('stage_id', $current_pending_stage_details->stage_id)->where('status', 'COMPLETED')->get();
|
||||||
// dd($get_stage_onboarding_status);
|
|
||||||
$onboarding_progress_stage = json_decode($client_update->onboarding_progress_stage, true);
|
$onboarding_progress_stage = json_decode($client_update->onboarding_progress_stage, true);
|
||||||
|
|
||||||
// dd(count($get_stage_subs_items) == count($get_stage_onboarding_status));
|
|
||||||
if (count($get_stage_subs_items) == count($get_stage_onboarding_status)) {
|
if (count($get_stage_subs_items) == count($get_stage_onboarding_status)) {
|
||||||
//check if all items have been completed and update
|
//check if all items have been completed and update
|
||||||
$onboarding_progress_stage[$current_pending_stage_details->stage] = 'COMPLETED';
|
$onboarding_progress_stage[$current_pending_stage_details->stage] = 'COMPLETED';
|
||||||
@@ -1169,7 +1232,6 @@ class ClientsController extends Controller
|
|||||||
#$pending_stage = array_key_first($pending_stage);
|
#$pending_stage = array_key_first($pending_stage);
|
||||||
reset($pending_stage);
|
reset($pending_stage);
|
||||||
$pending_stage = key($pending_stage);
|
$pending_stage = key($pending_stage);
|
||||||
// dd($pending_stage);
|
|
||||||
if ($pending_stage == true) {
|
if ($pending_stage == true) {
|
||||||
//Pending Exist
|
//Pending Exist
|
||||||
$client_update->progress_indicator = $pending_stage;
|
$client_update->progress_indicator = $pending_stage;
|
||||||
@@ -1276,15 +1338,16 @@ class ClientsController extends Controller
|
|||||||
#$client_update->progress_indicators = json_encode($request->onboarding_sub_items_progress);
|
#$client_update->progress_indicators = json_encode($request->onboarding_sub_items_progress);
|
||||||
if ($client_update->progress_indicator != 'COMPLETED') {
|
if ($client_update->progress_indicator != 'COMPLETED') {
|
||||||
$client_update->onboarding_progress_stage = json_encode($onboarding_progress_stage);
|
$client_update->onboarding_progress_stage = json_encode($onboarding_progress_stage);
|
||||||
|
// dump(json_encode($onboarding_progress_stage));
|
||||||
$progress_breakdown = array_count_values($onboarding_progress_stage);
|
$progress_breakdown = array_count_values($onboarding_progress_stage);
|
||||||
|
// dd($progress_breakdown);
|
||||||
if (array_has($progress_breakdown, ['COMPLETED']) == false) {
|
if (array_has($progress_breakdown, ['COMPLETED']) == false) {
|
||||||
|
// dd('foo');
|
||||||
$indicator_score = "0";
|
$indicator_score = "0";
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
$indicator_score = ($progress_breakdown['COMPLETED']/count($onboarding_progress_stage)) * 100;
|
$indicator_score = ($progress_breakdown['COMPLETED']/count($onboarding_progress_stage)) * 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
$indicator_score = number_format($indicator_score);
|
$indicator_score = number_format($indicator_score);
|
||||||
$client_update->progress_indicator_score = $indicator_score;
|
$client_update->progress_indicator_score = $indicator_score;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,11 +21,10 @@ class Controller extends BaseController{
|
|||||||
public function log_query() {
|
public function log_query() {
|
||||||
// , $binding, $timing 'bindings' => $binding)
|
// , $binding, $timing 'bindings' => $binding)
|
||||||
\DB::listen(function ($sql) {
|
\DB::listen(function ($sql) {
|
||||||
\Log::info('Showing query', array('sql' => $sql));
|
\Log::info('Showing query', array('sql' => $sql));
|
||||||
$encoded_sql = json_encode($sql);
|
$encoded_sql = json_encode($sql);
|
||||||
$this->sendNtfy("Showing Query : " . $encoded_sql);
|
$this->sendNtfy("Showing Query : " . $encoded_sql);
|
||||||
}
|
});
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sendNtfy($data){
|
public function sendNtfy($data){
|
||||||
|
|||||||
@@ -5,18 +5,28 @@ namespace App\Http\Controllers;
|
|||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models;
|
use App\Models;
|
||||||
use Session;
|
use Session;
|
||||||
|
use DB;
|
||||||
|
use Carbon\Carbon;
|
||||||
class DashboardController extends Controller
|
class DashboardController extends Controller
|
||||||
{
|
{
|
||||||
public function index(){
|
public function index(){
|
||||||
// dd('foo bar');
|
// dd('foo bar');
|
||||||
|
|
||||||
|
$currentdate = date('m-d');
|
||||||
$total_clients = Models\Client::count();
|
$total_clients = Models\Client::count();
|
||||||
$ussd_clients = Models\Client::where('services', 'LIKE', '%ussd%')->orwhere('services', 'LIKE', '%A2P%')->count();
|
$ussd_clients = Models\Client::where('services', 'LIKE', '%ussd%')->orwhere('services', 'LIKE', '%A2P%')->count();
|
||||||
|
$airtime_clients = Models\Client::where('services', 'LIKE', '%airtime%')->count();
|
||||||
|
// dd($airtime_clients);
|
||||||
$sms_clients = Models\Client::where('services', 'LIKE', '%sms%')->count();
|
$sms_clients = Models\Client::where('services', 'LIKE', '%sms%')->count();
|
||||||
$voice_clients = Models\Client::where('services', 'LIKE', '%ivr%')->count();
|
$voice_clients = Models\Client::where('services', 'LIKE', '%ivr%')->count();
|
||||||
$expiring_contracts = Models\Client::where('contract_auto_renew', '<>', 'YES')->where('contract_validity', '<>', null)->orwhere('contract_validity', '<>', '')->orderBy('contract_validity', 'ASC')->take(5)->get();
|
$expiring_contracts = Models\Client::where('contract_auto_renew', '<>', 'YES')->where('contract_validity', '<>', null)->orwhere('contract_validity', '<>', '')->orderBy('contract_validity', 'ASC')->take(5)->get();
|
||||||
$user_activities = Models\UserActivity::where('user_id', '>', '1')->with('userInfo')->orderBy('created_at', 'DESC')->take(5)->get();
|
$user_activities = Models\UserActivity::where('user_id', '>', '1')->with('userInfo')->orderBy('created_at', 'DESC')->take(5)->get();
|
||||||
$recent_clients = Models\Client::with('auth_user_info')->orderBy('id', 'DESC')->take(5)->get();
|
$recent_clients = Models\Client::with('auth_user_info')->orderBy('id', 'DESC')->take(5)->get();
|
||||||
|
// $upcoming_birthdays = Models\StaffMember::whereDate('dob', '>=', $currentdate)->orderBy('dob', 'ASC')->take(5)->get();
|
||||||
|
$upcoming_birthdays = Models\StaffMember::whereRaw("(month(dob) >= month(curdate())) AND day(dob) >= day(curdate())")->orderBy('dob', 'ASC')->take(5)->get();
|
||||||
|
$upcoming_hodidays = Models\NationalHoliday::whereRaw("(month(event_date) >= month(curdate()))")->orderBy('event_date', 'ASC')->take(5)->get();
|
||||||
|
|
||||||
|
// dd($upcoming_hodidays);
|
||||||
// $recent_clients = Models\Client::orderBy('id', 'DESC')->take(5)->get();
|
// $recent_clients = Models\Client::orderBy('id', 'DESC')->take(5)->get();
|
||||||
// dd($recent_clients);
|
// dd($recent_clients);
|
||||||
$data = [
|
$data = [
|
||||||
@@ -24,13 +34,14 @@ class DashboardController extends Controller
|
|||||||
'sms' => $sms_clients,
|
'sms' => $sms_clients,
|
||||||
'ussd' => $ussd_clients,
|
'ussd' => $ussd_clients,
|
||||||
'voice' => $voice_clients,
|
'voice' => $voice_clients,
|
||||||
|
'airtime' => $airtime_clients,
|
||||||
'total' => $total_clients,
|
'total' => $total_clients,
|
||||||
'recent_clients' => $recent_clients,
|
'recent_clients' => $recent_clients,
|
||||||
'user_activities' => $user_activities,
|
'user_activities' => $user_activities,
|
||||||
'expiring_contracts' => $expiring_contracts
|
'expiring_contracts' => $expiring_contracts,
|
||||||
|
'upcoming_birthdays' => $upcoming_birthdays,
|
||||||
|
'upcoming_hodidays' => $upcoming_hodidays
|
||||||
];
|
];
|
||||||
|
|
||||||
// dd($data);
|
|
||||||
return view('dashboard.index_two', $data);
|
return view('dashboard.index_two', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,4 +60,71 @@ class DashboardController extends Controller
|
|||||||
return response()->json($event_arr);
|
return response()->json($event_arr);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getQuotes(){
|
||||||
|
// put numbers against the quotes
|
||||||
|
// $daily_quotes = Models\Client::where('services', 'LIKE', '%ivr%')->count();
|
||||||
|
|
||||||
|
$daily_quotes = DB::table('daily_quotes')
|
||||||
|
->where('id', '>=', DB::raw('(SELECT FLOOR(RAND() * (SELECT MAX(id) FROM daily_quotes)))'))
|
||||||
|
// ->limit(5)
|
||||||
|
->first();
|
||||||
|
return response()->json($daily_quotes);
|
||||||
|
|
||||||
|
}
|
||||||
|
public function getMnosContracts(){
|
||||||
|
$threeMonthsLater = Carbon::now()->addMonths(3)->format('m-d');
|
||||||
|
$threeMonthsEarlier = Carbon::now()->addMonths(3)->format('m-d');
|
||||||
|
$currentMonth = Carbon::now()->format('m');
|
||||||
|
$today = Carbon::now()->format('m-d');
|
||||||
|
|
||||||
|
$expiring_three_months = Models\NetworkOps::where('contract_auto_renew', 'NO')->whereRaw("DATE_FORMAT(contract_validity, '%m-%d') = ?", [$threeMonthsLater])->get();
|
||||||
|
#$network_arr = Models\NetworkOps::where('contract_auto_renew', 'NO')->whereRaw("DATE_FORMAT(contract_validity, '%m-%d') = ?", [$threeMonthsEarlier])->get();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$expired_in_current_month = Models\NetworkOps::whereRaw("DATE_FORMAT(contract_validity, '%m-%d') < ?", [$today])->get();
|
||||||
|
$expired_overall = Models\NetworkOps::whereDate('contract_validity', '<', Carbon::now())->get();
|
||||||
|
|
||||||
|
// $network_arr = Models\NetworkOps::with('account_manager_info')
|
||||||
|
// ->where('contract_auto_renew', 'NO')
|
||||||
|
// ->get();
|
||||||
|
|
||||||
|
$expiring_current_month = Models\NetworkOps::whereMonth('contract_validity', $currentMonth)->get();
|
||||||
|
$data = [
|
||||||
|
'expiring_three_months' => $expiring_three_months->count(),
|
||||||
|
'expired_overall' => $expired_overall->count(),
|
||||||
|
'expiring_current_month' => $expiring_current_month->count()
|
||||||
|
];
|
||||||
|
return response()->json($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getClientContracts(){
|
||||||
|
$threeMonthsLater = Carbon::now()->addMonths(3)->format('m-d');
|
||||||
|
$threeMonthsEarlier = Carbon::now()->addMonths(3)->format('m-d');
|
||||||
|
$currentMonth = Carbon::now()->format('m');
|
||||||
|
$today = Carbon::now()->format('m-d');
|
||||||
|
|
||||||
|
$expiring_three_months = Models\Client::where('contract_auto_renew', 'NO')->whereRaw("DATE_FORMAT(contract_validity, '%m-%d') = ?", [$threeMonthsLater])->get();
|
||||||
|
#$network_arr = Models\NetworkOps::where('contract_auto_renew', 'NO')->whereRaw("DATE_FORMAT(contract_validity, '%m-%d') = ?", [$threeMonthsEarlier])->get();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$expired_in_current_month = Models\Client::whereRaw("DATE_FORMAT(contract_validity, '%m-%d') < ?", [$today])->get();
|
||||||
|
$expired_overall = Models\Client::whereDate('contract_validity', '<', Carbon::now())->get();
|
||||||
|
|
||||||
|
// $network_arr = Models\NetworkOps::with('account_manager_info')
|
||||||
|
// ->where('contract_auto_renew', 'NO')
|
||||||
|
// ->get();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$expiring_current_month = Models\Client::whereMonth('contract_validity', $currentMonth)->get();
|
||||||
|
$data = [
|
||||||
|
'expiring_three_months' => $expiring_three_months->count(),
|
||||||
|
'expired_overall' => $expired_overall->count(),
|
||||||
|
'expiring_current_month' => $expiring_current_month->count()
|
||||||
|
];
|
||||||
|
return response()->json($data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ class GeneralDocumentsController extends Controller
|
|||||||
|
|
||||||
$category_names = [
|
$category_names = [
|
||||||
'api' => 'API Documents',
|
'api' => 'API Documents',
|
||||||
|
'airtime' => 'Click Airtime',
|
||||||
'presentations' => 'Presentations',
|
'presentations' => 'Presentations',
|
||||||
'rates' => 'SMS/Voice Rates',
|
'rates' => 'SMS/Voice Rates',
|
||||||
'scfees' => 'Short Code Fees',
|
'scfees' => 'Short Code Fees',
|
||||||
@@ -107,6 +108,7 @@ class GeneralDocumentsController extends Controller
|
|||||||
$categories = [
|
$categories = [
|
||||||
'sidwl' => 'Sender ID Whitelisting Letter',
|
'sidwl' => 'Sender ID Whitelisting Letter',
|
||||||
'api' => 'API Docs',
|
'api' => 'API Docs',
|
||||||
|
'airtime' => 'Click Airtime',
|
||||||
'rates' => 'Rates',
|
'rates' => 'Rates',
|
||||||
'scfees' => 'Short Code Fees',
|
'scfees' => 'Short Code Fees',
|
||||||
'presentations' => 'presentations',
|
'presentations' => 'presentations',
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ namespace App\Http\Controllers;
|
|||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models;
|
use App\Models;
|
||||||
use Spatie\Activitylog\Models\Activity;
|
use Spatie\Activitylog\Models\Activity;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
use App\Jobs\SendOtpEmailAlert;
|
||||||
|
|
||||||
|
|
||||||
class LoginController extends Controller
|
class LoginController extends Controller
|
||||||
{
|
{
|
||||||
@@ -15,33 +18,113 @@ class LoginController extends Controller
|
|||||||
];
|
];
|
||||||
return view('login.index', $data);
|
return view('login.index', $data);
|
||||||
}
|
}
|
||||||
|
public function resendOtp(){
|
||||||
|
if(!request()->session()->has('current_otpuser')){
|
||||||
|
return redirect(url('login'))->withErrors("No session found. You need to be logged in!");
|
||||||
|
}
|
||||||
|
$otp_code = Str::random(6);
|
||||||
|
\Log::info($otp_code);
|
||||||
|
request()->session()->put('current_otpuser.otp', $otp_code);
|
||||||
|
$otp_user = session('current_otpuser');
|
||||||
|
|
||||||
public function handleLogin(Request $request){
|
$otp_set = [
|
||||||
$this->validate($request, ['email' => 'required', 'password' => 'required']);
|
'otp' => $otp_code,
|
||||||
|
'email' => $otp_user['email'],
|
||||||
|
'auth_name' => $otp_user['name']
|
||||||
|
];
|
||||||
|
dispatch(new SendOtpEmailAlert($otp_set));
|
||||||
|
$data = [
|
||||||
|
'otp_user_id' => $otp_user['id'],
|
||||||
|
'page_title' => 'Login OTP',
|
||||||
|
'auth_name' => $otp_user['name']
|
||||||
|
];
|
||||||
|
return view('login.otp', $data);
|
||||||
|
}
|
||||||
|
public function showOtpPage(){
|
||||||
|
if(!request()->session()->has('current_otpuser')){
|
||||||
|
$random = uniqid();
|
||||||
|
return redirect(url('login'))->withErrors("$random | You need to be logged in ");
|
||||||
|
}
|
||||||
|
$otp_user = session('current_otpuser');
|
||||||
|
$data = [
|
||||||
|
'otp_user_id' => $otp_user['id'],
|
||||||
|
'page_title' => 'Login OTP',
|
||||||
|
'auth_name' => $otp_user['name']
|
||||||
|
];
|
||||||
|
return view('login.otp', $data);
|
||||||
|
}
|
||||||
|
public function handleLoginOtp(Request $request){
|
||||||
|
$this->validate($request, ['email' => 'required', 'password' => 'required']);
|
||||||
//system user : $table = "auth_users";
|
//system user : $table = "auth_users";
|
||||||
$logged_in = Models\SystemUser::with('designation_info')->where('email', $request->email)->where('password', md5($request->password))->first();
|
$logged_in = Models\SystemUser::with('designation_info')->where('email', $request->email)->where('password', md5($request->password))->first();
|
||||||
|
|
||||||
|
if(empty($logged_in)){
|
||||||
|
return redirect("/")->withErrors(array("Incorrect Email/Password. Check and try again!"))->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp_code = Str::random(6);
|
||||||
|
$request->session()->regenerate(true);
|
||||||
|
$request->session()->put('current_otpuser.id', $logged_in->id);
|
||||||
|
$request->session()->put('current_otpuser.otp', $otp_code);
|
||||||
|
$request->session()->put('current_otpuser.name', $logged_in->name);
|
||||||
|
$request->session()->put('current_otpuser.email', $logged_in->email);
|
||||||
|
$request->session()->put('current_otpuser.phone', $logged_in->phone);
|
||||||
|
$request->session()->put('current_otpuser.datetime_sent', date('Y-m-d H:i:s'));
|
||||||
|
$request->session()->put('current_otpuser.designation', $logged_in->designation_info->name);
|
||||||
|
|
||||||
|
$otp_set = ['otp' => $otp_code, 'email' => $logged_in->email, 'auth_name' => $logged_in->name];
|
||||||
|
dispatch(new SendOtpEmailAlert($otp_set));
|
||||||
|
return redirect(url('showotp'));
|
||||||
|
}
|
||||||
|
public function handleLogin(Request $request){
|
||||||
|
// dump($request->all());
|
||||||
|
$this->validate($request, ['otp' => 'required', 'otp_user_id' => 'required']);
|
||||||
|
//system user : $table = "auth_users";
|
||||||
|
$current_date = date('Y-m-d H:i:s');
|
||||||
|
$otp_user = session('current_otpuser');
|
||||||
|
|
||||||
|
$date1 = new \DateTime($otp_user['datetime_sent']);
|
||||||
|
$date2 = new \DateTime($current_date);
|
||||||
|
|
||||||
|
$interval = $date1->diff($date2);
|
||||||
|
$minutes = ($interval->h * 60) + $interval->i;
|
||||||
|
// dd($minutes);
|
||||||
|
if($minutes > 2 ){
|
||||||
|
return redirect("showotp")->withErrors(array("OTP Time Out. Resend and try again!"));
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp_user = session('current_otpuser');
|
||||||
|
if(strtoupper($otp_user['otp']) !== strtoupper($request->otp)){
|
||||||
|
|
||||||
|
return redirect("showotp")->withErrors(array("Incorrect OTP. Check and try again!"))->withInput();
|
||||||
|
}
|
||||||
|
#$logged_in = Models\SystemUser::with('designation_info')->where('email', $request->email)->where('password', md5($request->password))->first();
|
||||||
|
/*
|
||||||
if(empty($logged_in)){
|
if(empty($logged_in)){
|
||||||
return redirect("/")->withErrors(array("Incorrect Email/Password. Check and try again!"))->withInput();
|
return redirect("/")->withErrors(array("Incorrect Email/Password. Check and try again!"))->withInput();
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
$request->session()->regenerate(true);
|
$request->session()->regenerate(true);
|
||||||
$request->session()->put('current_user.id', $logged_in->id);
|
$request->session()->put('current_user.id', $otp_user['id']);
|
||||||
$request->session()->put('current_user.name', $logged_in->name);
|
$request->session()->put('current_user.name', $otp_user['name']);
|
||||||
$request->session()->put('current_user.email', $logged_in->email);
|
$request->session()->put('current_user.email', $otp_user['email']);
|
||||||
$request->session()->put('current_user.phone', $logged_in->phone);
|
$request->session()->put('current_user.phone', $otp_user['phone']);
|
||||||
$request->session()->put('current_user.designation', $logged_in->designation_info->name);
|
$request->session()->put('current_user.designation', $otp_user['designation']);
|
||||||
|
|
||||||
\Log::info($logged_in->name . ' Successfully logged in at : ' . date('Y-m-d H:i:s'));
|
|
||||||
|
|
||||||
$content = $logged_in->name . " Successfully Logged In";
|
\Log::info($otp_user['name']. ' Successfully logged in at : ' . date('Y-m-d H:i:s'));
|
||||||
activity()->log($logged_in->name . ' Successfully logged in at : ' . date('Y-m-d H:i:s'));
|
|
||||||
|
|
||||||
$this->logUsersActivity($type = 'staff', $content, $logged_in->id);
|
$content = $otp_user['name'] . " Successfully Logged In";
|
||||||
|
// dd($content);
|
||||||
|
#activity()->log($otp_user['name']. ' Successfully logged in at : ' . date('Y-m-d H:i:s'));
|
||||||
|
|
||||||
|
$this->logUsersActivity($type = 'staff', $content, $otp_user['id']);
|
||||||
$this->deleteLoggedUser();
|
$this->deleteLoggedUser();
|
||||||
$this->storeLoggedUser();
|
$this->storeLoggedUser();
|
||||||
|
|
||||||
switch ($logged_in->designation_info->name) {
|
return redirect(url('/'));
|
||||||
|
/*
|
||||||
|
switch ($otp_user['designation_info']) {
|
||||||
case 'Administrator':
|
case 'Administrator':
|
||||||
return redirect(url('finance')); // change it to a combined dashboard
|
return redirect(url('finance')); // change it to a combined dashboard
|
||||||
break;
|
break;
|
||||||
@@ -53,6 +136,7 @@ class LoginController extends Controller
|
|||||||
return redirect(url('/'));
|
return redirect(url('/'));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
public function handle_logout(Request $request) {
|
public function handle_logout(Request $request) {
|
||||||
@@ -65,8 +149,8 @@ class LoginController extends Controller
|
|||||||
$request->session()->flush();
|
$request->session()->flush();
|
||||||
$request->session()->regenerate(true);
|
$request->session()->regenerate(true);
|
||||||
|
|
||||||
activity()->log($username . " Logged Out : " . date('Y-m-d H:i:s'));
|
#activity()->log($username . " Logged Out : " . date('Y-m-d H:i:s'));
|
||||||
// $this->logUsersActivity($type = 'staff', $content, $user_id);
|
$this->logUsersActivity($type = 'staff', $content, $user_id);
|
||||||
|
|
||||||
return redirect("/");
|
return redirect("/");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -388,7 +388,13 @@ class NetworkOperatorsController extends Controller
|
|||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function update(Requests\UpdateMnoRequest $request, $id)
|
public function update(Requests\UpdateMnoRequest $request, $id)
|
||||||
{
|
{
|
||||||
|
if ($request->has('document_one') && isset($request->document_one_name) == false) {
|
||||||
|
return redirect()->back()->withErrors(array("You need to add a name for the document to be uploaded !"))->withInput();
|
||||||
|
}
|
||||||
|
if ($request->has('document_two') && isset($request->document_two_name) == false) {
|
||||||
|
return redirect()->back()->withErrors(array("You need to add a name for the document to be uploaded !"))->withInput();
|
||||||
|
}
|
||||||
$operator_update = Models\NetworkOps::find($id);
|
$operator_update = Models\NetworkOps::find($id);
|
||||||
$paperless = new PaperLessNgx();
|
$paperless = new PaperLessNgx();
|
||||||
if ($request->has('document_one') && $request->has('document_one_name')) {
|
if ($request->has('document_one') && $request->has('document_one_name')) {
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ class OfficeLocationsController extends Controller
|
|||||||
$id = $request->branch_id;
|
$id = $request->branch_id;
|
||||||
$document_arr = \DB::table('branch_files')
|
$document_arr = \DB::table('branch_files')
|
||||||
->join('auth_users', 'auth_users.id', '=', 'branch_files.uploaded_by')
|
->join('auth_users', 'auth_users.id', '=', 'branch_files.uploaded_by')
|
||||||
->select('branch_files.id', 'branch_files.name','branch_files.file_reff', 'auth_users.name AS UploadedBy', 'branch_files.created_at')
|
->select('branch_files.id', 'branch_files.name', 'branch_files.validity_period','branch_files.file_reff', 'auth_users.name AS UploadedBy', 'branch_files.created_at')
|
||||||
->orderBy('branch_files.name', 'ASC')
|
->orderBy('branch_files.name', 'ASC')
|
||||||
->where('branch_files.branch_id', $id)
|
->where('branch_files.branch_id', $id)
|
||||||
->paginate(15);
|
->paginate(15);
|
||||||
@@ -44,7 +44,7 @@ class OfficeLocationsController extends Controller
|
|||||||
$keyword = $request->keyword;
|
$keyword = $request->keyword;
|
||||||
$document_arr = \DB::table('branch_files')
|
$document_arr = \DB::table('branch_files')
|
||||||
->join('auth_users', 'auth_users.id', '=', 'branch_files.uploaded_by')
|
->join('auth_users', 'auth_users.id', '=', 'branch_files.uploaded_by')
|
||||||
->select('branch_files.id', 'branch_files.name','branch_files.file_reff', 'auth_users.name AS UploadedBy', 'branch_files.created_at')
|
->select('branch_files.id', 'branch_files.name', 'branch_files.validity_period', 'branch_files.file_reff', 'auth_users.name AS UploadedBy', 'branch_files.created_at')
|
||||||
->orderBy('branch_files.name', 'ASC')
|
->orderBy('branch_files.name', 'ASC')
|
||||||
->where('branch_files.branch_id', $id)
|
->where('branch_files.branch_id', $id)
|
||||||
->whereRaw("branch_files.name LIKE '%$keyword%' OR branch_files.description LIKE '%$keyword%' OR branch_files.filename LIKE '%$keyword%' OR auth_users.name LIKE '%$keyword%'")
|
->whereRaw("branch_files.name LIKE '%$keyword%' OR branch_files.description LIKE '%$keyword%' OR branch_files.filename LIKE '%$keyword%' OR auth_users.name LIKE '%$keyword%'")
|
||||||
@@ -70,6 +70,7 @@ class OfficeLocationsController extends Controller
|
|||||||
'page_title' => 'Upload Document',
|
'page_title' => 'Upload Document',
|
||||||
'branch_id' => $id
|
'branch_id' => $id
|
||||||
];
|
];
|
||||||
|
// dd($data);
|
||||||
return view('officelocations.filescreate', $data);
|
return view('officelocations.filescreate', $data);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -153,7 +154,7 @@ class OfficeLocationsController extends Controller
|
|||||||
|
|
||||||
if ($request->has('document_one') && $request->has('document_one_name')) {
|
if ($request->has('document_one') && $request->has('document_one_name')) {
|
||||||
if ($request->file('document_one')->isValid()) {
|
if ($request->file('document_one')->isValid()) {
|
||||||
$filename = "erp_" . time() . str_random(6) . "." . $request->document_one->extension();
|
$filename = "erp_" . time() . str_random(6) . "." . $request->document_one->extension();
|
||||||
$request->document_one->storeAs('branch_files', $filename, 'public');
|
$request->document_one->storeAs('branch_files', $filename, 'public');
|
||||||
$document_arr['filename'] = $filename;
|
$document_arr['filename'] = $filename;
|
||||||
$document_arr['branch_id'] = $request->branch_id;
|
$document_arr['branch_id'] = $request->branch_id;
|
||||||
@@ -162,6 +163,7 @@ class OfficeLocationsController extends Controller
|
|||||||
$document_arr['file_extension'] = $request->document_one->extension();
|
$document_arr['file_extension'] = $request->document_one->extension();
|
||||||
$document_arr['file_reff'] = time() . uniqid();
|
$document_arr['file_reff'] = time() . uniqid();
|
||||||
$document_arr['name'] = $request->document_one_name;
|
$document_arr['name'] = $request->document_one_name;
|
||||||
|
$document_arr['validity_period'] = $request->validity_period_one;
|
||||||
$document_arr['uploaded_by'] = session('current_user.id');
|
$document_arr['uploaded_by'] = session('current_user.id');
|
||||||
$result = Models\BranchFile::create($document_arr);
|
$result = Models\BranchFile::create($document_arr);
|
||||||
}
|
}
|
||||||
@@ -177,6 +179,7 @@ class OfficeLocationsController extends Controller
|
|||||||
$document_arr['file_extension'] = $request->document_two->extension();
|
$document_arr['file_extension'] = $request->document_two->extension();
|
||||||
$document_arr['file_reff'] = time() . uniqid();
|
$document_arr['file_reff'] = time() . uniqid();
|
||||||
$document_arr['name'] = $request->document_two_name;
|
$document_arr['name'] = $request->document_two_name;
|
||||||
|
$document_arr['validity_period'] = $request->validity_period_two;
|
||||||
$document_arr['uploaded_by'] = session('current_user.id');
|
$document_arr['uploaded_by'] = session('current_user.id');
|
||||||
$result = Models\BranchFile::create($document_arr);
|
$result = Models\BranchFile::create($document_arr);
|
||||||
}
|
}
|
||||||
@@ -192,6 +195,7 @@ class OfficeLocationsController extends Controller
|
|||||||
$document_arr['file_extension'] = $request->document_three->extension();
|
$document_arr['file_extension'] = $request->document_three->extension();
|
||||||
$document_arr['file_reff'] = time() . uniqid();
|
$document_arr['file_reff'] = time() . uniqid();
|
||||||
$document_arr['name'] = $request->document_three_name;
|
$document_arr['name'] = $request->document_three_name;
|
||||||
|
$document_arr['validity_period'] = $request->validity_period_third;
|
||||||
$document_arr['uploaded_by'] = session('current_user.id');
|
$document_arr['uploaded_by'] = session('current_user.id');
|
||||||
$result = Models\BranchFile::create($document_arr);
|
$result = Models\BranchFile::create($document_arr);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,12 +102,75 @@ class ReportsController extends Controller{
|
|||||||
->select('user_activities.id','auth_users.name', 'user_activities.content', 'user_activities.ip_address', 'user_activities.created_at', 'user_activities.updated_at')
|
->select('user_activities.id','auth_users.name', 'user_activities.content', 'user_activities.ip_address', 'user_activities.created_at', 'user_activities.updated_at')
|
||||||
->whereRaw("user_activities.name like '%$keyword%' or user_activities.ip_address like '%$keyword%' OR user_activities.created_at like '%$keyword%' OR user_activities.updated_at like '%$keyword%'")
|
->whereRaw("user_activities.name like '%$keyword%' or user_activities.ip_address like '%$keyword%' OR user_activities.created_at like '%$keyword%' OR user_activities.updated_at like '%$keyword%'")
|
||||||
->orderBy('user_activities.created_at', 'DESC')
|
->orderBy('user_activities.created_at', 'DESC')
|
||||||
->get();
|
//->get();
|
||||||
// ->paginate(15);
|
->paginate(50);
|
||||||
}
|
}
|
||||||
return response()->json($user_activities);
|
return response()->json($user_activities);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getMnosContracts(){
|
||||||
|
#$user_activities = Models\UserActivity::where('user_id', '>', '1')->with('userInfo')->orderBy('created_at', 'DESC')->take(5)->get();
|
||||||
|
$data = [
|
||||||
|
'page_title' => 'Expired MNO Contracts',
|
||||||
|
'current_user' => session('current_user')
|
||||||
|
];
|
||||||
|
return view('reports.mno-expired-contracts', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getMnosContractsJson(Request $request){
|
||||||
|
|
||||||
|
$today = Carbon::now()->format('m-d');
|
||||||
|
$expired_contracts = \DB::table('network_operators')
|
||||||
|
->join('auth_users', 'auth_users.id', '=', 'network_operators.account_manager_id')
|
||||||
|
->select('network_operators.id','auth_users.name AS accountManager', 'network_operators.name','network_operators.contact_person', 'network_operators.contact_person_email', 'network_operators.country', 'network_operators.contract_validity', 'network_operators.created_at')
|
||||||
|
->whereRaw("DATE_FORMAT(contract_validity, '%m-%d') < ?", [$today])
|
||||||
|
->orderBy('network_operators.name', 'DESC')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
if($request->has('keyword')){
|
||||||
|
$keyword = $request->keyword;
|
||||||
|
$expired_contracts = \DB::table('network_operators')
|
||||||
|
->join('auth_users', 'auth_users.id', '=', 'network_operators.account_manager_id')
|
||||||
|
->select('network_operators.id','auth_users.name AS accountManager', 'network_operators.name','network_operators.contact_person', 'network_operators.contact_person_email', 'network_operators.country', 'network_operators.contract_validity', 'network_operators.created_at')
|
||||||
|
->whereRaw("DATE_FORMAT(contract_validity, '%m-%d') < ?", [$today])
|
||||||
|
->whereRaw("network_operators.name like '%$keyword%' or network_operators.contact_person like '%$keyword%' OR network_operators.created_at like '%$keyword%' OR network_operators.contract_validity like '%$keyword%' OR network_operators.contact_person_email like '%$keyword%'")
|
||||||
|
->orderBy('network_operators.name', 'DESC')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
return response()->json($expired_contracts);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getClientContracts(){
|
||||||
|
#$user_activities = Models\UserActivity::where('user_id', '>', '1')->with('userInfo')->orderBy('created_at', 'DESC')->take(5)->get();
|
||||||
|
$data = [
|
||||||
|
'page_title' => 'Expirted Client Contracts',
|
||||||
|
'current_user' => session('current_user')
|
||||||
|
];
|
||||||
|
return view('reports.clients-expired-contracts', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getClientContractsJson(Request $request){
|
||||||
|
$today = Carbon::now()->format('m-d');
|
||||||
|
$expired_contracts = \DB::table('clients')
|
||||||
|
->join('auth_users', 'auth_users.id', '=', 'clients.auth_user_id')
|
||||||
|
->select('clients.id','auth_users.name AS accountManager', 'clients.name','clients.contact_person', 'clients.email', 'clients.country', 'clients.contract_validity', 'clients.created_at')
|
||||||
|
->whereRaw("DATE_FORMAT(contract_validity, '%m-%d') < ?", [$today])
|
||||||
|
->orderBy('clients.name', 'DESC')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
if($request->has('keyword')){
|
||||||
|
$keyword = $request->keyword;
|
||||||
|
$expired_contracts = \DB::table('clients')
|
||||||
|
->join('auth_users', 'auth_users.id', '=', 'clients.auth_user_id')
|
||||||
|
->select('clients.id','auth_users.name AS accountManager', 'clients.name','clients.contact_person', 'clients.email', 'clients.country', 'clients.contract_validity', 'clients.created_at')
|
||||||
|
->whereRaw("DATE_FORMAT(contract_validity, '%m-%d') < ?", [$today])
|
||||||
|
->whereRaw("clients.name like '%$keyword%' or clients.contact_person like '%$keyword%' OR clients.created_at like '%$keyword%' OR clients.contract_validity like '%$keyword%' OR clients.contact_person_email like '%$keyword%'")
|
||||||
|
->orderBy('clients.name', 'DESC')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
return response()->json($expired_contracts);
|
||||||
|
}
|
||||||
|
|
||||||
public function getAmNewClients(){
|
public function getAmNewClients(){
|
||||||
// $new_clients = Models\Client::where()
|
// $new_clients = Models\Client::where()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,13 +5,16 @@ namespace App\Http\Controllers;
|
|||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models;
|
use App\Models;
|
||||||
use Session;
|
use Session;
|
||||||
|
use Excel;
|
||||||
|
use App\Imports\Senderidimport;
|
||||||
|
use Illuminate\Support\Facades\File;
|
||||||
|
|
||||||
class SenderIdController extends Controller
|
class SenderIdController extends Controller
|
||||||
{
|
{
|
||||||
public function index(){
|
public function index(){
|
||||||
$senderid_arr = new Models\SenderId;
|
$senderid_arr = new Models\SenderId;
|
||||||
// $senderid_arr = $senderid_arr->with('modified_by_info', 'network_info', 'created_by_info')->orderBy('senderid', 'ASC')->paginate(15);
|
// $senderid_arr = $senderid_arr->with('modified_by_info', 'network_info', 'created_by_info')->orderBy('senderid', 'ASC')->paginate(15);
|
||||||
// dd($senderid_arr);
|
// dd($senderid_arr);
|
||||||
$data = [
|
$data = [
|
||||||
'page_title' => 'Sender IDs',
|
'page_title' => 'Sender IDs',
|
||||||
// 'senderid_arr' => $senderid_arr,
|
// 'senderid_arr' => $senderid_arr,
|
||||||
@@ -25,23 +28,25 @@ class SenderIdController extends Controller
|
|||||||
$senderid_arr = \DB::table('sender_ids')
|
$senderid_arr = \DB::table('sender_ids')
|
||||||
->join('staff_members AS staffcreate', 'staffcreate.id', '=', 'sender_ids.created_by')
|
->join('staff_members AS staffcreate', 'staffcreate.id', '=', 'sender_ids.created_by')
|
||||||
->join('staff_members AS staffmodify', 'staffmodify.id', '=', 'sender_ids.last_modified_by')
|
->join('staff_members AS staffmodify', 'staffmodify.id', '=', 'sender_ids.last_modified_by')
|
||||||
->join('network_operators', 'network_operators.id', '=', 'sender_ids.network_id')
|
// ->join('network_operators', 'network_operators.id', '=', 'sender_ids.network_id')
|
||||||
->join('clients', 'clients.id', '=', 'sender_ids.client_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','sender_ids.direct_mno', 'staffmodify.name AS modifiedBy')
|
->select('sender_ids.id', 'mno_name', 'supplier_name', 'sender_ids.senderid', 'sender_ids.status', 'sender_ids.remarks', 'staffcreate.name As createdBy','sender_ids.direct_mno', 'staffmodify.name AS modifiedBy')
|
||||||
->orderBy('sender_ids.senderid', 'ASC')
|
->orderBy('sender_ids.senderid', 'ASC')
|
||||||
->paginate(15);
|
->paginate(15);
|
||||||
|
|
||||||
if($request->has('keyword')){
|
if($request->has('keyword')){
|
||||||
|
$queries = [];
|
||||||
$keyword = $request->keyword;
|
$keyword = $request->keyword;
|
||||||
|
$queries['keyword'] = $keyword;
|
||||||
$senderid_arr = \DB::table('sender_ids')
|
$senderid_arr = \DB::table('sender_ids')
|
||||||
->join('staff_members AS staffcreate', 'staffcreate.id', '=', 'sender_ids.created_by')
|
->join('staff_members AS staffcreate', 'staffcreate.id', '=', 'sender_ids.created_by')
|
||||||
->join('staff_members AS staffmodify', 'staffmodify.id', '=', 'sender_ids.last_modified_by')
|
->join('staff_members AS staffmodify', 'staffmodify.id', '=', 'sender_ids.last_modified_by')
|
||||||
->join('network_operators', 'network_operators.id', '=', 'sender_ids.network_id')
|
// ->join('network_operators', 'network_operators.id', '=', 'sender_ids.network_id')
|
||||||
->join('clients', 'clients.id', '=', 'sender_ids.client_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', 'sender_ids.direct_mno', 'staffmodify.name AS modifiedBy')
|
->select('sender_ids.id', 'mno_name', 'supplier_name', 'sender_ids.senderid', 'sender_ids.status', 'sender_ids.remarks', 'staffcreate.name As createdBy', 'sender_ids.direct_mno', '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%' OR sender_ids.direct_mno LIKE '%$keyword%'")
|
->whereRaw("sender_ids.senderid LIKE '%$keyword%' OR sender_ids.status LIKE '%$keyword%' OR mno_name LIKE '%$keyword%' OR supplier_name LIKE '%$keyword%' OR staffcreate.name LIKE '%$keyword%' OR staffmodify.name LIKE '%$keyword%' OR sender_ids.direct_mno LIKE '%$keyword%'")
|
||||||
->orderBy('sender_ids.senderid', 'ASC')
|
->orderBy('sender_ids.senderid', 'ASC')
|
||||||
->paginate(15);
|
->paginate(15)->appends($queries);
|
||||||
}
|
}
|
||||||
return response()->json($senderid_arr);
|
return response()->json($senderid_arr);
|
||||||
}
|
}
|
||||||
@@ -49,29 +54,46 @@ class SenderIdController extends Controller
|
|||||||
{
|
{
|
||||||
#$network_arr = Models\NetworkOps::pluck('name','country');
|
#$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();
|
$networks = \DB::table('network_operators')->Select(\DB::raw('concat(name, " (", country, ")") AS networkvalue, concat(name, " (", country, ")") AS network'))->orderBy('network')->get()->toArray();
|
||||||
$network_arr = array_pluck($networks, 'network', 'id');
|
$network_arr = array_pluck($networks, 'network', 'networkvalue');
|
||||||
$direct_mno_arr = ['YES' => 'YES', 'NO' => 'NO'];
|
$direct_mno_arr = ['YES' => 'YES', 'NO' => 'NO'];
|
||||||
|
|
||||||
// dd($network_arr);
|
// dd($network_arr);
|
||||||
#$network_arr = array_combine($network_arr, $network_arr);
|
#$network_arr = array_combine($network_arr, $network_arr);
|
||||||
|
|
||||||
|
|
||||||
$clients = Models\Client::pluck('name', 'id');
|
// $clients = Models\Client::pluck('name', 'name');
|
||||||
|
$clients = \DB::table('clients')->Select(\DB::raw('concat(name, " (", country, ")") AS clientvalue, concat(name, " (", country, ")") AS client'))->orderBy('client')->get()->toArray();
|
||||||
|
$client_arr = array_pluck($clients, 'client', 'clientvalue');
|
||||||
$staffmembers = Models\StaffMember::pluck('name', 'id');
|
$staffmembers = Models\StaffMember::pluck('name', 'id');
|
||||||
$status = ['Pending' => 'Pending', 'Inactive' => 'Inactive', 'Approved' => 'Approved'];
|
#$status = ['Pending' => 'Pending', 'Inactive' => 'Inactive', 'Approved' => 'Approved'];
|
||||||
|
#$status = ['Applied to MNO', 'Applied to Aggregator', 'Approved on MNO', 'Approved on Aggregator', 'Active', 'InActive'];
|
||||||
|
$status = [
|
||||||
|
'Applied to MNO' => 'Applied to MNO',
|
||||||
|
'Applied to Aggregator' => 'Applied to Aggregator',
|
||||||
|
'Approved on MNO' => 'Approved on MNO',
|
||||||
|
'Approved on Aggregator' => 'Approved on Aggregator',
|
||||||
|
'Active' => 'Active',
|
||||||
|
'Inactive' => 'InActive'
|
||||||
|
];
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'page_title' => 'Create Sender ID',
|
'page_title' => 'Create Sender ID',
|
||||||
'network_arr' => [], // $network_arr,
|
'network_arr' => $network_arr,
|
||||||
'status' => $status,
|
'status' => $status,
|
||||||
'clients' => $clients,
|
'clients' => $client_arr,
|
||||||
'direct_mno_arr' => $direct_mno_arr,
|
'direct_mno_arr' => $direct_mno_arr,
|
||||||
'staffmembers' => $staffmembers
|
'staffmembers' => $staffmembers
|
||||||
];
|
];
|
||||||
|
// dd($data);
|
||||||
return view('senderid.create', $data);
|
return view('senderid.create', $data);
|
||||||
}
|
}
|
||||||
|
public function showuploadform(){
|
||||||
|
$data = [
|
||||||
|
'page_title' => 'Upload Sender IDs',
|
||||||
|
];
|
||||||
|
return view('senderid.uploadbulk', $data);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Store a newly created resource in storage.
|
* Store a newly created resource in storage.
|
||||||
*
|
*
|
||||||
@@ -82,14 +104,30 @@ class SenderIdController extends Controller
|
|||||||
{
|
{
|
||||||
$request->validate([
|
$request->validate([
|
||||||
'senderid' => 'required|max:11',
|
'senderid' => 'required|max:11',
|
||||||
'network_id' => 'required',
|
'mno_name' => 'required_if:direct_mno,YES',
|
||||||
|
'supplier_name' => 'required_if:direct_mno,NO',
|
||||||
'status' => 'required',
|
'status' => 'required',
|
||||||
'remarks' => 'sometimes',
|
'remarks' => 'sometimes',
|
||||||
]);
|
]);
|
||||||
|
$check_duplicate = Models\SenderId::where('senderid', $request->senderid)
|
||||||
|
->where('mno_name', $request->mno_name)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if($check_duplicate){
|
||||||
|
return redirect()->back()->withInput()->withErrors("Sender ID already exist for " . $request->mno_name );
|
||||||
|
}
|
||||||
|
|
||||||
$senderid_arr = $request->except('_token');
|
$senderid_arr = $request->except('_token');
|
||||||
$senderid_arr['created_by'] = session('current_user.id');
|
$senderid_arr['created_by'] = session('current_user.id');
|
||||||
$senderid_arr['last_modified_by'] = session('current_user.id');
|
$senderid_arr['last_modified_by'] = session('current_user.id');
|
||||||
$senderid_arr['remarks'] = $request->remarks ?? '';
|
$senderid_arr['remarks'] = $request->remarks ?? '';
|
||||||
|
$senderid_arr['direct_mno'] = $request->direct_mno;
|
||||||
|
|
||||||
|
|
||||||
|
// dd($senderid_arr);
|
||||||
|
$result = Models\SenderId::create($senderid_arr);
|
||||||
|
|
||||||
|
/*
|
||||||
if ($request->direct_mno == 'NO') {
|
if ($request->direct_mno == 'NO') {
|
||||||
$mno_world_wide = Models\Worldwidemno::find($request->network_id);
|
$mno_world_wide = Models\Worldwidemno::find($request->network_id);
|
||||||
// code... save in the network ops with status as non-direct ... user createOrUpdate method
|
// code... save in the network ops with status as non-direct ... user createOrUpdate method
|
||||||
@@ -98,37 +136,176 @@ class SenderIdController extends Controller
|
|||||||
$network_ops_arr['name'] = $mno_world_wide->network;
|
$network_ops_arr['name'] = $mno_world_wide->network;
|
||||||
$network_ops_arr['direct_business'] = 'NO'; // $mno_world_wide->network;
|
$network_ops_arr['direct_business'] = 'NO'; // $mno_world_wide->network;
|
||||||
$result = Models\NetworkOps::updateOrCreate(['name' => $mno_world_wide->network, 'country' => $mno_world_wide->country, 'direct_business' => 'NO'], $network_ops_arr);
|
$result = Models\NetworkOps::updateOrCreate(['name' => $mno_world_wide->network, 'country' => $mno_world_wide->country, 'direct_business' => 'NO'], $network_ops_arr);
|
||||||
|
$senderid_arr['network_id'] = $result->id;
|
||||||
}
|
}
|
||||||
// dd($senderid_arr);
|
//validate senderid with same client and same network
|
||||||
|
// $result = Models\SenderId::create($senderid_arr);
|
||||||
$result = Models\SenderId::create($senderid_arr);
|
$result = Models\SenderId::updateOrCreate([
|
||||||
|
'network_id' => $senderid_arr['network_id'],
|
||||||
|
'client_id' => $senderid_arr['client_id'],
|
||||||
|
'senderid' => $senderid_arr['senderid']
|
||||||
|
], $senderid_arr);
|
||||||
|
*/
|
||||||
|
|
||||||
#save services this has been moved to the main client table
|
#save services this has been moved to the main client table
|
||||||
//$retval = $this->store_services($request->services, $result->id);
|
//$retval = $this->store_services($request->services, $result->id);
|
||||||
|
// dd('foo bar');
|
||||||
Session::flash('success_message', 'Sender ID successfully added');
|
Session::flash('success_message', 'Sender ID successfully added');
|
||||||
return redirect(url('senderids'));
|
return redirect(url('senderids'));
|
||||||
}
|
}
|
||||||
|
public function uploadstore(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'senderid_file' => 'required|max:6000|mimes:xlx,xlsx',
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
$request->session()->put('current_user.rejected_rows_filename', '');
|
||||||
|
|
||||||
|
// dump($request->all());
|
||||||
|
$networks = \DB::table('network_operators')->Select(\DB::raw('concat(name, " (", country, ")") AS networkvalue, concat(name, " (", country, ")") AS network'))->orderBy('network')->get()->toArray();
|
||||||
|
|
||||||
|
$network_arr = array_pluck($networks, 'network', 'networkvalue');
|
||||||
|
|
||||||
|
$clients = \DB::table('clients')->Select(\DB::raw('concat(name, " (", country, ")") AS clientvalue, concat(name, " (", country, ")") AS client'))->orderBy('client')->get()->toArray();
|
||||||
|
$client_arr = array_pluck($clients, 'client', 'clientvalue');
|
||||||
|
|
||||||
|
if (!$request->hasFile('senderid_file') && !$request->senderid_file->isValid() ) {
|
||||||
|
Session::flash('error_message', 'File could not be loaded');
|
||||||
|
return redirect()->back();
|
||||||
|
}
|
||||||
|
$file = $request->senderid_file;
|
||||||
|
$filename = "erp_" . time() . str_random(6) . "." . $request->senderid_file->extension();
|
||||||
|
$request->senderid_file->storeAs('general_files', $filename, 'public');
|
||||||
|
|
||||||
|
$stored_file = public_path('documents/general_files/'.$filename);
|
||||||
|
$extracted_arr = Excel::toArray(new Senderidimport, $stored_file);
|
||||||
|
// dd($extracted_arr[0]);
|
||||||
|
$row_count = $extracted_arr[0];
|
||||||
|
$main = [];
|
||||||
|
$count = 0;
|
||||||
|
$senderid_arr = [];
|
||||||
|
$rejected_rows = [];
|
||||||
|
$rejected_rows_filename = public_path('documents/general_files/'. $filename . "_rejected_rows.txt");
|
||||||
|
foreach ($extracted_arr[0] as $key => $value) {
|
||||||
|
if ($value['senderid'] == null) {
|
||||||
|
file_put_contents($rejected_rows_filename, json_encode($value) . PHP_EOL, FILE_APPEND);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ($value['direct_mno'] == "YES" && $value['mno_name'] == null) {
|
||||||
|
file_put_contents($rejected_rows_filename, json_encode($value) . PHP_EOL, FILE_APPEND);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ($value['direct_mno'] == "NO" && $value['supplier_name'] == null) {
|
||||||
|
file_put_contents($rejected_rows_filename, json_encode($value) . PHP_EOL, FILE_APPEND);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ($value['direct_mno'] == "YES" && in_array($value['mno_name'], $network_arr) == true) {
|
||||||
|
file_put_contents($rejected_rows_filename, json_encode($value) . PHP_EOL, FILE_APPEND);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ($value['direct_mno'] == "NO" && in_array($value['supplier_name'], $client_arr) == true) {
|
||||||
|
file_put_contents($rejected_rows_filename, json_encode($value) . PHP_EOL, FILE_APPEND);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$check_duplicate_mno = Models\SenderId::where('senderid', $value['senderid'])
|
||||||
|
->where('mno_name', $value['mno_name'])
|
||||||
|
->first();
|
||||||
|
$check_duplicate_client = Models\SenderId::where('senderid', $value['senderid'])
|
||||||
|
->where('supplier_name', $value['supplier_name'])
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if ($check_duplicate_mno && $value['direct_mno'] == "YES") {
|
||||||
|
file_put_contents($rejected_rows_filename, json_encode($value) . PHP_EOL, FILE_APPEND);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ($check_duplicate_client && $value['direct_mno'] == "NO") {
|
||||||
|
file_put_contents($rejected_rows_filename, json_encode($value) . PHP_EOL, FILE_APPEND);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (strtoupper($value['direct_mno']) == 'YES') {
|
||||||
|
// dd('foo bar');
|
||||||
|
$senderid_arr['senderid'] = $value['senderid'];
|
||||||
|
$senderid_arr['mno_name'] = $value['mno_name'];
|
||||||
|
$senderid_arr['created_by'] = session('current_user.id');
|
||||||
|
$senderid_arr['last_modified_by'] = session('current_user.id');
|
||||||
|
$senderid_arr['remarks'] = $value['remarks'];
|
||||||
|
$senderid_arr['direct_mno'] = 'YES';
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$senderid_arr['senderid'] = $value['senderid'];
|
||||||
|
$senderid_arr['supplier_name'] = $value['supplier_name'];
|
||||||
|
$senderid_arr['created_by'] = session('current_user.id');
|
||||||
|
$senderid_arr['last_modified_by'] = session('current_user.id');
|
||||||
|
$senderid_arr['remarks'] = $value['remarks'];
|
||||||
|
$senderid_arr['direct_mno'] = 'NO';
|
||||||
|
}
|
||||||
|
|
||||||
|
// dd($senderid_arr);
|
||||||
|
$result = Models\SenderId::create($senderid_arr);
|
||||||
|
// dd($retval);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$request->session()->put('current_user.rejected_rows_filename', $filename . "_rejected_rows.txt");
|
||||||
|
$rejected = file($rejected_rows_filename);
|
||||||
|
|
||||||
|
// dump(session('current_user.rejected_rows_filename'));
|
||||||
|
// dd('the end');
|
||||||
|
Session::flash('success_message', 'Bulk Sender ID successfully uploaded, review the report file!');
|
||||||
|
return redirect(url('senderids'));
|
||||||
|
}
|
||||||
|
public function getUploadReport($name){
|
||||||
|
$file = public_path('documents/general_files/') . $name;
|
||||||
|
$headers = ['Content-Type' => 'text/plain '];
|
||||||
|
return \Response::download($file, 'Sender ID Upload Report', $headers);
|
||||||
|
}
|
||||||
|
public function getSampleFile(){
|
||||||
|
$file = public_path('documents/general_files/senderid_sample_file.xlsx');
|
||||||
|
|
||||||
|
#$extension = pathinfo($file, PATHINFO_EXTENSION);
|
||||||
|
$headers = ['Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];
|
||||||
|
return \Response::download($file, 'Sender ID Sample Upload File', $headers);
|
||||||
|
}
|
||||||
public function edit($id){
|
public function edit($id){
|
||||||
$senderid = Models\SenderId::findOrFail($id);
|
$senderid = Models\SenderId::findOrFail($id);
|
||||||
//dd($senderid);
|
//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');
|
|
||||||
|
|
||||||
|
$networks = \DB::table('network_operators')->Select(\DB::raw('concat(name, " (", country, ")") AS networkvalue, concat(name, " (", country, ")") AS network'))->orderBy('network')->get()->toArray();
|
||||||
|
$network_arr = array_pluck($networks, 'network', 'networkvalue');
|
||||||
|
$direct_mno_arr = ['YES' => 'YES', 'NO' => 'NO'];
|
||||||
|
// dd($network_arr);
|
||||||
|
|
||||||
$clients = Models\Client::pluck('name', 'id');
|
$clients = \DB::table('clients')->Select(\DB::raw('concat(name, " (", country, ")") AS clientvalue, concat(name, " (", country, ")") AS client'))->orderBy('client')->get()->toArray();
|
||||||
|
$client_arr = array_pluck($clients, 'client', 'clientvalue');
|
||||||
$staffmembers = Models\StaffMember::pluck('name', 'id');
|
$staffmembers = Models\StaffMember::pluck('name', 'id');
|
||||||
$status = ['Pending' => 'Pending', 'Inactive' => 'Inactive', 'Approved' => 'Approved'];
|
// $status = ['Pending' => 'Pending', 'Inactive' => 'Inactive', 'Approved' => 'Approved'];
|
||||||
|
$status = [
|
||||||
|
'Applied to MNO' => 'Applied to MNO',
|
||||||
|
'Applied to Aggregator' => 'Applied to Aggregator',
|
||||||
|
'Approved on MNO' => 'Approved on MNO',
|
||||||
|
'Approved on Aggregator' => 'Approved on Aggregator',
|
||||||
|
'Active' => 'Active',
|
||||||
|
'Inactive' => 'InActive'
|
||||||
|
];
|
||||||
|
|
||||||
|
// $data = [
|
||||||
|
// 'page_title' => 'Create Sender ID',
|
||||||
|
// 'network_arr' => $network_arr, G*385058081508uq
|
||||||
|
// 'status' => $status,
|
||||||
|
// 'clients' => $clients,
|
||||||
|
// 'senderid' => $senderid,
|
||||||
|
// 'direct_mno_arr' => $direct_mno_arr,
|
||||||
|
// 'staffmembers' => $staffmembers
|
||||||
|
// ];
|
||||||
$data = [
|
$data = [
|
||||||
'page_title' => 'Create Sender ID',
|
'page_title' => 'Edit Sender ID',
|
||||||
'network_arr' => $network_arr,
|
'network_arr' => $network_arr,
|
||||||
'status' => $status,
|
'status' => $status,
|
||||||
'clients' => $clients,
|
'clients' => $client_arr,
|
||||||
'senderid' => $senderid,
|
'senderid' => $senderid,
|
||||||
|
'direct_mno_arr' => $direct_mno_arr,
|
||||||
'staffmembers' => $staffmembers
|
'staffmembers' => $staffmembers
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -139,18 +316,33 @@ class SenderIdController extends Controller
|
|||||||
|
|
||||||
$request->validate([
|
$request->validate([
|
||||||
'senderid' => 'required|max:11',
|
'senderid' => 'required|max:11',
|
||||||
'network_id' => 'required',
|
'mno_name' => 'required_if:direct_mno,YES',
|
||||||
|
'supplier_name' => 'required_if:direct_mno,NO',
|
||||||
'status' => 'required',
|
'status' => 'required',
|
||||||
'remarks' => 'sometimes',
|
'remarks' => 'sometimes',
|
||||||
]);
|
]);
|
||||||
|
// dd($request->all());
|
||||||
$senderid = Models\SenderId::findOrFail($id);
|
$senderid = Models\SenderId::findOrFail($id);
|
||||||
|
|
||||||
$senderid->senderid = $request->senderid;
|
$senderid->senderid = $request->senderid;
|
||||||
$senderid->client_id = $request->client_id;
|
$senderid->mno_name = $request->mno_name ?? '';
|
||||||
$senderid->status = $request->status;
|
$senderid->status = $request->status;
|
||||||
$senderid->network_id = $request->network_id;
|
$senderid->supplier_name = $request->supplier_name ?? '';
|
||||||
$senderid->remarks = $request->remarks;
|
$senderid->remarks = $request->remarks;
|
||||||
|
$senderid->direct_mno = $request->direct_mno;
|
||||||
|
$senderid->last_modified_by = session('current_user.id');
|
||||||
|
|
||||||
|
// if ($request->direct_mno == 'NO') {
|
||||||
|
// $mno_world_wide = Models\Worldwidemno::find($request->network_id);
|
||||||
|
// // code... save in the network ops with status as non-direct ... user createOrUpdate method
|
||||||
|
// $network_ops_arr['name'] = $mno_world_wide->network;
|
||||||
|
// $network_ops_arr['country'] = $mno_world_wide->country;
|
||||||
|
// $network_ops_arr['name'] = $mno_world_wide->network;
|
||||||
|
// $network_ops_arr['direct_business'] = 'NO'; // $mno_world_wide->network;
|
||||||
|
// $result = Models\NetworkOps::updateOrCreate(['name' => $mno_world_wide->network, 'country' => $mno_world_wide->country, 'direct_business' => 'NO'], $network_ops_arr);
|
||||||
|
// $senderid->network_id = $result->id;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
$senderid->save();
|
$senderid->save();
|
||||||
|
|
||||||
|
|||||||
@@ -19,9 +19,22 @@ class ShortCodesController extends Controller{
|
|||||||
];
|
];
|
||||||
return view('shortcodes.index', $data);
|
return view('shortcodes.index', $data);
|
||||||
}
|
}
|
||||||
|
public function create(){
|
||||||
|
$country_networks = \DB::table('network_operators')->Select(\DB::raw('id, concat(name, " (", country, ")") AS network'))->orderBy('network')->pluck('network', 'network');
|
||||||
|
$client_arr = Models\Client::pluck('name', 'id');
|
||||||
|
$data = [
|
||||||
|
'page_title' => 'New Short Code',
|
||||||
|
'country_network_arr' => $country_networks,
|
||||||
|
'client_arr' => $client_arr,
|
||||||
|
'current_user' => session('current_user')
|
||||||
|
];
|
||||||
|
return view('shortcodes.create', $data);
|
||||||
|
}
|
||||||
|
|
||||||
public function smsindex(){
|
public function smsindex(){
|
||||||
// $codes_data = Models\ClientShortCode::groupBy('code_type')->get();
|
// $codes_data = Models\ClientShortCode::groupBy('code_type')->get();
|
||||||
|
$country_networks = \DB::table('network_operators')->Select(\DB::raw('id, concat(name, " (", country, ")") AS network'))->orderBy('network')->pluck('network', 'network');
|
||||||
|
$client_arr = Models\Client::orderBy('name', 'ASC')->pluck('name', 'id');
|
||||||
$codes_data = \DB::table('client_short_codes')
|
$codes_data = \DB::table('client_short_codes')
|
||||||
->select('code_type', \DB::raw('count(*) as total'))
|
->select('code_type', \DB::raw('count(*) as total'))
|
||||||
->groupBy('code_type')
|
->groupBy('code_type')
|
||||||
@@ -44,12 +57,14 @@ class ShortCodesController extends Controller{
|
|||||||
'type' => 'SMS',
|
'type' => 'SMS',
|
||||||
'codes_data' => $codes_data,
|
'codes_data' => $codes_data,
|
||||||
'networks_raw' => array_combine($networks_raw, $networks_raw),
|
'networks_raw' => array_combine($networks_raw, $networks_raw),
|
||||||
|
'country_network_arr' => $country_networks,
|
||||||
|
'client_arr' => $client_arr,
|
||||||
'current_user' => session('current_user')
|
'current_user' => session('current_user')
|
||||||
];
|
];
|
||||||
return view('shortcodes.smsindex', $data);
|
return view('shortcodes.smsindex', $data);
|
||||||
}
|
}
|
||||||
public function getShortCodesJson(Request $request){
|
public function getShortCodesJson(Request $request){
|
||||||
$this->log_query();
|
//$this->log_query();
|
||||||
//$codes_data = Models\ClientShortCode::with('client_info', 'update_info')->where('code_type', 'sms')->orderBy('id', 'DESC')->get();
|
//$codes_data = Models\ClientShortCode::with('client_info', 'update_info')->where('code_type', 'sms')->orderBy('id', 'DESC')->get();
|
||||||
|
|
||||||
$shortcode_arr = \DB::table('client_short_codes')
|
$shortcode_arr = \DB::table('client_short_codes')
|
||||||
@@ -57,7 +72,7 @@ class ShortCodesController extends Controller{
|
|||||||
->join('clients', 'clients.id', '=', 'client_short_codes.client_id')
|
->join('clients', 'clients.id', '=', 'client_short_codes.client_id')
|
||||||
->select('client_short_codes.id', 'client_short_codes.name', 'client_short_codes.shortcode', 'clients.name AS clientName', 'client_short_codes.network', 'client_short_codes.toll_free', 'client_short_codes.monthly_fee', 'client_short_codes.status', 'client_short_codes.remarks', 'client_short_codes.launch_date', 'client_short_codes.expiry_date', 'client_short_codes.last_updated_by', 'auth_users.name AS modifiedBy')
|
->select('client_short_codes.id', 'client_short_codes.name', 'client_short_codes.shortcode', 'clients.name AS clientName', 'client_short_codes.network', 'client_short_codes.toll_free', 'client_short_codes.monthly_fee', 'client_short_codes.status', 'client_short_codes.remarks', 'client_short_codes.launch_date', 'client_short_codes.expiry_date', 'client_short_codes.last_updated_by', 'auth_users.name AS modifiedBy')
|
||||||
->where('client_short_codes.code_type', 'sms')
|
->where('client_short_codes.code_type', 'sms')
|
||||||
->orderBy('client_short_codes.shortcode', 'ASC')
|
->orderBy('client_short_codes.created_at', 'DESC')
|
||||||
->paginate(15);
|
->paginate(15);
|
||||||
|
|
||||||
if($request->has('keyword')){
|
if($request->has('keyword')){
|
||||||
@@ -69,7 +84,7 @@ class ShortCodesController extends Controller{
|
|||||||
->select('client_short_codes.id', 'client_short_codes.name', 'client_short_codes.shortcode', 'clients.name AS clientName', 'client_short_codes.network', 'client_short_codes.toll_free', 'client_short_codes.monthly_fee', 'client_short_codes.status', 'client_short_codes.remarks', 'client_short_codes.launch_date', 'client_short_codes.expiry_date', 'client_short_codes.last_updated_by', 'auth_users.name AS modifiedBy')
|
->select('client_short_codes.id', 'client_short_codes.name', 'client_short_codes.shortcode', 'clients.name AS clientName', 'client_short_codes.network', 'client_short_codes.toll_free', 'client_short_codes.monthly_fee', 'client_short_codes.status', 'client_short_codes.remarks', 'client_short_codes.launch_date', 'client_short_codes.expiry_date', 'client_short_codes.last_updated_by', 'auth_users.name AS modifiedBy')
|
||||||
->whereRaw("code_type = '$code_type' AND (client_short_codes.name LIKE '%$keyword%' OR client_short_codes.shortcode LIKE '%$keyword%' OR client_short_codes.status LIKE '%$keyword%' OR client_short_codes.network LIKE '%$keyword%' OR client_short_codes.toll_free LIKE '%$keyword%' OR client_short_codes.monthly_fee LIKE '%$keyword%' OR client_short_codes.launch_date LIKE '%$keyword%' OR client_short_codes.expiry_date LIKE '%$keyword%' OR clients.name LIKE '%$keyword%' OR auth_users.name LIKE '%$keyword%')")
|
->whereRaw("code_type = '$code_type' AND (client_short_codes.name LIKE '%$keyword%' OR client_short_codes.shortcode LIKE '%$keyword%' OR client_short_codes.status LIKE '%$keyword%' OR client_short_codes.network LIKE '%$keyword%' OR client_short_codes.toll_free LIKE '%$keyword%' OR client_short_codes.monthly_fee LIKE '%$keyword%' OR client_short_codes.launch_date LIKE '%$keyword%' OR client_short_codes.expiry_date LIKE '%$keyword%' OR clients.name LIKE '%$keyword%' OR auth_users.name LIKE '%$keyword%')")
|
||||||
// ->where('code_type', $code_type)
|
// ->where('code_type', $code_type)
|
||||||
->orderBy('client_short_codes.shortcode', 'ASC')
|
->orderBy('client_short_codes.created_at', 'DESC')
|
||||||
->paginate(15);
|
->paginate(15);
|
||||||
}
|
}
|
||||||
return response()->json($shortcode_arr);
|
return response()->json($shortcode_arr);
|
||||||
@@ -77,6 +92,8 @@ class ShortCodesController extends Controller{
|
|||||||
|
|
||||||
public function ussdindex(){
|
public function ussdindex(){
|
||||||
// $codes_data = Models\ClientShortCode::groupBy('code_type')->get();
|
// $codes_data = Models\ClientShortCode::groupBy('code_type')->get();
|
||||||
|
$country_networks = \DB::table('network_operators')->Select(\DB::raw('id, concat(name, " (", country, ")") AS network'))->orderBy('network')->pluck('network', 'network');
|
||||||
|
$client_arr = Models\Client::orderBy('name', 'ASC')->pluck('name', 'id');
|
||||||
$codes_data = \DB::table('client_short_codes')
|
$codes_data = \DB::table('client_short_codes')
|
||||||
->select('code_type', \DB::raw('count(*) as total'))
|
->select('code_type', \DB::raw('count(*) as total'))
|
||||||
->groupBy('code_type')
|
->groupBy('code_type')
|
||||||
@@ -85,8 +102,11 @@ class ShortCodesController extends Controller{
|
|||||||
'page_title' => 'Short Codes',
|
'page_title' => 'Short Codes',
|
||||||
'type' => 'USSD',
|
'type' => 'USSD',
|
||||||
'codes_data' => $codes_data,
|
'codes_data' => $codes_data,
|
||||||
|
'country_network_arr' => $country_networks,
|
||||||
|
'client_arr' => $client_arr,
|
||||||
'current_user' => session('current_user')
|
'current_user' => session('current_user')
|
||||||
];
|
];
|
||||||
|
|
||||||
return view('shortcodes.ussdindex', $data);
|
return view('shortcodes.ussdindex', $data);
|
||||||
}
|
}
|
||||||
public function getUssdShortCodesJson(Request $request){
|
public function getUssdShortCodesJson(Request $request){
|
||||||
@@ -98,7 +118,7 @@ class ShortCodesController extends Controller{
|
|||||||
->join('clients', 'clients.id', '=', 'client_short_codes.client_id')
|
->join('clients', 'clients.id', '=', 'client_short_codes.client_id')
|
||||||
->select('client_short_codes.id', 'client_short_codes.name', 'client_short_codes.shortcode', 'clients.name AS clientName', 'client_short_codes.network', 'client_short_codes.toll_free', 'client_short_codes.monthly_fee', 'client_short_codes.status', 'client_short_codes.remarks', 'client_short_codes.launch_date', 'client_short_codes.expiry_date', 'client_short_codes.last_updated_by', 'auth_users.name AS modifiedBy')
|
->select('client_short_codes.id', 'client_short_codes.name', 'client_short_codes.shortcode', 'clients.name AS clientName', 'client_short_codes.network', 'client_short_codes.toll_free', 'client_short_codes.monthly_fee', 'client_short_codes.status', 'client_short_codes.remarks', 'client_short_codes.launch_date', 'client_short_codes.expiry_date', 'client_short_codes.last_updated_by', 'auth_users.name AS modifiedBy')
|
||||||
->where('client_short_codes.code_type', 'ussd')
|
->where('client_short_codes.code_type', 'ussd')
|
||||||
->orderBy('client_short_codes.shortcode', 'ASC')
|
->orderBy('client_short_codes.created_at', 'DESC')
|
||||||
->paginate(15);
|
->paginate(15);
|
||||||
|
|
||||||
if($request->has('keyword')){
|
if($request->has('keyword')){
|
||||||
@@ -110,7 +130,7 @@ class ShortCodesController extends Controller{
|
|||||||
->select('client_short_codes.id', 'client_short_codes.name', 'client_short_codes.shortcode', 'clients.name AS clientName', 'client_short_codes.network', 'client_short_codes.toll_free', 'client_short_codes.monthly_fee', 'client_short_codes.status', 'client_short_codes.remarks', 'client_short_codes.launch_date', 'client_short_codes.expiry_date', 'client_short_codes.last_updated_by', 'auth_users.name AS modifiedBy')
|
->select('client_short_codes.id', 'client_short_codes.name', 'client_short_codes.shortcode', 'clients.name AS clientName', 'client_short_codes.network', 'client_short_codes.toll_free', 'client_short_codes.monthly_fee', 'client_short_codes.status', 'client_short_codes.remarks', 'client_short_codes.launch_date', 'client_short_codes.expiry_date', 'client_short_codes.last_updated_by', 'auth_users.name AS modifiedBy')
|
||||||
->whereRaw("code_type = '$code_type' AND (client_short_codes.name LIKE '%$keyword%' OR client_short_codes.shortcode LIKE '%$keyword%' OR client_short_codes.status LIKE '%$keyword%' OR client_short_codes.network LIKE '%$keyword%' OR client_short_codes.toll_free LIKE '%$keyword%' OR client_short_codes.monthly_fee LIKE '%$keyword%' OR client_short_codes.launch_date LIKE '%$keyword%' OR client_short_codes.expiry_date LIKE '%$keyword%' OR clients.name LIKE '%$keyword%' OR auth_users.name LIKE '%$keyword%')")
|
->whereRaw("code_type = '$code_type' AND (client_short_codes.name LIKE '%$keyword%' OR client_short_codes.shortcode LIKE '%$keyword%' OR client_short_codes.status LIKE '%$keyword%' OR client_short_codes.network LIKE '%$keyword%' OR client_short_codes.toll_free LIKE '%$keyword%' OR client_short_codes.monthly_fee LIKE '%$keyword%' OR client_short_codes.launch_date LIKE '%$keyword%' OR client_short_codes.expiry_date LIKE '%$keyword%' OR clients.name LIKE '%$keyword%' OR auth_users.name LIKE '%$keyword%')")
|
||||||
// ->where('code_type', $code_type)
|
// ->where('code_type', $code_type)
|
||||||
->orderBy('client_short_codes.shortcode', 'ASC')
|
->orderBy('client_short_codes.created_at', 'DESC')
|
||||||
->paginate(15);
|
->paginate(15);
|
||||||
}
|
}
|
||||||
return response()->json($shortcode_arr);
|
return response()->json($shortcode_arr);
|
||||||
@@ -119,6 +139,8 @@ class ShortCodesController extends Controller{
|
|||||||
|
|
||||||
public function voiceindex(){
|
public function voiceindex(){
|
||||||
// $codes_data = Models\ClientShortCode::groupBy('code_type')->get();
|
// $codes_data = Models\ClientShortCode::groupBy('code_type')->get();
|
||||||
|
$country_networks = \DB::table('network_operators')->Select(\DB::raw('id, concat(name, " (", country, ")") AS network'))->orderBy('network')->pluck('network', 'network');
|
||||||
|
$client_arr = Models\Client::orderBy('name', 'ASC')->pluck('name', 'id');
|
||||||
$codes_data = \DB::table('client_short_codes')
|
$codes_data = \DB::table('client_short_codes')
|
||||||
->select('code_type', \DB::raw('count(*) as total'))
|
->select('code_type', \DB::raw('count(*) as total'))
|
||||||
->groupBy('code_type')
|
->groupBy('code_type')
|
||||||
@@ -127,6 +149,8 @@ class ShortCodesController extends Controller{
|
|||||||
'page_title' => 'Short Codes',
|
'page_title' => 'Short Codes',
|
||||||
'type' => 'Voice',
|
'type' => 'Voice',
|
||||||
'codes_data' => $codes_data,
|
'codes_data' => $codes_data,
|
||||||
|
'country_network_arr' => $country_networks,
|
||||||
|
'client_arr' => $client_arr,
|
||||||
'current_user' => session('current_user')
|
'current_user' => session('current_user')
|
||||||
];
|
];
|
||||||
return view('shortcodes.voiceindex', $data);
|
return view('shortcodes.voiceindex', $data);
|
||||||
@@ -140,7 +164,7 @@ class ShortCodesController extends Controller{
|
|||||||
->join('clients', 'clients.id', '=', 'client_short_codes.client_id')
|
->join('clients', 'clients.id', '=', 'client_short_codes.client_id')
|
||||||
->select('client_short_codes.id', 'client_short_codes.name', 'client_short_codes.shortcode', 'clients.name AS clientName', 'client_short_codes.network', 'client_short_codes.toll_free', 'client_short_codes.monthly_fee','client_short_codes.status', 'client_short_codes.remarks', 'client_short_codes.launch_date', 'client_short_codes.expiry_date', 'client_short_codes.last_updated_by', 'auth_users.name AS modifiedBy')
|
->select('client_short_codes.id', 'client_short_codes.name', 'client_short_codes.shortcode', 'clients.name AS clientName', 'client_short_codes.network', 'client_short_codes.toll_free', 'client_short_codes.monthly_fee','client_short_codes.status', 'client_short_codes.remarks', 'client_short_codes.launch_date', 'client_short_codes.expiry_date', 'client_short_codes.last_updated_by', 'auth_users.name AS modifiedBy')
|
||||||
->where('client_short_codes.code_type', 'voice')
|
->where('client_short_codes.code_type', 'voice')
|
||||||
->orderBy('client_short_codes.shortcode', 'ASC')
|
->orderBy('client_short_codes.created_at', 'DESC')
|
||||||
->paginate(15);
|
->paginate(15);
|
||||||
|
|
||||||
if($request->has('keyword')){
|
if($request->has('keyword')){
|
||||||
@@ -152,7 +176,7 @@ class ShortCodesController extends Controller{
|
|||||||
->select('client_short_codes.id', 'client_short_codes.name', 'client_short_codes.shortcode', 'clients.name AS clientName', 'client_short_codes.network', 'client_short_codes.toll_free', 'client_short_codes.monthly_fee', 'client_short_codes.status', 'client_short_codes.remarks', 'client_short_codes.launch_date', 'client_short_codes.expiry_date', 'client_short_codes.last_updated_by', 'auth_users.name AS modifiedBy')
|
->select('client_short_codes.id', 'client_short_codes.name', 'client_short_codes.shortcode', 'clients.name AS clientName', 'client_short_codes.network', 'client_short_codes.toll_free', 'client_short_codes.monthly_fee', 'client_short_codes.status', 'client_short_codes.remarks', 'client_short_codes.launch_date', 'client_short_codes.expiry_date', 'client_short_codes.last_updated_by', 'auth_users.name AS modifiedBy')
|
||||||
->whereRaw("code_type = '$code_type' AND (client_short_codes.name LIKE '%$keyword%' OR client_short_codes.shortcode LIKE '%$keyword%' OR client_short_codes.status LIKE '%$keyword%' OR client_short_codes.network LIKE '%$keyword%' OR client_short_codes.toll_free LIKE '%$keyword%' OR client_short_codes.monthly_fee LIKE '%$keyword%' OR client_short_codes.launch_date LIKE '%$keyword%' OR client_short_codes.expiry_date LIKE '%$keyword%' OR clients.name LIKE '%$keyword%' OR auth_users.name LIKE '%$keyword%')")
|
->whereRaw("code_type = '$code_type' AND (client_short_codes.name LIKE '%$keyword%' OR client_short_codes.shortcode LIKE '%$keyword%' OR client_short_codes.status LIKE '%$keyword%' OR client_short_codes.network LIKE '%$keyword%' OR client_short_codes.toll_free LIKE '%$keyword%' OR client_short_codes.monthly_fee LIKE '%$keyword%' OR client_short_codes.launch_date LIKE '%$keyword%' OR client_short_codes.expiry_date LIKE '%$keyword%' OR clients.name LIKE '%$keyword%' OR auth_users.name LIKE '%$keyword%')")
|
||||||
// ->where('code_type', $code_type)
|
// ->where('code_type', $code_type)
|
||||||
->orderBy('client_short_codes.shortcode', 'ASC')
|
->orderBy('client_short_codes.created_at', 'DESC')
|
||||||
->paginate(15);
|
->paginate(15);
|
||||||
}
|
}
|
||||||
return response()->json($shortcode_arr);
|
return response()->json($shortcode_arr);
|
||||||
|
|||||||
@@ -14,6 +14,29 @@ class UtilityController extends Controller
|
|||||||
public function underconstruction(){
|
public function underconstruction(){
|
||||||
return view('utility.underconstruction');
|
return view('utility.underconstruction');
|
||||||
}
|
}
|
||||||
|
public function migrateSenderids(){
|
||||||
|
$senderid = Models\Senderidold::with('network_info', 'client_info')->where('direct_mno', 'YES')->get();
|
||||||
|
// dd($senderid);
|
||||||
|
$counter = 0;
|
||||||
|
foreach ($senderid as $row) {
|
||||||
|
|
||||||
|
// dd($row);
|
||||||
|
$senderid_arr['senderid'] = $row->senderid;
|
||||||
|
$senderid_arr['created_by'] = $row->created_by;
|
||||||
|
$senderid_arr['last_modified_by'] = $row->last_modified_by;
|
||||||
|
$senderid_arr['remarks'] = $row->remarks;
|
||||||
|
$senderid_arr['mno_name'] = $row->network_info->name . ' (' . $row->network_info->country .')';
|
||||||
|
$senderid_arr['status'] = $row->status;
|
||||||
|
$senderid_arr['direct_mno'] = $row->direct_mno;
|
||||||
|
$senderid_arr['created_at'] = $row->created_at;
|
||||||
|
$senderid_arr['modified_at'] = $row->modified_at;
|
||||||
|
|
||||||
|
$result = Models\SenderId::create($senderid_arr);
|
||||||
|
// dump($result);
|
||||||
|
$counter++;
|
||||||
|
}
|
||||||
|
return ['gip' => 'string', 'counter' => $counter];
|
||||||
|
}
|
||||||
public function EmailTest(Mailer $mailer)
|
public function EmailTest(Mailer $mailer)
|
||||||
{
|
{
|
||||||
dispatch(new SendTestEmail());
|
dispatch(new SendTestEmail());
|
||||||
|
|||||||
@@ -41,9 +41,13 @@ class UpdateMnoRequest extends FormRequest
|
|||||||
'contact_person_phone' => 'required',
|
'contact_person_phone' => 'required',
|
||||||
'contract_auto_renew' => 'required',
|
'contract_auto_renew' => 'required',
|
||||||
'contract_validity' => 'required',
|
'contract_validity' => 'required',
|
||||||
|
|
||||||
'document_one' => 'max:20480|mimes:png,jpg,jpeg,bmp,pdf,doc,docx,xlx,xlsx',
|
'document_one' => 'max:20480|mimes:png,jpg,jpeg,bmp,pdf,doc,docx,xlx,xlsx',
|
||||||
'document_two' => 'max:20480|mimes:png,jpg,jpeg,bmp,pdf,doc,docx,xlx,xlsx',
|
'document_two' => 'max:20480|mimes:png,jpg,jpeg,bmp,pdf,doc,docx,xlx,xlsx',
|
||||||
'sliding_rate_file' => 'max:10240|mimes:png,jpg,jpeg,bmp,pdf,doc,docx,xlx,xlsx',
|
'sliding_rate_file' => 'max:10240|mimes:png,jpg,jpeg,bmp,pdf,doc,docx,xlx,xlsx',
|
||||||
|
|
||||||
|
// 'document_one_name' => 'required_with:document_one.*',
|
||||||
|
// 'document_two_name' => 'required_with:document_two.*',
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
27
app/Imports/SenderidImport.php
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Imports;
|
||||||
|
|
||||||
|
use Illuminate\Support\Collection;
|
||||||
|
use Maatwebsite\Excel\Concerns\ToCollection;
|
||||||
|
use Maatwebsite\Excel\Concerns\WithHeadingRow;
|
||||||
|
|
||||||
|
class Senderidimport implements ToCollection, WithHeadingRow
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @param Collection $collection
|
||||||
|
*/
|
||||||
|
public function collection(Collection $collection)
|
||||||
|
{
|
||||||
|
foreach ($collection as $row) {
|
||||||
|
dd($row);
|
||||||
|
return [
|
||||||
|
"senderid" => $row['senderid'],
|
||||||
|
"direct_mno" => $row['direct_mno'],
|
||||||
|
"mno_name" => $row['mno_name'],
|
||||||
|
"status" => $row['status'],
|
||||||
|
"remarks" => $row['remarks']
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
47
app/Jobs/SendOtpEmailAlert.php
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Jobs;
|
||||||
|
|
||||||
|
use Illuminate\Bus\Queueable;
|
||||||
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
|
use Illuminate\Contracts\Mail\Mailer;
|
||||||
|
|
||||||
|
|
||||||
|
class SendOtpEmailAlert implements ShouldQueue
|
||||||
|
{
|
||||||
|
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||||
|
protected $otp_set;
|
||||||
|
/**
|
||||||
|
* Create a new job instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct($otp_set)
|
||||||
|
{
|
||||||
|
$this->otp_set = $otp_set;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the job.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function handle(Mailer $mailer)
|
||||||
|
{
|
||||||
|
$otp_set = $this->otp_set;
|
||||||
|
$emails = [
|
||||||
|
$otp_set['email']
|
||||||
|
];
|
||||||
|
$data = [
|
||||||
|
'otp' => $otp_set['otp'],
|
||||||
|
'auth_name' => $otp_set['auth_name']
|
||||||
|
];
|
||||||
|
$mailer->send('emails.otp', $data, function ($message) use ($data, $emails) {
|
||||||
|
$message->from('alerts@click-mobile.com', 'Click Mobile ERP');
|
||||||
|
$message->to($emails)->subject('Login OTP');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -33,7 +33,8 @@ class SendTestEmail implements ShouldQueue
|
|||||||
$emails = [
|
$emails = [
|
||||||
'kwesi@click-mobile.com',
|
'kwesi@click-mobile.com',
|
||||||
'kwesi_banson@hotmail.com',
|
'kwesi_banson@hotmail.com',
|
||||||
'mansa@click-mobile.com'
|
'mansa@click-mobile.com',
|
||||||
|
'diana@click-mobile.com'
|
||||||
];
|
];
|
||||||
$data = [];
|
$data = [];
|
||||||
$mailer->send('emails.test', $data, function ($message) use ($data, $emails) {
|
$mailer->send('emails.test', $data, function ($message) use ($data, $emails) {
|
||||||
|
|||||||
12
app/Models/DailyQoute.php
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class DailyQoute extends Model
|
||||||
|
{
|
||||||
|
// public $timestamps = false;
|
||||||
|
protected $guarded = array('id');
|
||||||
|
public $table = "daily_qoutes";
|
||||||
|
}
|
||||||
17
app/Models/NationalHoliday.php
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class NationalHoliday extends Model
|
||||||
|
{
|
||||||
|
protected $guarded = array('id');
|
||||||
|
public $table = "national_holidays";
|
||||||
|
|
||||||
|
// public function branch_info(){
|
||||||
|
// return $this->hasOne('App\Models\OfficeLocation', 'id', 'branch_id');
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
@@ -7,22 +7,22 @@ use Spatie\Activitylog\Traits\LogsActivity;
|
|||||||
use Spatie\Activitylog\LogOptions;
|
use Spatie\Activitylog\LogOptions;
|
||||||
|
|
||||||
class SenderId extends Model{
|
class SenderId extends Model{
|
||||||
use LogsActivity;
|
// use LogsActivity;
|
||||||
|
|
||||||
|
|
||||||
protected $guarded = array('id');
|
protected $guarded = array('id');
|
||||||
public $table = "sender_ids";
|
public $table = "sender_ids";
|
||||||
protected static $logName = 'senderid_log';
|
protected static $logName = 'senderid_log';
|
||||||
// protected static $causedBy = $user_model;
|
// protected static $causedBy = $user_model;
|
||||||
protected static $logOnlyDirty = true;
|
// protected static $logOnlyDirty = true;
|
||||||
protected static $dontSubmitEmptyLogs = true;
|
// protected static $dontSubmitEmptyLogs = true;
|
||||||
|
|
||||||
|
|
||||||
protected static $logUnguarded = true;
|
protected static $logUnguarded = true;
|
||||||
public function getActivitylogOptions(): LogOptions{
|
// public function getActivitylogOptions(): LogOptions{
|
||||||
return LogOptions::defaults()
|
// return LogOptions::defaults()
|
||||||
->logUnguarded()->useLogName('senderid_log')->logOnlyDirty()->dontSubmitEmptyLogs();
|
// ->logUnguarded()->useLogName('senderid_log')->logOnlyDirty()->dontSubmitEmptyLogs();
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
public function modified_by_info(){
|
public function modified_by_info(){
|
||||||
|
|||||||
27
app/Models/Senderidold.php
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Senderidold extends Model{
|
||||||
|
|
||||||
|
|
||||||
|
protected $guarded = array('id');
|
||||||
|
public $table = "sender_ids_copy";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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', 'network_id');
|
||||||
|
}
|
||||||
|
public function client_info(){
|
||||||
|
return $this->hasOne('App\Models\Client', 'id', 'client_id');
|
||||||
|
}
|
||||||
|
public function created_by_info(){
|
||||||
|
return $this->hasOne('App\Models\StaffMember', 'id', 'created_by');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,21 +3,15 @@
|
|||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
// use Spatie\Activitylog\Traits\LogsActivity;
|
|
||||||
use Spatie\Activitylog\Traits\CausesActivity;
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
|
||||||
|
|
||||||
class SystemUser extends Model
|
class SystemUser extends Model
|
||||||
{
|
{
|
||||||
// use LogsActivity;
|
// use LogsActivity;
|
||||||
use CausesActivity;
|
//use CausesActivity;
|
||||||
protected $guarded = array('id');
|
protected $guarded = array('id');
|
||||||
public $table = "auth_users";
|
public $table = "auth_users";
|
||||||
protected static $logUnguarded = true;
|
// protected static $logUnguarded = true;
|
||||||
// public function getActivitylogOptions(): LogOptions{
|
|
||||||
// return LogOptions::defaults()->logUnguarded();
|
|
||||||
// }
|
|
||||||
|
|
||||||
public function designation_info(){
|
public function designation_info(){
|
||||||
return $this->hasOne('App\Models\Designation', 'id', 'designation');
|
return $this->hasOne('App\Models\Designation', 'id', 'designation');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,14 +13,15 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
*/
|
*/
|
||||||
public function boot()
|
public function boot()
|
||||||
{
|
{
|
||||||
// $monolog = \Log::getMonolog();
|
#$monolog = \Log::getMonolog();
|
||||||
//new --- > xoxp-677819906294-675678554016-693747277911-5166bcbb9a5fc3d5434b42a10c4d358a
|
//new --- > xoxp-677819906294-675678554016-693747277911-5166bcbb9a5fc3d5434b42a10c4d358a
|
||||||
//old ---> xoxp-677819906294-675678554016-720956680656-4a6b5d0fcb00e9e0512c14341d3a7563
|
//old ---> xoxp-677819906294-675678554016-720956680656-4a6b5d0fcb00e9e0512c14341d3a7563
|
||||||
//clickml_erp_ntfy
|
//clickml_erp_ntfy
|
||||||
//click_erp_notify
|
//click_erp_notify
|
||||||
// $slackHandler = new \Monolog\Handler\SlackHandler('xoxp-677819906294-675678554016-693747277911-5166bcbb9a5fc3d5434b42a10c4d358a', '#clickml_erp_ntfy', 'Monolog', true, null, \Monolog\Logger::ERROR);
|
// team_erp
|
||||||
// $slackHandler = new \Monolog\Handler\SlackHandler('xoxp-677819906294-675678554016-693747277911-5166bcbb9a5fc3d5434b42a10c4d358a', '#clickml_erp_ntfy', 'Monolog', true, null, \Monolog\Logger::INFO);
|
// $slackHandler = new \Monolog\Handler\SlackHandler('xoxp-677819906294-675678554016-693747277911-5166bcbb9a5fc3d5434b42a10c4d358a', '#team_erp', 'Monolog', true, null, \Monolog\Logger::ERROR);
|
||||||
// $slackHandler = new \Monolog\Handler\SlackHandler('xoxp-677819906294-675678554016-693747277911-5166bcbb9a5fc3d5434b42a10c4d358a', '#clickml_erp_ntfy', 'Monolog', true, null, \Monolog\Logger::DEBUG);
|
// $slackHandler = new \Monolog\Handler\SlackHandler('xoxp-677819906294-675678554016-693747277911-5166bcbb9a5fc3d5434b42a10c4d358a', '#team_erp', 'Monolog', true, null, \Monolog\Logger::INFO);
|
||||||
|
// $slackHandler = new \Monolog\Handler\SlackHandler('xoxp-677819906294-675678554016-693747277911-5166bcbb9a5fc3d5434b42a10c4d358a', '#team_erp', 'Monolog', true, null, \Monolog\Logger::DEBUG);
|
||||||
|
|
||||||
// $monolog->pushHandler($slackHandler);
|
// $monolog->pushHandler($slackHandler);
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
"laravel/tinker": "~1.0",
|
"laravel/tinker": "~1.0",
|
||||||
"laravelcollective/html": "^5.4.0",
|
"laravelcollective/html": "^5.4.0",
|
||||||
"maatwebsite/excel": "^3.1",
|
"maatwebsite/excel": "^3.1",
|
||||||
"spatie/laravel-activitylog": "^3.2"
|
"thibaud-dauce/laravel-mattermost-logger": "^1.2"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"filp/whoops": "~2.0",
|
"filp/whoops": "~2.0",
|
||||||
|
|||||||
790
composer.lock
generated
@@ -4,63 +4,8 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "6220800cdce8e79b948fcc3175695707",
|
"content-hash": "d6b526be34793fb2333359d042baaf53",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
|
||||||
"name": "anahkiasen/underscore-php",
|
|
||||||
"version": "2.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/Anahkiasen/underscore-php.git",
|
|
||||||
"reference": "48f97b295c82d99c1fe10d8b0684c43f051b5580"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/Anahkiasen/underscore-php/zipball/48f97b295c82d99c1fe10d8b0684c43f051b5580",
|
|
||||||
"reference": "48f97b295c82d99c1fe10d8b0684c43f051b5580",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/inflector": "^1.0",
|
|
||||||
"patchwork/utf8": "^1.2",
|
|
||||||
"php": ">=5.4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"fabpot/php-cs-fixer": "2.0.*@dev",
|
|
||||||
"phpunit/phpunit": "^4.6"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Underscore\\": [
|
|
||||||
"src",
|
|
||||||
"tests"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Maxime Fabre",
|
|
||||||
"email": "ehtnam6@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A redacted port of Underscore.js for PHP",
|
|
||||||
"keywords": [
|
|
||||||
"internals",
|
|
||||||
"laravel",
|
|
||||||
"toolkit"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/Anahkiasen/underscore-php/issues",
|
|
||||||
"source": "https://github.com/Anahkiasen/underscore-php/tree/develop"
|
|
||||||
},
|
|
||||||
"abandoned": true,
|
|
||||||
"time": "2015-05-16T19:24:58+00:00"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "dnoegel/php-xdg-base-dir",
|
"name": "dnoegel/php-xdg-base-dir",
|
||||||
"version": "v0.1.1",
|
"version": "v0.1.1",
|
||||||
@@ -514,6 +459,331 @@
|
|||||||
},
|
},
|
||||||
"time": "2017-06-15T17:19:42+00:00"
|
"time": "2017-06-15T17:19:42+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "guzzlehttp/guzzle",
|
||||||
|
"version": "7.9.3",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/guzzle/guzzle.git",
|
||||||
|
"reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
|
||||||
|
"reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-json": "*",
|
||||||
|
"guzzlehttp/promises": "^1.5.3 || ^2.0.3",
|
||||||
|
"guzzlehttp/psr7": "^2.7.0",
|
||||||
|
"php": "^7.2.5 || ^8.0",
|
||||||
|
"psr/http-client": "^1.0",
|
||||||
|
"symfony/deprecation-contracts": "^2.2 || ^3.0"
|
||||||
|
},
|
||||||
|
"provide": {
|
||||||
|
"psr/http-client-implementation": "1.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"bamarni/composer-bin-plugin": "^1.8.2",
|
||||||
|
"ext-curl": "*",
|
||||||
|
"guzzle/client-integration-tests": "3.0.2",
|
||||||
|
"php-http/message-factory": "^1.1",
|
||||||
|
"phpunit/phpunit": "^8.5.39 || ^9.6.20",
|
||||||
|
"psr/log": "^1.1 || ^2.0 || ^3.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-curl": "Required for CURL handler support",
|
||||||
|
"ext-intl": "Required for Internationalized Domain Name (IDN) support",
|
||||||
|
"psr/log": "Required for using the Log middleware"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"bamarni-bin": {
|
||||||
|
"bin-links": true,
|
||||||
|
"forward-command": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"src/functions_include.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"GuzzleHttp\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Graham Campbell",
|
||||||
|
"email": "hello@gjcampbell.co.uk",
|
||||||
|
"homepage": "https://github.com/GrahamCampbell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Michael Dowling",
|
||||||
|
"email": "mtdowling@gmail.com",
|
||||||
|
"homepage": "https://github.com/mtdowling"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jeremy Lindblom",
|
||||||
|
"email": "jeremeamia@gmail.com",
|
||||||
|
"homepage": "https://github.com/jeremeamia"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "George Mponos",
|
||||||
|
"email": "gmponos@gmail.com",
|
||||||
|
"homepage": "https://github.com/gmponos"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Tobias Nyholm",
|
||||||
|
"email": "tobias.nyholm@gmail.com",
|
||||||
|
"homepage": "https://github.com/Nyholm"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Márk Sági-Kazár",
|
||||||
|
"email": "mark.sagikazar@gmail.com",
|
||||||
|
"homepage": "https://github.com/sagikazarmark"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Tobias Schultze",
|
||||||
|
"email": "webmaster@tubo-world.de",
|
||||||
|
"homepage": "https://github.com/Tobion"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Guzzle is a PHP HTTP client library",
|
||||||
|
"keywords": [
|
||||||
|
"client",
|
||||||
|
"curl",
|
||||||
|
"framework",
|
||||||
|
"http",
|
||||||
|
"http client",
|
||||||
|
"psr-18",
|
||||||
|
"psr-7",
|
||||||
|
"rest",
|
||||||
|
"web service"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/guzzle/guzzle/issues",
|
||||||
|
"source": "https://github.com/guzzle/guzzle/tree/7.9.3"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/GrahamCampbell",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/Nyholm",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-03-27T13:37:11+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "guzzlehttp/promises",
|
||||||
|
"version": "2.2.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/guzzle/promises.git",
|
||||||
|
"reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c",
|
||||||
|
"reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.2.5 || ^8.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"bamarni/composer-bin-plugin": "^1.8.2",
|
||||||
|
"phpunit/phpunit": "^8.5.39 || ^9.6.20"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"bamarni-bin": {
|
||||||
|
"bin-links": true,
|
||||||
|
"forward-command": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"GuzzleHttp\\Promise\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Graham Campbell",
|
||||||
|
"email": "hello@gjcampbell.co.uk",
|
||||||
|
"homepage": "https://github.com/GrahamCampbell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Michael Dowling",
|
||||||
|
"email": "mtdowling@gmail.com",
|
||||||
|
"homepage": "https://github.com/mtdowling"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Tobias Nyholm",
|
||||||
|
"email": "tobias.nyholm@gmail.com",
|
||||||
|
"homepage": "https://github.com/Nyholm"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Tobias Schultze",
|
||||||
|
"email": "webmaster@tubo-world.de",
|
||||||
|
"homepage": "https://github.com/Tobion"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Guzzle promises library",
|
||||||
|
"keywords": [
|
||||||
|
"promise"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/guzzle/promises/issues",
|
||||||
|
"source": "https://github.com/guzzle/promises/tree/2.2.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/GrahamCampbell",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/Nyholm",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-03-27T13:27:01+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "guzzlehttp/psr7",
|
||||||
|
"version": "2.7.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/guzzle/psr7.git",
|
||||||
|
"reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16",
|
||||||
|
"reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.2.5 || ^8.0",
|
||||||
|
"psr/http-factory": "^1.0",
|
||||||
|
"psr/http-message": "^1.1 || ^2.0",
|
||||||
|
"ralouphie/getallheaders": "^3.0"
|
||||||
|
},
|
||||||
|
"provide": {
|
||||||
|
"psr/http-factory-implementation": "1.0",
|
||||||
|
"psr/http-message-implementation": "1.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"bamarni/composer-bin-plugin": "^1.8.2",
|
||||||
|
"http-interop/http-factory-tests": "0.9.0",
|
||||||
|
"phpunit/phpunit": "^8.5.39 || ^9.6.20"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"bamarni-bin": {
|
||||||
|
"bin-links": true,
|
||||||
|
"forward-command": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"GuzzleHttp\\Psr7\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Graham Campbell",
|
||||||
|
"email": "hello@gjcampbell.co.uk",
|
||||||
|
"homepage": "https://github.com/GrahamCampbell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Michael Dowling",
|
||||||
|
"email": "mtdowling@gmail.com",
|
||||||
|
"homepage": "https://github.com/mtdowling"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "George Mponos",
|
||||||
|
"email": "gmponos@gmail.com",
|
||||||
|
"homepage": "https://github.com/gmponos"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Tobias Nyholm",
|
||||||
|
"email": "tobias.nyholm@gmail.com",
|
||||||
|
"homepage": "https://github.com/Nyholm"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Márk Sági-Kazár",
|
||||||
|
"email": "mark.sagikazar@gmail.com",
|
||||||
|
"homepage": "https://github.com/sagikazarmark"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Tobias Schultze",
|
||||||
|
"email": "webmaster@tubo-world.de",
|
||||||
|
"homepage": "https://github.com/Tobion"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Márk Sági-Kazár",
|
||||||
|
"email": "mark.sagikazar@gmail.com",
|
||||||
|
"homepage": "https://sagikazarmark.hu"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PSR-7 message implementation that also provides common utility methods",
|
||||||
|
"keywords": [
|
||||||
|
"http",
|
||||||
|
"message",
|
||||||
|
"psr-7",
|
||||||
|
"request",
|
||||||
|
"response",
|
||||||
|
"stream",
|
||||||
|
"uri",
|
||||||
|
"url"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/guzzle/psr7/issues",
|
||||||
|
"source": "https://github.com/guzzle/psr7/tree/2.7.1"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/GrahamCampbell",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/Nyholm",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-03-27T12:30:47+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "jakub-onderka/php-console-color",
|
"name": "jakub-onderka/php-console-color",
|
||||||
"version": "v0.2",
|
"version": "v0.2",
|
||||||
@@ -1734,83 +2004,6 @@
|
|||||||
},
|
},
|
||||||
"time": "2020-10-15T08:29:30+00:00"
|
"time": "2020-10-15T08:29:30+00:00"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "patchwork/utf8",
|
|
||||||
"version": "v1.3.3",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/tchwork/utf8.git",
|
|
||||||
"reference": "e1fa4d4a57896d074c9a8d01742b688d5db4e9d5"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/tchwork/utf8/zipball/e1fa4d4a57896d074c9a8d01742b688d5db4e9d5",
|
|
||||||
"reference": "e1fa4d4a57896d074c9a8d01742b688d5db4e9d5",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"lib-pcre": ">=7.3",
|
|
||||||
"php": ">=5.3.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"symfony/phpunit-bridge": "^3.4|^4.4"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ext-iconv": "Use iconv for best performance",
|
|
||||||
"ext-intl": "Use Intl for best performance",
|
|
||||||
"ext-mbstring": "Use Mbstring for best performance",
|
|
||||||
"ext-wfio": "Use WFIO for UTF-8 filesystem access on Windows"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.3-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Patchwork\\": "src/Patchwork/"
|
|
||||||
},
|
|
||||||
"classmap": [
|
|
||||||
"src/Normalizer.php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"(Apache-2.0 or GPL-2.0)"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Nicolas Grekas",
|
|
||||||
"email": "p@tchwork.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Portable and performant UTF-8, Unicode and Grapheme Clusters for PHP",
|
|
||||||
"homepage": "https://github.com/tchwork/utf8",
|
|
||||||
"keywords": [
|
|
||||||
"grapheme",
|
|
||||||
"i18n",
|
|
||||||
"unicode",
|
|
||||||
"utf-8",
|
|
||||||
"utf8"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/tchwork/utf8/issues",
|
|
||||||
"source": "https://github.com/tchwork/utf8/tree/v1.3.3"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/nicolas-grekas",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://tidelift.com/funding/github/packagist/patchwork/utf8",
|
|
||||||
"type": "tidelift"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"abandoned": "symfony/polyfill-mbstring or symfony/string",
|
|
||||||
"time": "2021-01-07T16:38:58+00:00"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "phpoffice/phpspreadsheet",
|
"name": "phpoffice/phpspreadsheet",
|
||||||
"version": "1.29.0",
|
"version": "1.29.0",
|
||||||
@@ -2303,6 +2496,50 @@
|
|||||||
},
|
},
|
||||||
"time": "2019-12-06T14:19:43+00:00"
|
"time": "2019-12-06T14:19:43+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "ralouphie/getallheaders",
|
||||||
|
"version": "3.0.3",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/ralouphie/getallheaders.git",
|
||||||
|
"reference": "120b605dfeb996808c31b6477290a714d356e822"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
|
||||||
|
"reference": "120b605dfeb996808c31b6477290a714d356e822",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.6"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"php-coveralls/php-coveralls": "^2.1",
|
||||||
|
"phpunit/phpunit": "^5 || ^6.5"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"src/getallheaders.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Ralph Khattar",
|
||||||
|
"email": "ralph.khattar@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A polyfill for getallheaders.",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/ralouphie/getallheaders/issues",
|
||||||
|
"source": "https://github.com/ralouphie/getallheaders/tree/develop"
|
||||||
|
},
|
||||||
|
"time": "2019-03-08T08:55:37+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "ramsey/uuid",
|
"name": "ramsey/uuid",
|
||||||
"version": "3.9.4",
|
"version": "3.9.4",
|
||||||
@@ -2406,144 +2643,6 @@
|
|||||||
],
|
],
|
||||||
"time": "2021-08-06T20:32:15+00:00"
|
"time": "2021-08-06T20:32:15+00:00"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "spatie/laravel-activitylog",
|
|
||||||
"version": "3.2.2",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/spatie/laravel-activitylog.git",
|
|
||||||
"reference": "8db5d2f314a26ee9a1617bdecd98947fdf29fcfa"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/spatie/laravel-activitylog/zipball/8db5d2f314a26ee9a1617bdecd98947fdf29fcfa",
|
|
||||||
"reference": "8db5d2f314a26ee9a1617bdecd98947fdf29fcfa",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"illuminate/config": "~5.5.0|~5.6.0|~5.7.0|~5.8.0",
|
|
||||||
"illuminate/database": "~5.5.0|~5.6.0|~5.7.0|~5.8.0",
|
|
||||||
"illuminate/support": "~5.5.0|~5.6.0|~5.7.0|~5.8.0",
|
|
||||||
"php": "^7.1",
|
|
||||||
"spatie/string": "^2.1"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"ext-json": "*",
|
|
||||||
"orchestra/testbench": "~3.5.0|~3.6.0|~3.7.0|~3.8.0",
|
|
||||||
"phpunit/phpunit": "^7.4 | ^8.0",
|
|
||||||
"scrutinizer/ocular": "^1.5"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"laravel": {
|
|
||||||
"providers": [
|
|
||||||
"Spatie\\Activitylog\\ActivitylogServiceProvider"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"files": [
|
|
||||||
"src/helpers.php"
|
|
||||||
],
|
|
||||||
"psr-4": {
|
|
||||||
"Spatie\\Activitylog\\": "src"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian De Deyne",
|
|
||||||
"email": "sebastian@spatie.be",
|
|
||||||
"homepage": "https://spatie.be",
|
|
||||||
"role": "Developer"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Freek Van der Herten",
|
|
||||||
"email": "freek@spatie.be",
|
|
||||||
"homepage": "https://spatie.be",
|
|
||||||
"role": "Developer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A very simple activity logger to monitor the users of your website or application",
|
|
||||||
"homepage": "https://github.com/spatie/activitylog",
|
|
||||||
"keywords": [
|
|
||||||
"activity",
|
|
||||||
"laravel",
|
|
||||||
"log",
|
|
||||||
"spatie",
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/spatie/laravel-activitylog/issues",
|
|
||||||
"source": "https://github.com/spatie/laravel-activitylog/tree/master"
|
|
||||||
},
|
|
||||||
"time": "2019-02-27T12:41:17+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "spatie/string",
|
|
||||||
"version": "2.2.3",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/spatie/string.git",
|
|
||||||
"reference": "79ed501c8d624fb85bf71da4254e1878fb616c51"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/spatie/string/zipball/79ed501c8d624fb85bf71da4254e1878fb616c51",
|
|
||||||
"reference": "79ed501c8d624fb85bf71da4254e1878fb616c51",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"anahkiasen/underscore-php": "^2.0",
|
|
||||||
"php": "^7.0|^8.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"autoload": {
|
|
||||||
"files": [
|
|
||||||
"src/string_functions.php"
|
|
||||||
],
|
|
||||||
"psr-4": {
|
|
||||||
"Spatie\\String\\": "src"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Freek Van der Herten",
|
|
||||||
"email": "freek@spatie.be",
|
|
||||||
"homepage": "https://spatie.be",
|
|
||||||
"role": "Developer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "String handling evolved",
|
|
||||||
"homepage": "https://github.com/spatie/string",
|
|
||||||
"keywords": [
|
|
||||||
"handling",
|
|
||||||
"handy",
|
|
||||||
"spatie",
|
|
||||||
"string"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/spatie/string/issues",
|
|
||||||
"source": "https://github.com/spatie/string/tree/2.2.3"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://spatie.be/open-source/support-us",
|
|
||||||
"type": "custom"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-11-28T22:24:20+00:00"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "swiftmailer/swiftmailer",
|
"name": "swiftmailer/swiftmailer",
|
||||||
"version": "v6.2.7",
|
"version": "v6.2.7",
|
||||||
@@ -2837,6 +2936,73 @@
|
|||||||
],
|
],
|
||||||
"time": "2020-10-24T10:57:07+00:00"
|
"time": "2020-10-24T10:57:07+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/deprecation-contracts",
|
||||||
|
"version": "v2.5.4",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/deprecation-contracts.git",
|
||||||
|
"reference": "605389f2a7e5625f273b53960dc46aeaf9c62918"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/605389f2a7e5625f273b53960dc46aeaf9c62918",
|
||||||
|
"reference": "605389f2a7e5625f273b53960dc46aeaf9c62918",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=7.1"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"thanks": {
|
||||||
|
"url": "https://github.com/symfony/contracts",
|
||||||
|
"name": "symfony/contracts"
|
||||||
|
},
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-main": "2.5-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"function.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Nicolas Grekas",
|
||||||
|
"email": "p@tchwork.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A generic function and convention to trigger deprecation notices",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.4"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2024-09-25T14:11:13+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/event-dispatcher",
|
"name": "symfony/event-dispatcher",
|
||||||
"version": "v4.4.30",
|
"version": "v4.4.30",
|
||||||
@@ -4321,6 +4487,84 @@
|
|||||||
],
|
],
|
||||||
"time": "2020-10-24T10:57:07+00:00"
|
"time": "2020-10-24T10:57:07+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "thibaud-dauce/laravel-mattermost-logger",
|
||||||
|
"version": "1.2.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitlab.com/thibauddauce/laravel-mattermost-logger.git",
|
||||||
|
"reference": "c5b5822c1df3f2ae8821bf124bf71b736885699b"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://gitlab.com/api/v4/projects/thibauddauce%2Flaravel-mattermost-logger/repository/archive.zip?sha=c5b5822c1df3f2ae8821bf124bf71b736885699b",
|
||||||
|
"reference": "c5b5822c1df3f2ae8821bf124bf71b736885699b",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"monolog/monolog": "^1.23",
|
||||||
|
"thibaud-dauce/mattermost-php": "^1.2"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"ThibaudDauce\\MattermostLogger\\": "src"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Thibaud Dauce",
|
||||||
|
"email": "thibaud.dauce@pm.me"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2018-11-07T15:59:04+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "thibaud-dauce/mattermost-php",
|
||||||
|
"version": "1.3.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/ThibaudDauce/mattermost-php.git",
|
||||||
|
"reference": "0299c3dc6a2f7adacf663db6dcc93ad5a7b99bd2"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/ThibaudDauce/mattermost-php/zipball/0299c3dc6a2f7adacf663db6dcc93ad5a7b99bd2",
|
||||||
|
"reference": "0299c3dc6a2f7adacf663db6dcc93ad5a7b99bd2",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"guzzlehttp/guzzle": "^6.2|^7.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"ThibaudDauce\\Mattermost\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Thibaud Dauce",
|
||||||
|
"email": "thibaud@dauce.fr",
|
||||||
|
"homepage": "https://www.formations-laravel.fr"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Mattermost PHP driver to send incoming webhooks",
|
||||||
|
"homepage": "https://github.com/thibaud-dauce/mattermost-php",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/ThibaudDauce/mattermost-php/issues",
|
||||||
|
"source": "https://github.com/ThibaudDauce/mattermost-php/tree/1.3.0"
|
||||||
|
},
|
||||||
|
"time": "2020-11-26T13:26:31+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "tijsverkoyen/css-to-inline-styles",
|
"name": "tijsverkoyen/css-to-inline-styles",
|
||||||
"version": "2.2.3",
|
"version": "2.2.3",
|
||||||
@@ -6509,12 +6753,12 @@
|
|||||||
],
|
],
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"minimum-stability": "stable",
|
"minimum-stability": "stable",
|
||||||
"stability-flags": [],
|
"stability-flags": {},
|
||||||
"prefer-stable": false,
|
"prefer-stable": false,
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
"platform": {
|
"platform": {
|
||||||
"php": ">=7.0.0"
|
"php": ">=7.0.0"
|
||||||
},
|
},
|
||||||
"platform-dev": [],
|
"platform-dev": {},
|
||||||
"plugin-api-version": "2.6.0"
|
"plugin-api-version": "2.6.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ return [
|
|||||||
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
||||||
'region' => env('AWS_DEFAULT_REGION'),
|
'region' => env('AWS_DEFAULT_REGION'),
|
||||||
'bucket' => env('AWS_BUCKET'),
|
'bucket' => env('AWS_BUCKET'),
|
||||||
|
'endpoint' => env('AWS_ENDPOINT'),
|
||||||
],
|
],
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|||||||
7
info.md
@@ -1,2 +1,7 @@
|
|||||||
|
# Details
|
||||||
|
|
||||||
- Balance notifications
|
- Balance notifications
|
||||||
|
# Charity notes entry | deleted
|
||||||
|
INSERT INTO `client_finances` (`id`, `client_id`, `invoice_number`, `invoice_amount`, `invoice_date`, `invoice_status`, `user_id`, `services`, `short_code`, `remarks`, `created_at`, `updated_at`)
|
||||||
|
VALUES
|
||||||
|
('602', '36', '1878', '6.16', '2025-06-17 00:00:00', 'UNPAID', '8', 'A2P', '', 'May 2025 SMS traffic', '2025-06-17 12:13:37', '2025-06-17 12:13:37');
|
||||||
|
|||||||
5
live.env
@@ -44,3 +44,8 @@ PUSHER_APP_CLUSTER=mt1
|
|||||||
|
|
||||||
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
||||||
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,14 @@
|
|||||||
- send holiday reminders
|
- send holiday reminders
|
||||||
- Use the calender
|
- Use the calender
|
||||||
|
|
||||||
|
|
||||||
|
## HI @Kwesi Banson
|
||||||
|
|
||||||
|
I have an idea, customers whose status are put to dormant – should be kinda locked or change colour, i.e not waste our time. Can you add that on the system?
|
||||||
|
Kind Regards
|
||||||
|
Sam
|
||||||
|
|
||||||
|
|
||||||
# Onboarding process
|
# Onboarding process
|
||||||
Thank you sir,
|
Thank you sir,
|
||||||
|
|
||||||
@@ -64,3 +72,6 @@ Comments
|
|||||||
- reports on new notes
|
- reports on new notes
|
||||||
|
|
||||||
- @exoscutter
|
- @exoscutter
|
||||||
|
|
||||||
|
## Profile Management
|
||||||
|
- activate the edit button with
|
||||||
|
|||||||
BIN
public/assets/img/ClickMobile_final_logo copy.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
public/assets/img/ClickMobile_final_logo.jpg
Normal file
|
After Width: | Height: | Size: 571 KiB |
BIN
public/assets/img/ClickMobile_final_logo.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/assets/img/clicklogo.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
public/assets/img/logo-light_sm.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
public/assets/img/report-icon.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/assets/img/user 2.png
Executable file
|
After Width: | Height: | Size: 7.4 KiB |
2
public/assets/js/clientshow.js
vendored
@@ -1,4 +1,4 @@
|
|||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
//console.log('foo bar');
|
//console.log('foo bar');
|
||||||
var d = new Date();
|
var d = new Date();
|
||||||
var month = d.getMonth()+1;
|
var month = d.getMonth()+1;
|
||||||
|
|||||||
64
public/assets/js/dashboard.js
vendored
@@ -1,25 +1,73 @@
|
|||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
/*
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "get",
|
type: "get",
|
||||||
url: base_url + '/dashboard/get_events',
|
url: base_url + '/dashboard/getquotes',
|
||||||
// data : formData,
|
// data : formData,
|
||||||
processData: false,
|
processData: false,
|
||||||
contentType: false,
|
contentType: false,
|
||||||
async: false,
|
async: false,
|
||||||
success: function (data){
|
success: function (data){
|
||||||
//init_calendar(data);
|
console.log(data);
|
||||||
|
$('#dailyQuoteBlock').text(data.quote);
|
||||||
|
$('#authorParagraph').text(data.author);
|
||||||
|
|
||||||
},
|
},
|
||||||
error: function(error){
|
error: function(error){
|
||||||
var output = $.parseJSON(error.responseText);
|
var output = $.parseJSON(error.responseText);
|
||||||
console.log(output.errors);
|
console.log(output.errors);
|
||||||
$('#ipNotifyArea').removeClass('hidden');
|
$('#dailyQuoteBlock').text('');
|
||||||
$('#ipNotifyArea').addClass('alert alert-danger');
|
|
||||||
$.each(output.errors, function (key, value) {
|
$.each(output.errors, function (key, value) {
|
||||||
//console.log(value[0]);
|
console.log(value[0]);
|
||||||
$('#ipNotifyArea').text(value[0]);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
*/
|
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "get",
|
||||||
|
url: base_url + '/dashboard/getmnoexpiry',
|
||||||
|
// data : formData,
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
async: false,
|
||||||
|
success: function (data){
|
||||||
|
console.log(data);
|
||||||
|
$('#mnoExpiredHref').text(data.expired_overall);
|
||||||
|
$('#mnoExpiringThisMonth').text(data.expiring_current_month);
|
||||||
|
$('#mnoExpiringInThreeMonths').text(data.expiring_three_months);
|
||||||
|
|
||||||
|
},
|
||||||
|
error: function(error){
|
||||||
|
var output = $.parseJSON(error.responseText);
|
||||||
|
console.log(output.errors);
|
||||||
|
$('#dailyQuoteBlock').text('');
|
||||||
|
$.each(output.errors, function (key, value) {
|
||||||
|
console.log(value[0]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$.ajax({
|
||||||
|
type: "get",
|
||||||
|
url: base_url + '/dashboard/getclientexpiry',
|
||||||
|
// data : formData,
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
async: false,
|
||||||
|
success: function (data){
|
||||||
|
console.log(data);
|
||||||
|
$('#clientExpiredHref').text(data.expired_overall);
|
||||||
|
$('#clientExpiringThisMonth').text(data.expiring_current_month);
|
||||||
|
$('#clientExpiringInThreeMonths').text(data.expiring_three_months);
|
||||||
|
},
|
||||||
|
error: function(error){
|
||||||
|
var output = $.parseJSON(error.responseText);
|
||||||
|
console.log(output.errors);
|
||||||
|
$('#dailyQuoteBlock').text('');
|
||||||
|
$.each(output.errors, function (key, value) {
|
||||||
|
console.log(value[0]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
16
public/assets/js/laravel-2025-06-04.log
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
[2025-06-04 08:59:13] production.INFO: Mphatso Katundu Successfully logged in at : 2025-06-04 08:59:13
|
||||||
|
[2025-06-04 08:59:15] production.INFO: Mphatso Katundu Successfully logged in at : 2025-06-04 08:59:15
|
||||||
|
[2025-06-04 10:18:10] production.INFO: PPXkA9
|
||||||
|
[2025-06-04 11:36:58] production.INFO: Kwesi Banson Successfully logged in at : 2025-06-04 11:36:58
|
||||||
|
[2025-06-04 11:58:49] production.INFO: Charity Mtembezeka Successfully logged in at : 2025-06-04 11:58:49
|
||||||
|
[2025-06-04 13:00:02] production.INFO: MNOs due for renewal
|
||||||
|
[2025-06-04 13:15:21] production.INFO: New notes for : ASTRAL SMS
|
||||||
|
[2025-06-04 13:15:21] production.INFO: New notes triggered by : Charity Mtembezeka
|
||||||
|
[2025-06-04 13:15:21] production.INFO: Astral SMS: Afghanistan route was set for them, they are in the process of testing the route.
|
||||||
|
[2025-06-04 14:00:13] production.INFO: Clients due for renewal TSG Carrier, mansa@click-mobile.com, 15
|
||||||
|
[2025-06-04 14:40:58] production.INFO: New notes for : Zaheen Telecom
|
||||||
|
[2025-06-04 14:40:58] production.INFO: New notes triggered by : Charity Mtembezeka
|
||||||
|
[2025-06-04 14:40:58] production.INFO: Zaheen: Continued our Sierra Leone discussion, they said they will set for us. They wanted Sri Lanka route, but unfortunately, they have lost the traffic.
|
||||||
|
[2025-06-04 14:43:59] production.INFO: New notes for : BBT VOICE & SMS
|
||||||
|
[2025-06-04 14:44:00] production.INFO: New notes triggered by : Charity Mtembezeka
|
||||||
|
[2025-06-04 14:44:00] production.INFO: BBT: Been asking them to check on their Afghanistan route as other messages from Astral SMS are failing.
|
||||||
104
public/assets/js/senderid.js
vendored
@@ -1,36 +1,74 @@
|
|||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
$('#directMno').change(function(tve){
|
|
||||||
tve.preventDefault();
|
|
||||||
// var theIDD = $(this).siblings('.shortCodeEntryRowId').val();
|
|
||||||
var directMnoSelection = $(this).val();
|
|
||||||
$.ajax({
|
|
||||||
type: "GET",
|
|
||||||
url: base_url + '/senderids/get-mno-list/' + directMnoSelection,
|
|
||||||
processData: false,
|
|
||||||
contentType: false,
|
|
||||||
async: false,
|
|
||||||
success: function (data){
|
|
||||||
if (data.code === 1) {
|
|
||||||
$('#networkName').empty();
|
|
||||||
$.each(data.result, function(id, row) {
|
|
||||||
// console.log(row);
|
|
||||||
$('#networkName').append($("<option />").val(row.id).text(row.name));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (data.code > 1) {
|
|
||||||
$.alert({
|
|
||||||
title: 'Alert!',
|
|
||||||
content: data.msg,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$.alert({
|
|
||||||
title: 'Alert!',
|
|
||||||
content: 'Your request could not be handled. Try again !',
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
var directMnoSelectionEditStart = $('#directMnoEdit').val();
|
||||||
});
|
console.log(directMnoSelectionEditStart + " at rest");
|
||||||
});
|
if (directMnoSelectionEditStart == 'YES') {
|
||||||
|
$('#mnoDivEdit').removeClass('hidden');
|
||||||
|
$('#supplierDivEdit').addClass('hidden');
|
||||||
|
// $("#supplierNameEdit").prop("disabled", true);
|
||||||
|
// $("#networkNameEdit").prop("disabled", false);
|
||||||
|
}
|
||||||
|
else if(directMnoSelectionEditStart == 'NO'){
|
||||||
|
console.log('in the NO | at rest');
|
||||||
|
$('#supplierDivEdit').removeClass('hidden');
|
||||||
|
$('#mnoDivEdit').addClass('hidden');
|
||||||
|
// $("#supplierNameEdit").prop("disabled", false);
|
||||||
|
// $("#networkNameEdit").prop("disabled", true);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
console.log('do nothing | at rest');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$('#directMno').change(function(tve){
|
||||||
|
tve.preventDefault();
|
||||||
|
// var theIDD = $(this).siblings('.shortCodeEntryRowId').val();
|
||||||
|
var directMnoSelection = $(this).val();
|
||||||
|
if (directMnoSelection == 'YES') {
|
||||||
|
$('#mnoDiv').removeClass('hidden');
|
||||||
|
$('#supplierDiv').addClass('hidden');
|
||||||
|
$('#mnoDivEdit').removeClass('hidden');
|
||||||
|
// $("#supplierName").prop("disabled", true);
|
||||||
|
// $("#networkNameEdit").prop("disabled", false);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$('#supplierDiv').removeClass('hidden');
|
||||||
|
$('#mnoDiv').addClass('hidden');
|
||||||
|
$('#mnoDivEdit').addClass('hidden');
|
||||||
|
// $("#networkName").prop("disabled", true);
|
||||||
|
// $("#supplierNameEdit").prop("disabled", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$('#directMnoEdit').change(function(tve){
|
||||||
|
tve.preventDefault();
|
||||||
|
var directMnoSelectionEdit = $(this).val();
|
||||||
|
console.log(directMnoSelectionEdit);
|
||||||
|
if (directMnoSelectionEdit == 'YES') {
|
||||||
|
$('#mnoDivEdit').removeClass('hidden');
|
||||||
|
$('#supplierDivEdit').addClass('hidden');
|
||||||
|
// $("#supplierNameEdit").prop("disabled", true);
|
||||||
|
// $("#networkNameEdit").prop("disabled", false);
|
||||||
|
}
|
||||||
|
else if(directMnoSelectionEdit == 'NO'){
|
||||||
|
console.log('in the NO | on change');
|
||||||
|
$('#supplierDivEdit').removeClass('hidden');
|
||||||
|
// $('#networkNameEdit').removeClass('hidden');
|
||||||
|
// $('#mnoDivEdit').addClass('hidden');
|
||||||
|
$('#networkNameEdit').addClass('hidden');
|
||||||
|
// $("#supplierNameEdit").prop("disabled", false);
|
||||||
|
// $("#networkNameEdit").prop("disabled", true);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
console.log('do nothing | on change');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
});
|
});
|
||||||
72
public/assets/js/shortcode.js
vendored
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
$(document).ready(function(){
|
||||||
|
$('.scdates').datetimepicker({
|
||||||
|
format: 'YYYY-MM-DD'
|
||||||
|
});
|
||||||
|
$('select').select2();
|
||||||
|
$('#createSmsShortCodeBtn').click(function(evt){
|
||||||
|
evt.preventDefault();
|
||||||
|
$('#shortCodeType').val('sms');
|
||||||
|
$('#newShortCodeFormModal').modal('show');
|
||||||
|
});
|
||||||
|
$('#createUssdShortCodeBtn').click(function(evt){
|
||||||
|
evt.preventDefault();
|
||||||
|
$('#shortCodeType').val('ussd');
|
||||||
|
$('#newShortCodeFormModal').modal('show');
|
||||||
|
});
|
||||||
|
$('#createVoiceShortCodeBtn').click(function(evt){
|
||||||
|
evt.preventDefault();
|
||||||
|
$('#shortCodeType').val('voice');
|
||||||
|
$('#newShortCodeFormModal').modal('show');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$('#shortCodeForm').submit(function(evt){
|
||||||
|
evt.preventDefault();
|
||||||
|
var formData = new FormData($(this)[0]);
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: base_url + '/clients/shortcode_store',
|
||||||
|
data : formData,
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
async: false,
|
||||||
|
success: function (data){
|
||||||
|
if (data.code === 1) {
|
||||||
|
$.alert({
|
||||||
|
title: 'Alert!',
|
||||||
|
content: 'Short code details successfully saved',
|
||||||
|
});
|
||||||
|
setTimeout(function(){
|
||||||
|
location.reload();
|
||||||
|
}, 5000);
|
||||||
|
}
|
||||||
|
else if (data.code > 1) {
|
||||||
|
$.alert({
|
||||||
|
title: 'Alert!',
|
||||||
|
content: data.msg,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$.alert({
|
||||||
|
title: 'Alert!',
|
||||||
|
content: 'Your request could not be handled. Try again !',
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (data) {
|
||||||
|
var output = $.parseJSON(data.responseText);
|
||||||
|
// console.log(output.errors);
|
||||||
|
$('#notifyArea').removeClass('hidden');
|
||||||
|
$.each(output.errors, function (key, value) {
|
||||||
|
// console.log(value[0]);
|
||||||
|
$('#notifyArea').text(value[0]);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
fail : function(errordata){
|
||||||
|
// console.log(errordata);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
BIN
public/documents/branch_files/erp_1753895310E2dyuq.pdf
Normal file
BIN
public/documents/general_files/erp_1753914490hR3VVq.xlsx
Normal file
BIN
public/documents/general_files/erp_1753916170elyBMt.xlsx
Normal file
BIN
public/documents/general_files/erp_1753917695Gtejv0.xlsx
Normal file
BIN
public/documents/general_files/erp_1753917815N2iumE.xlsx
Normal file
BIN
public/documents/general_files/erp_1753917857v7zmnO.xlsx
Normal file
BIN
public/documents/general_files/erp_1753918039qqaPSB.xlsx
Normal file
BIN
public/documents/general_files/erp_1753918060ToHKSX.xlsx
Normal file
BIN
public/documents/general_files/erp_1753918319cZyyvd.xlsx
Normal file
BIN
public/documents/general_files/erp_1753918658klhKTc.xlsx
Normal file
BIN
public/documents/general_files/erp_1753919067ee424S.xlsx
Normal file
BIN
public/documents/general_files/erp_1753919140q1gP9W.xlsx
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[]
|
||||||
BIN
public/documents/general_files/erp_1753919185U8HT8o.xlsx
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
[]
|
||||||
|
[]
|
||||||
|
[]
|
||||||
|
[]
|
||||||
BIN
public/documents/general_files/erp_1753919231yUSTM3.xlsx
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
[]
|
||||||
|
[]
|
||||||
|
[]
|
||||||
|
[]
|
||||||
BIN
public/documents/general_files/erp_1753919301hQwTYN.xlsx
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
|
[{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null},{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}]
|
||||||
BIN
public/documents/general_files/erp_1753919357B21PmR.xlsx
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
BIN
public/documents/general_files/erp_1753919637gdQl5e.xlsx
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
BIN
public/documents/general_files/erp_1754462925rsOHPo.xlsx
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":"_"}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
BIN
public/documents/general_files/erp_17544635236dZ0bc.xlsx
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":"_"}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
BIN
public/documents/general_files/erp_1754463571aOphsp.xlsx
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":"_"}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
BIN
public/documents/general_files/erp_1754464154elb9JE.xlsx
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":"_"}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
BIN
public/documents/general_files/erp_1754464701W0dgsj.xlsx
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":"_"}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
BIN
public/documents/general_files/erp_1755024195BtFkTh.xlsx
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":"_"}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
BIN
public/documents/general_files/erp_1755029179bM1FB1.xlsx
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":"_"}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
BIN
public/documents/general_files/erp_1755029241vmAuJh.xlsx
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":"_"}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
BIN
public/documents/general_files/erp_1755029330K3Ug8u.xlsx
Normal file
BIN
public/documents/general_files/erp_1755029406JcqbIy.xlsx
Normal file
BIN
public/documents/general_files/erp_1755029510ebCHrp.xlsx
Normal file
BIN
public/documents/general_files/erp_1755029534tBpWzv.xlsx
Normal file
BIN
public/documents/general_files/erp_1755029551Y5Cjse.xlsx
Normal file
BIN
public/documents/general_files/erp_1755029588lDsOyO.xlsx
Normal file
BIN
public/documents/general_files/erp_1755029609xm9Zsj.xlsx
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":"_"}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
|
{"senderid":null,"direct_mno":null,"mno_name":null,"supplier_name":null,"status":"active","remarks":null}
|
||||||
BIN
public/documents/general_files/senderid_sample_file.xlsx
Normal file
BIN
public/documents/mno_files/erp_1748982331rqpL.xlsx
Normal file
BIN
public/documents/mno_files/erp_1748982346TO4R.xlsx
Normal file
BIN
public/documents/mno_files/erp_17489824714qWS.xlsx
Normal file
BIN
public/documents/mno_files/erp_17489844687e9b.xlsx
Normal file
@@ -4,22 +4,33 @@
|
|||||||
- Services
|
- Services
|
||||||
- Server Overview
|
- Server Overview
|
||||||
|
|
||||||
# 2023-01
|
## 2023-01
|
||||||
# Client Management System (CMS)
|
## Client Management System (CMS)
|
||||||
- list of customers with their Account Managers based on categories (filters)
|
- list of customers with their Account Managers based on categories (filters)
|
||||||
## Categories
|
## Categories
|
||||||
- - Prospective
|
- - Prospective
|
||||||
- - Live
|
- - Live
|
||||||
- - Inactive
|
- - Inactive
|
||||||
|
|
||||||
|
## 2025
|
||||||
|
- Password Management
|
||||||
|
- Leave Management
|
||||||
|
- Accountant Dashboard
|
||||||
|
- VPN Module
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<canvas width="600" height="200" style="width: 600px; height: 200px;"></canvas>
|
|
||||||
|
|
||||||
# Call with Priscilla - 30-07-2024
|
# Call with Priscilla - 30-07-2024
|
||||||
## Custom Reminders
|
## Custom Reminders
|
||||||
- Email :
|
- Email :
|
||||||
- Subject
|
- Subject
|
||||||
- Body :
|
- Body :
|
||||||
- Date :
|
- Date :
|
||||||
|
|
||||||
|
Sender ID
|
||||||
|
- Applied to MNO
|
||||||
|
Applied to Aggregator
|
||||||
|
Approved on MNO
|
||||||
|
Approved on Aggregator
|
||||||
|
Active
|
||||||
|
InActive
|
||||||
|
|
||||||
|
|||||||
@@ -345,6 +345,9 @@
|
|||||||
|
|
||||||
Inactive
|
Inactive
|
||||||
<input type="radio" class="flat" name="status" id="statusInactive" value="Inactive" <?php echo ($client->status == 'Inactive') ? "checked" : ""; ?> />
|
<input type="radio" class="flat" name="status" id="statusInactive" value="Inactive" <?php echo ($client->status == 'Inactive') ? "checked" : ""; ?> />
|
||||||
|
|
||||||
|
Cancelled
|
||||||
|
<input type="radio" class="flat" name="status" id="statusCancelled" value="Cancelled" <?php echo ($client->status == 'Cancelled') ? "checked" : ""; ?> />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
@@ -358,7 +361,7 @@
|
|||||||
@if($current_pending_stage !== 'COMPLETED')
|
@if($current_pending_stage !== 'COMPLETED')
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="form-group" >
|
<div class="form-group" >
|
||||||
<!-- style="background-color: skyblue;"-->
|
<!-- style="background-color: skyblue;"-->
|
||||||
<div class=" {{ $errors->has('onboarding_sub_items') ? 'has-error' : ''}}">
|
<div class=" {{ $errors->has('onboarding_sub_items') ? 'has-error' : ''}}">
|
||||||
<label class="" for="payment_mode">Onboarding Stage ({{ $current_pending_stage }}) | Click below to select </label>
|
<label class="" for="payment_mode">Onboarding Stage ({{ $current_pending_stage }}) | Click below to select </label>
|
||||||
{!! Form::select('onboarding_sub_items_progress[]', $onboarding_sub_items, $onboarding_sub_items_progress, ['class' => 'form-control' , 'id' => 'progressIndicators', 'multiple' => 'true']) !!}
|
{!! Form::select('onboarding_sub_items_progress[]', $onboarding_sub_items, $onboarding_sub_items_progress, ['class' => 'form-control' , 'id' => 'progressIndicators', 'multiple' => 'true']) !!}
|
||||||
@@ -413,7 +416,7 @@
|
|||||||
});
|
});
|
||||||
$('#contractValidity').datetimepicker({
|
$('#contractValidity').datetimepicker({
|
||||||
format: 'YYYY-MM-DD'
|
format: 'YYYY-MM-DD'
|
||||||
});
|
});
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
});
|
});
|
||||||
|
|||||||
187
resources/views/client/index-inactive.blade.php
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
@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">Inactive Clients</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="title_right">
|
||||||
|
<div class="row">
|
||||||
|
<form method="GET" action="{!! url('clients') !!}">
|
||||||
|
<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">
|
||||||
|
<!-- <a href="{!! url('clients') !!}" 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 class="text-danger">Inactive Clients </h2>
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="x_content">
|
||||||
|
<div>
|
||||||
|
<button id="inactive-clients-download-xlsx" class="btn btn-success btn-sm"><i class="fa fa-file-excel-o"></i> Download XLSX</button>
|
||||||
|
<button id="inactive-clients-download-pdf" class="btn btn-danger btn-sm"><i class="fa fa-file-pdf-o"></i> Download PDF</button>
|
||||||
|
</div>
|
||||||
|
<div id="clientsTable"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('javascript')
|
||||||
|
<script src="{!! url('public/assets/vendors/tabulator/js/tabulator.js') !!}"></script>
|
||||||
|
<script type="text/javascript" src="{!! url('public/assets/vendors/tabulator/js/xlsx.full.min.js') !!}"></script>
|
||||||
|
<script type="text/javascript" src="{!! url('public/assets/vendors/tabulator/js/jspdf.min.js') !!}"></script>
|
||||||
|
<script type="text/javascript" src="{!! url('public/assets/vendors/tabulator/js/jspdf.plugin.autotable.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 + "/clients/"+rowID+"' class='btn btn-link'>"+url+"</a>";
|
||||||
|
//return '<a href="'+ base_url + '"/clients/"'+rowID+'" class="btn btn-link">'+ url +'</a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
function statusDisplay(cell, formatterParams){
|
||||||
|
var url = cell.getValue();
|
||||||
|
var rowID = cell.getData().id
|
||||||
|
return "<a href='"+ base_url + "/clients/"+rowID+"' class='btn btn-link'>"+url+"</a>";
|
||||||
|
}
|
||||||
|
var table = new Tabulator("#clientsTable", {
|
||||||
|
ajaxURL: "inactive-clients/all",
|
||||||
|
paginationSize: 10,
|
||||||
|
paginationSizeSelector: true,
|
||||||
|
paginationSizeSelector:[5, 10, 25, 50, 100, 200],
|
||||||
|
layout: "fitColumns",
|
||||||
|
pagination: "local",
|
||||||
|
selectable: false,
|
||||||
|
printAsHtml: true,
|
||||||
|
ajaxLoaderLoading: $('#logo_spinner').html(),
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: "Client",
|
||||||
|
field: "name",
|
||||||
|
sorter: "string",
|
||||||
|
formatter:link,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Account Manager",
|
||||||
|
field: "accountMgr",
|
||||||
|
sorter: "string",
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
{ title:"Onboarding Progress Score",
|
||||||
|
field:"progress_indicator_score",
|
||||||
|
sorter:"number",
|
||||||
|
hozAlign:"left",
|
||||||
|
formatter:"progress",
|
||||||
|
width:200,
|
||||||
|
editable:true
|
||||||
|
},
|
||||||
|
*/
|
||||||
|
{ title:"Onboarding %",
|
||||||
|
field:"progress_indicator_score",
|
||||||
|
sorter:"number",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Status",
|
||||||
|
field: "status",
|
||||||
|
sorter: "string",
|
||||||
|
formatter:'Red',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Country",
|
||||||
|
field: "country",
|
||||||
|
sorter: "string",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Flag",
|
||||||
|
field: "theflag",
|
||||||
|
download: false,
|
||||||
|
formatter:"image", formatterParams:{
|
||||||
|
height:"20px",
|
||||||
|
width:"30px",
|
||||||
|
// urlPrefix:"http://website.com/images/",
|
||||||
|
// urlSuffix:".png",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Last Modified By",
|
||||||
|
field: "modifiedBy",
|
||||||
|
sorter: "string",
|
||||||
|
}
|
||||||
|
],
|
||||||
|
// $('#clients-download-xlsx').click(function(){
|
||||||
|
// table.download("xlsx", "client-list.xlsx", {sheetName:"Sheet 1"});
|
||||||
|
// });
|
||||||
|
|
||||||
|
rowClick:function(e, row){
|
||||||
|
var userID = row.getData().id;
|
||||||
|
//$('#userEditModal').modal('show');
|
||||||
|
},
|
||||||
|
});
|
||||||
|
document.getElementById("inactive-clients-download-xlsx").addEventListener("click", function(){
|
||||||
|
table.download("xlsx", "client-list.xlsx", {sheetName:"Sheet 1"});
|
||||||
|
});
|
||||||
|
//trigger download of data.pdf file
|
||||||
|
document.getElementById("inactive-clients-download-pdf").addEventListener("click", function(){
|
||||||
|
table.download("pdf", "client-list.pdf", {
|
||||||
|
orientation:"portrait", //set page orientation to portrait
|
||||||
|
title:"Click Mobile - Clients", //add title to report
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#keywordField').on('keyup', function(){
|
||||||
|
console.log('up');
|
||||||
|
var keyword = $(this).val();
|
||||||
|
table.setData("inactive-clients/all?keyword=" + keyword);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
@endsection
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||||
<div class="x_panel">
|
<div class="x_panel">
|
||||||
<div class="x_title">
|
<div class="x_title">
|
||||||
Update Onboarding Checklist
|
Onboarding Checklist Status
|
||||||
@include('commons.notifications')
|
@include('commons.notifications')
|
||||||
<div class="clearfix"></div>
|
<div class="clearfix"></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
<br>
|
<br>
|
||||||
|
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-striped table-bordered table-condensed" style="width: 100%;">
|
<table class="table table-striped table-bordered jambo_table table-condensed" style="width: 100%;">
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="headings">
|
<tr class="headings">
|
||||||
<th class="column-title">Stage</th>
|
<th class="column-title">Stage</th>
|
||||||
@@ -46,12 +46,12 @@
|
|||||||
</tr>
|
</tr>
|
||||||
@else
|
@else
|
||||||
@foreach ($onboarding_stages as $row)
|
@foreach ($onboarding_stages as $row)
|
||||||
<tr class="even pointer">
|
<tr class="even pointer" scope="row">
|
||||||
<td class="mes-td" >{{ $row->stage_id }}</td>
|
<td class="<?php echo ($row->stage_id == 1) ? 'bg-success' : ((($row->stage_id == 2)) ? 'bg-warning' : 'bg-info'); ?> " >{{ $row->stage_id }}</td>
|
||||||
<td class="mes-td">{{ $row->name }}</td>
|
<td class="">{{ $row->name }}</td>
|
||||||
<td class="mes-td <?php echo ($row->status == 'COMPLETED') ? 'text-success' : 'text-danger'; ?>" >
|
<td class="<?php echo ($row->status == 'COMPLETED') ? 'text-success' : 'text-danger'; ?>" >
|
||||||
{{ $row->status }}
|
{{ $row->status }}
|
||||||
|
<!-- (($row->stage_id == 3)) ? 'bg-info' : 'bg-success'; -->
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|||||||
289
resources/views/client/show.blade copy11-04-2025.php
Executable file
@@ -0,0 +1,289 @@
|
|||||||
|
@extends('layouts.master')
|
||||||
|
@section('page_title')
|
||||||
|
@if(isset($page_title))
|
||||||
|
{{ $page_title }}
|
||||||
|
@endif
|
||||||
|
@endsection
|
||||||
|
@section('css')
|
||||||
|
<link href="{{ url('public/assets/vendors/iCheck/skins/flat/green.css') }}" rel="stylesheet">
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
@include('client.partials.new_notes')
|
||||||
|
@include('client.partials.edit-notes')
|
||||||
|
@include('client.partials.finance')
|
||||||
|
@include('client.partials.create-shortcodes')
|
||||||
|
@include('client.partials.edit-shortcodes')
|
||||||
|
@include('client.partials.edit-finance')
|
||||||
|
@include('client.partials.progress_indicator_details')
|
||||||
|
@include('client.partials.support_fees_form')
|
||||||
|
@include('client.partials.create-senderids')
|
||||||
|
<?php ?>
|
||||||
|
<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-12">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3 col-sm-3 col-xs-12 profile_left">
|
||||||
|
<div class="profile_img">
|
||||||
|
<div id="crop-avatar">
|
||||||
|
<!-- Current avatar -->
|
||||||
|
@if($showclient->country_flag_info !== null)
|
||||||
|
<img class="img-responsives avatar-views" src="{{ url($showclient->country_flag_info->url) }}" alt="Generic Client Icon" title="Country Flag" width="100px">
|
||||||
|
@else
|
||||||
|
|
||||||
|
<img class="img-responsive avatar-view" src="{{ url('public/assets/img/generic-client.png') }}" alt="Generic Client Icon" title="Change the avatar" width="100px">
|
||||||
|
@endif
|
||||||
|
</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>
|
||||||
|
<span role="button" id="progressIndicatorBtn" class="label label-{{ $progress_status_bg }}"> Progress: {{ $showclient->progress_indicator_score }}%</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
|
||||||
|
@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>
|
||||||
|
<a class="btn btn-primary" href="{{ url('clients/onboarding', $showclient->id) }}"><i class="fa fa-edit m-right-xs"></i> Onboarding Checklist</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 />
|
||||||
|
|
||||||
|
<!-- 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="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="" role="tabpanel" data-example-id="togglable-tabs">
|
||||||
|
<div class="col-xs-3">
|
||||||
|
<ul id="myTab" class="nav nav-tabs bar_tabs tabs-left" role="tablist">
|
||||||
|
<li role="presentation" class=""><a href="#tabContract" role="tab" id="contract-tab2" class="text-info bg-info" data-toggle="tab" aria-expanded="false">Contract</a></li>
|
||||||
|
<li role="presentation" class=""><a href="#tabFinance" role="tab" id="finance-tab2" class="text-success" data-toggle="tab" aria-expanded="false">Finance</a></li>
|
||||||
|
<li role="presentation" class=""><a href="#tabNotes" role="tab" id="notes-tab2" class="text-default" data-toggle="tab" aria-expanded="false">Notes</a></li>
|
||||||
|
<li role="presentation" class=""><a href="#tabSenderIDs" role="tab" id="senderIds-tab2" class="text-warning" data-toggle="tab" aria-expanded="false">Sender IDs</a></li>
|
||||||
|
<li role="presentation" class=""><a href="#tabSmsShortCode" role="tab" id="smsshortcode-tab2" class="text-info" data-toggle="tab" aria-expanded="false">SMS Short Codes</a></li>
|
||||||
|
<li role="presentation" class=""><a href="#tabUssdShortCode" role="tab" id="ussdshortcode-tab2" class="text-success" data-toggle="tab" aria-expanded="false">USSD Short Codes</a></li>
|
||||||
|
<li role="presentation" class=""><a href="#tabVoiceShortCode" role="tab" id="voiceshortcode-tab2" class="text-warning" data-toggle="tab" aria-expanded="false">Voice Short Codes</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-9">
|
||||||
|
<div id="myTabContent" class="tab-content">
|
||||||
|
|
||||||
|
<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>
|
||||||
|
@if($showclient->contract_auto_renew != 'YES')
|
||||||
|
<p>Renewal Due : <strong class="text-<?php echo ($highlight_colour == 'none') ? '' : 'danger'; ?> "> {{ $renewal_due }} </strong></p>
|
||||||
|
@endif
|
||||||
|
</blockquote>
|
||||||
|
<h4 class="lead"> <strong>Support Fees </strong></h4>
|
||||||
|
<button type="button" class="btn btn-success btn-sm pull-right" id="addSupportFeesInfoBtn"><i class="fa fa-plus-square"></i> New Support Fee Info</button>
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
@include('client.partials.support_fees')
|
||||||
|
</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" style="padding-right: 10px;">
|
||||||
|
<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>
|
||||||
|
<input type="hidden" name="notes_id" class="notesRowId" value="{{ $show_notes[$i]->id }}">
|
||||||
|
<a href="#" class="notesEditBtn"><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="tabSenderIDs" aria-labelledby="senderIds-tab">
|
||||||
|
<h4 class="lead"><strong>Sender IDs </strong></h4>
|
||||||
|
<button type="button" class="btn btn-success btn-sm pull-right" id="createSenderIdBtn"><i class="fa fa-plus-square"></i> New Sender ID</button>
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
@include('client.partials.sender-ids')
|
||||||
|
</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>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
@section('javascript')
|
||||||
|
<script src="{{ url('public/assets/vendors/iCheck/icheck.min.js') }}"></script>
|
||||||
|
<script src="{{ url('public/assets/js/clientshow.js') }}"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
// iCheck
|
||||||
|
$(document).ready(function() {
|
||||||
|
if ($("input.flat")[0]) {
|
||||||
|
$(document).ready(function () {
|
||||||
|
$('input.flat').iCheck({
|
||||||
|
checkboxClass: 'icheckbox_flat-green',
|
||||||
|
radioClass: 'iradio_flat-green'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// /iCheck
|
||||||
|
|
||||||
|
// Table
|
||||||
|
$('table input').on('ifChecked', function () {
|
||||||
|
checkState = '';
|
||||||
|
$(this).parent().parent().parent().addClass('selected');
|
||||||
|
countChecked();
|
||||||
|
});
|
||||||
|
$('table input').on('ifUnchecked', function () {
|
||||||
|
checkState = '';
|
||||||
|
$(this).parent().parent().parent().removeClass('selected');
|
||||||
|
countChecked();
|
||||||
|
});
|
||||||
|
|
||||||
|
var checkState = '';
|
||||||
|
|
||||||
|
$('.bulk_action input').on('ifChecked', function () {
|
||||||
|
checkState = '';
|
||||||
|
$(this).parent().parent().parent().addClass('selected');
|
||||||
|
countChecked();
|
||||||
|
});
|
||||||
|
$('.bulk_action input').on('ifUnchecked', function () {
|
||||||
|
checkState = '';
|
||||||
|
$(this).parent().parent().parent().removeClass('selected');
|
||||||
|
countChecked();
|
||||||
|
});
|
||||||
|
$('.bulk_action input#check-all').on('ifChecked', function () {
|
||||||
|
checkState = 'all';
|
||||||
|
countChecked();
|
||||||
|
});
|
||||||
|
$('.bulk_action input#check-all').on('ifUnchecked', function () {
|
||||||
|
checkState = 'none';
|
||||||
|
countChecked();
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
@endsection
|
||||||
426
resources/views/client/show_accordion.blade.php
Normal file
@@ -0,0 +1,426 @@
|
|||||||
|
@extends('layouts.master')
|
||||||
|
@section('page_title')
|
||||||
|
@if(isset($page_title))
|
||||||
|
{{ $page_title }}
|
||||||
|
@endif
|
||||||
|
@endsection
|
||||||
|
@section('css')
|
||||||
|
<link href="{{ url('public/assets/vendors/iCheck/skins/flat/green.css') }}" rel="stylesheet">
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
@include('client.partials.new_notes')
|
||||||
|
@include('client.partials.edit-notes')
|
||||||
|
@include('client.partials.finance')
|
||||||
|
@include('client.partials.create-shortcodes')
|
||||||
|
@include('client.partials.edit-shortcodes')
|
||||||
|
@include('client.partials.edit-finance')
|
||||||
|
@include('client.partials.progress_indicator_details')
|
||||||
|
@include('client.partials.support_fees_form')
|
||||||
|
<div class="">
|
||||||
|
<div class="x_content">
|
||||||
|
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||||
|
<div class="x_panel">
|
||||||
|
<div class="x_title">
|
||||||
|
<h2><i class="fa fa-align-left"></i> Client Details : <span class="" style="color: green;"><u>{{ $showclient->name }}</u></span></h2>
|
||||||
|
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
@include('commons.notifications')
|
||||||
|
</div>
|
||||||
|
<div class="x_content">
|
||||||
|
|
||||||
|
<!-- start accordion -->
|
||||||
|
<div class="accordion" id="accordion" role="tablist" aria-multiselectable="true">
|
||||||
|
<div class="panel">
|
||||||
|
<a class="panel-heading" role="tab" id="headingZero" data-toggle="collapse" data-parent="#accordion" href="#collapseZero" aria-expanded="true" aria-controls="collapseZero">
|
||||||
|
<h4 class="panel-title">Details Summary</h4>
|
||||||
|
</a>
|
||||||
|
<div id="collapseZero" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingZero">
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<ul class="stats-overview">
|
||||||
|
<li>
|
||||||
|
<span class="name"> Total Payments </span>
|
||||||
|
<span class="value text-success"> {{ number_format($recent_payments->sum('invoice_amount')) }} </span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="name"> Short Codes </span>
|
||||||
|
<span class="value text-success">
|
||||||
|
{{ $ussd_codes->count() + $sms_codes->count() + $voice_codes->count() }}
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
<li class="hidden-phone">
|
||||||
|
<span class="name"> Documents Count </span>
|
||||||
|
<span class="value text-success"> {{ $showdocuments->count() }} </span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-5">
|
||||||
|
<div class="text-centerM">
|
||||||
|
<div class="profile_img" style="padding-bottom: 5px;">
|
||||||
|
<div id="crop-avatar">
|
||||||
|
<!-- Current avatar -->
|
||||||
|
@if($showclient->country_flag_info !== null)
|
||||||
|
<!-- <img class="img-responsives avatar-views" src="{{ url($showclient->country_flag_info->url) }}" alt="Generic Client Icon" title="Country Flag" width="100px"> -->
|
||||||
|
@else
|
||||||
|
<!-- <img class="img-responsive avatar-view" src="{{ url('public/assets/img/generic-client.png') }}" alt="Generic Client Icon" title="Change the avatar" width="100px"> -->
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p class="text-warning" style="font-size: larger;"><strong>{{ $showclient->name }}</strong></p>
|
||||||
|
<h4>
|
||||||
|
Status : <span class="label label-{{ $status_bg }}">{{ $showclient->status }}</span>
|
||||||
|
<span role="button" id="progressIndicatorBtn" class="label label-{{ $progress_status_bg }}"> Progress: {{ $showclient->progress_indicator_score }}%</span>
|
||||||
|
</h4>
|
||||||
|
<div class="">
|
||||||
|
Client Account Manager : <strong><em> <?php echo $showclient->contact_person ?? 'N/A' ?> </em></strong>
|
||||||
|
</div>
|
||||||
|
<div class="">
|
||||||
|
Click Account Manager : <strong><em> <?php echo $showclient->auth_user_info->name ?? 'N/A' ?> </em></strong>
|
||||||
|
</div>
|
||||||
|
<ul class="list-unstyled user_data">
|
||||||
|
<li>
|
||||||
|
<i class="fa fa-phone user-profile-icon"></i> <?php echo $showclient->phone ?? "N/A"; ?> | <i class="fa fa-envelope user-profile-icon"></i> <?php echo $showclient->email ?? "N/A"; ?>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<i class="fa fa-skype user-profile-icon"></i> <?php echo $showclient->skype_name ?? "N/A"; ?> | <i class="fa fa-linkedin user-profile-icon"></i> <?php echo $showclient->linkedin_name ?? "N/A"; ?>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<ul class="list-unstyled user_data">
|
||||||
|
<li>Country : <strong> {{ $showclient->country or "N/A" }}</strong> | Company Type : <strong> {{ $showclient->company_type or "N/A" }}</strong></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
@if(session('current_user.id') == $showclient->auth_user_id)
|
||||||
|
<a class="btn btn-success btn-sm" href="{{ url('clients/'. $showclient->id . '/edit') }}"><i class="fa fa-edit m-right-xs"></i> Edit Client</a>
|
||||||
|
<a class="btn btn-primary btn-sm" href="{{ url('clients/onboarding', $showclient->id) }}"><i class="fa fa-edit m-right-xs"></i> Onboarding Checklist</a>
|
||||||
|
<!-- <a class="btn btn-primary btn-sm" href="{{ url('clients/onboarding', $showclient->id) }}"><i class="fa fa-edit m-right-xs"></i> Onboarding Checklist</a> -->
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h5 style="text-decoration: underline;">Contract</h5>
|
||||||
|
<ul class="list-unstyled user_data">
|
||||||
|
<li>Contract Type : <strong> {{ ucfirst($showclient->contract_type) ?? 'N/A'}} </strong></li>
|
||||||
|
<li>Contract Validity (Date) : <strong> {{ $showclient->contract_validity or 'N/A'}} </strong></li>
|
||||||
|
<li>Contract Auto Renewal : <strong> {{ $showclient->contract_auto_renew or 'N/A'}} </strong></li>
|
||||||
|
</ul>
|
||||||
|
@if($showclient->contract_auto_renew != 'YES')
|
||||||
|
<p>Renewal Due : <strong class="text-<?php echo ($highlight_colour == 'none') ? '' : 'danger'; ?> "> {{ $renewal_due }} </strong></p>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<h5 class="" style="text-decoration: underline;"><strong>Connection Details </strong></h5>
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<h5 style="text-decoration: underline;">Documents</h5>
|
||||||
|
@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) }}" title="Click to Download"><i class="fa fa-paperclip"></i> {{ $docs->name }}.{{ $docs->file_extension }}</a>
|
||||||
|
</p>
|
||||||
|
@endforeach
|
||||||
|
@else
|
||||||
|
<p>No Documents uploaded</p>
|
||||||
|
@endif
|
||||||
|
<div class="" style="padding-top: 10px;">
|
||||||
|
<h5 style="text-decoration: underline;">How We Got This Client</h5>
|
||||||
|
<p class="label label-success">
|
||||||
|
<?php echo $showclient->how_we_got_client ?? "N/A" ?>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12">
|
||||||
|
<h5>Notes(Highlights)</h5>
|
||||||
|
<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_highlight->count(); $i++) { ?>
|
||||||
|
<strong> {{ $i+1 . "." }}</strong>
|
||||||
|
{{ $show_notes_highlight[$i]->notes_body }}
|
||||||
|
<?php } ?>
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="panel">
|
||||||
|
<a class="panel-heading collapsed" role="tab" id="headingOne" data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="false" aria-controls="collapseOne">
|
||||||
|
<h3 class="panel-title">Contact & Support Details</h3>
|
||||||
|
</a>
|
||||||
|
<div id="collapseOne" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne">
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
<h5 class=""><strong>Support Phone(s)</strong></h5>
|
||||||
|
@if(!empty($showclient->support_phones))
|
||||||
|
<?php
|
||||||
|
$the_arr = json_decode($showclient->support_phones, true) ?>
|
||||||
|
<ul>
|
||||||
|
<?php foreach ($the_arr as $row): ?>
|
||||||
|
|
||||||
|
<li>{{ $row }}</li>
|
||||||
|
|
||||||
|
<?php endforeach ?>
|
||||||
|
</ul>
|
||||||
|
@else
|
||||||
|
N/A
|
||||||
|
@endif
|
||||||
|
<h5 class=""><strong>Support Email(s)</strong></h5>
|
||||||
|
@if(!empty($showclient->support_emails))
|
||||||
|
<?php
|
||||||
|
$the_arr = json_decode($showclient->support_emails, true) ?>
|
||||||
|
<ul>
|
||||||
|
<?php foreach ($the_arr as $row): ?>
|
||||||
|
|
||||||
|
<li>{{ $row }}</li>
|
||||||
|
|
||||||
|
<?php endforeach ?>
|
||||||
|
</ul>
|
||||||
|
@else
|
||||||
|
N/A
|
||||||
|
@endif
|
||||||
|
@if(!empty($showclient->rate_emails))
|
||||||
|
<h5 class=""><strong>Rates Email(s)</strong></h5>
|
||||||
|
<?php
|
||||||
|
$the_arr = json_decode($showclient->rate_emails, true) ?>
|
||||||
|
<ul>
|
||||||
|
<?php foreach ($the_arr as $row): ?>
|
||||||
|
|
||||||
|
<li>{{ $row }}</li>
|
||||||
|
|
||||||
|
<?php endforeach ?>
|
||||||
|
</ul>
|
||||||
|
@else
|
||||||
|
N/A
|
||||||
|
@endif
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<h5 class=""><strong>Finance Email(s)</strong></h5>
|
||||||
|
@if(!empty($showclient->finance_email))
|
||||||
|
<?php
|
||||||
|
$the_arr = json_decode($showclient->finance_email, true) ?>
|
||||||
|
<ul>
|
||||||
|
<?php foreach ($the_arr as $row): ?>
|
||||||
|
|
||||||
|
<li>{{ $row }}</li>
|
||||||
|
|
||||||
|
<?php endforeach ?>
|
||||||
|
</ul>
|
||||||
|
@else
|
||||||
|
N/A
|
||||||
|
@endif
|
||||||
|
<h5 class=""><strong>Support Skype ID(s)</strong></h5>
|
||||||
|
@if(!empty($showclient->support_skype))
|
||||||
|
<?php
|
||||||
|
$the_arr = json_decode($showclient->support_skype, true) ?>
|
||||||
|
<ul>
|
||||||
|
<?php foreach ($the_arr as $row): ?>
|
||||||
|
|
||||||
|
<li>{{ $row }}</li>
|
||||||
|
|
||||||
|
<?php endforeach ?>
|
||||||
|
</ul>
|
||||||
|
@else
|
||||||
|
N/A
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="panel">
|
||||||
|
<a class="panel-heading collapsed" role="tab" id="headingTwo" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
|
||||||
|
<h4 class="panel-title">Support Fees</h4>
|
||||||
|
</a>
|
||||||
|
<div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
|
||||||
|
<div class="panel-body">
|
||||||
|
|
||||||
|
<h4 class="lead"> <strong>Fees List </strong></h4>
|
||||||
|
<button type="button" class="btn btn-success btn-sm pull-right" id="addSupportFeesInfoBtn"><i class="fa fa-plus-square"></i> New Support Fee Info</button>
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
@include('client.partials.support_fees')
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="panel">
|
||||||
|
<a class="panel-heading collapsed" role="tab" id="headingThree" data-toggle="collapse" data-parent="#accordion" href="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
|
||||||
|
<h4 class="panel-title">Notes</h4>
|
||||||
|
</a>
|
||||||
|
<div id="collapseThree" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree">
|
||||||
|
<div class="panel-body">
|
||||||
|
<!-- <p><strong>Collapsible Item 3 data</strong></p> -->
|
||||||
|
<div class="pull-rightMMM">
|
||||||
|
<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" style="padding-right: 10px;">
|
||||||
|
<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>
|
||||||
|
<input type="hidden" name="notes_id" class="notesRowId" value="{{ $show_notes[$i]->id }}">
|
||||||
|
<a href="#" class="notesEditBtn"><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>
|
||||||
|
</div>
|
||||||
|
<div class="panel">
|
||||||
|
<a class="panel-heading collapsed" role="tab" id="headingFour" data-toggle="collapse" data-parent="#accordion" href="#collapseFour" aria-expanded="false" aria-controls="collapseFour">
|
||||||
|
<h4 class="panel-title">Recent Payments</h4>
|
||||||
|
</a>
|
||||||
|
<div id="collapseFour" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingFour">
|
||||||
|
<div class="panel-body">
|
||||||
|
<!-- <p><strong>Collapsible Item Four data</strong></p> -->
|
||||||
|
<button type="button" class="btn btn-success btn-sm pull-rightb" id="createPaymentBtn"><i class="fa fa-plus-square"></i> New Payment Details</button>
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
<div class="" style="background-color: #dce2e4; height: 400px; overflow: scroll;">
|
||||||
|
@include('client.partials.recent-payments')
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="panel">
|
||||||
|
<a class="panel-heading collapsed" role="tab" id="headingSix" data-toggle="collapse" data-parent="#accordion" href="#collapseSix" aria-expanded="false" aria-controls="collapseSix">
|
||||||
|
<h4 class="panel-title">SMS Short Codes</h4>
|
||||||
|
</a>
|
||||||
|
<div id="collapseSix" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingSix">
|
||||||
|
<div class="panel-body">
|
||||||
|
<!-- <p><strong>Collapsible Item Six data</strong></p> -->
|
||||||
|
<button type="button" class="btn btn-success btn-sm pull-rightE" id="createSmsShortCodeBtn"><i class="fa fa-plus-square"></i> New Short Code</button>
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
@include('client.partials.sms-codes')
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="panel">
|
||||||
|
<a class="panel-heading collapsed" role="tab" id="headingSeven" data-toggle="collapse" data-parent="#accordion" href="#collapseSeven" aria-expanded="false" aria-controls="collapseSeven">
|
||||||
|
<h4 class="panel-title">USSD Short Codes</h4>
|
||||||
|
</a>
|
||||||
|
<div id="collapseSeven" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingSeven">
|
||||||
|
<div class="panel-body">
|
||||||
|
<!-- <h4 class="lead"><strong>USSD Short Codes </strong></h4> -->
|
||||||
|
<button type="button" class="btn btn-success btn-sm" id="createUssdShortCodeBtn"><i class="fa fa-plus-square"></i> New Short Code</button>
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
@include('client.partials.ussd-codes')
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="panel">
|
||||||
|
<a class="panel-heading collapsed" role="tab" id="headingVoice" data-toggle="collapse" data-parent="#accordion" href="#collapseVoice" aria-expanded="false" aria-controls="collapseVoice">
|
||||||
|
<h4 class="panel-title">Voice Short Codes</h4>
|
||||||
|
</a>
|
||||||
|
<div id="collapseVoice" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingVoice">
|
||||||
|
<div class="panel-body">
|
||||||
|
<!-- <p><strong>Collapsible Item Voice data</strong></p> -->
|
||||||
|
<button type="button" class="btn btn-success btn-sm" 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>
|
||||||
|
|
||||||
|
<!-- end of accordion -->
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
@section('javascript')
|
||||||
|
<script src="{{ url('public/assets/vendors/iCheck/icheck.min.js') }}"></script>
|
||||||
|
<script src="{{ url('public/assets/js/clientshow.js') }}"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
// iCheck
|
||||||
|
$(document).ready(function() {
|
||||||
|
if ($("input.flat")[0]) {
|
||||||
|
$(document).ready(function () {
|
||||||
|
$('input.flat').iCheck({
|
||||||
|
checkboxClass: 'icheckbox_flat-green',
|
||||||
|
radioClass: 'iradio_flat-green'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// /iCheck
|
||||||
|
|
||||||
|
// Table
|
||||||
|
$('table input').on('ifChecked', function () {
|
||||||
|
checkState = '';
|
||||||
|
$(this).parent().parent().parent().addClass('selected');
|
||||||
|
countChecked();
|
||||||
|
});
|
||||||
|
$('table input').on('ifUnchecked', function () {
|
||||||
|
checkState = '';
|
||||||
|
$(this).parent().parent().parent().removeClass('selected');
|
||||||
|
countChecked();
|
||||||
|
});
|
||||||
|
|
||||||
|
var checkState = '';
|
||||||
|
|
||||||
|
$('.bulk_action input').on('ifChecked', function () {
|
||||||
|
checkState = '';
|
||||||
|
$(this).parent().parent().parent().addClass('selected');
|
||||||
|
countChecked();
|
||||||
|
});
|
||||||
|
$('.bulk_action input').on('ifUnchecked', function () {
|
||||||
|
checkState = '';
|
||||||
|
$(this).parent().parent().parent().removeClass('selected');
|
||||||
|
countChecked();
|
||||||
|
});
|
||||||
|
$('.bulk_action input#check-all').on('ifChecked', function () {
|
||||||
|
checkState = 'all';
|
||||||
|
countChecked();
|
||||||
|
});
|
||||||
|
$('.bulk_action input#check-all').on('ifUnchecked', function () {
|
||||||
|
checkState = 'none';
|
||||||
|
countChecked();
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
@endsection
|
||||||