コード例 #1
0
ファイル: Agent.php プロジェクト: tharindarodrigo/agent
 public static function getCreditLimit($agent_id)
 {
     if (Entrust::hasRole('Agent')) {
         return Agent::where('user_id', $agent_id)->first()->credit_limit;
     }
     return false;
 }
コード例 #2
0
 public function asyncStatus()
 {
     $token = Input::get('token');
     $store = StoreModel::where('token', $token)->first();
     $agents = AgentModel::where('store_id', $store->id)->where('is_active', true)->get();
     $current = $store->status->current_queue_no;
     $last = $store->status->last_queue_no;
     $counter = count($agents);
     if ($counter == 0) {
         return Response::json(['result' => 'failed', 'msg' => 'There is no active Agent', 'last' => $last]);
     } else {
         $companySetting = CompanySettingModel::where('company_id', $store->company_id)->first();
         $waitingTime = ceil(($last - $current) / $counter) * $companySetting->waiting_time;
         return Response::json(['result' => 'success', 'current' => $current, 'last' => $last, 'counter' => $counter, 'waitingTime' => round($waitingTime / 60, 1)]);
     }
 }
コード例 #3
0
 public function index()
 {
     $param['pageNo'] = 1;
     $agent = AgentModel::find(Session::get('agent_id'));
     $param['is_active'] = $agent->is_active;
     $param['ticketTypes'] = TicketTypeModel::where('company_id', $agent->store->company->id)->get();
     if (Session::has('process_id')) {
         $process = ProcessModel::find(Session::get('process_id'));
         $param['currentQueueNo'] = $process->queue_no;
         $param['lastQueueNo'] = $process->agent->store->status->last_queue_no;
     }
     // Get Store ID
     $storeId = $agent->store_id;
     $status = StatusModel::where('store_id', $storeId)->first();
     $agents = AgentModel::where('store_id', $storeId)->where('is_active', TRUE);
     $param['amountOfQueue'] = $status->last_queue_no - $status->current_queue_no;
     $tickets = ProcessModel::where('agent_id', $agent->id)->whereRaw('DATE(created_at) = DATE(NOW())')->where('end_time', '!=', '');
     $param['ticketsManaged'] = $tickets->count();
     $processTickets = $tickets->get();
     $activeTime = 0;
     foreach ($processTickets as $item) {
         $activeTime += strtotime($item->end_time) - strtotime($item->start_time);
     }
     $param['activeTime'] = $activeTime;
     $param['averageYourTicketTime'] = $tickets->count() == 0 ? 0 : round($activeTime / $tickets->count());
     $agentIds = [];
     $agentIds[] = 0;
     $agents = AgentModel::where('store_id', $storeId)->get();
     foreach ($agents as $agent) {
         $agentIds[] = $agent->id;
     }
     $tickets = ProcessModel::whereIn('agent_id', $agentIds)->whereRaw('DATE(created_at) = DATE(NOW())')->where('end_time', '!=', '');
     $processTickets = $tickets->get();
     $activeTime = 0;
     foreach ($processTickets as $item) {
         $activeTime += strtotime($item->end_time) - strtotime($item->start_time);
     }
     $param['averageTicketTime'] = $tickets->count() == 0 ? 0 : round($activeTime / $tickets->count());
     $prefix = DB::getTablePrefix();
     $sqlType = "SELECT id, name\n                  FROM " . $prefix . "ticket_type\n                 WHERE company_id = " . $agent->store->company->id . "\n                 UNION ALL\n                SELECT 0 as id, 'Skip' as name";
     $sql = "\n                SELECT COUNT(*) AS cnt, IFNULL(ticket_type, 0) AS type\n                  FROM " . $prefix . "process t1, " . $prefix . "agent t2, " . $prefix . "store t3\n                 WHERE t1.agent_id = t2.id\n                   AND t2.store_id = t3.id\n                   AND t1.end_time != ''\n                   AND t3.company_id = " . $agent->store->company->id . "\n                 GROUP BY ticket_type";
     $sql = "SELECT t1.name, IFNULL(t2.cnt, 0) AS cnt\n                  FROM ({$sqlType}) t1\n                  LEFT JOIN ({$sql}) t2\n                    ON t1.id = t2.type\n                 ORDER BY IFNULL(t2.cnt, 0) DESC";
     $param['mostTickets'] = DB::select($sql);
     return View::make('agent.process.index')->with($param);
 }
コード例 #4
0
 /**
  * Store a newly created payment in storage.
  *
  * @return Response
  */
 public function store()
 {
     $data = Input::all();
     $user_id = Auth::id();
     $validator = Validator::make(Input::all(), array('amount' => 'required|numeric'));
     if ($validator->fails()) {
         return Redirect::back()->withErrors($validator)->withInput();
     }
     /**
      * Payments are starting from "BK" numbers
      */
     if ($x = Payment::find(Payment::max('id'))) {
         $y = (int) substr($x->reference_number, 2);
         $data['reference_number'] = 'BK' . ++$y;
     } else {
         $data['reference_number'] = 'BK10000000';
     }
     $data['agent_id'] = User::getAgentOfUser(Auth::id());
     if (Entrust::hasRole('Agent')) {
         $agent_id = $data['agent_id']->user_id;
         $name = User::where('id', $user_id)->first()->first_name . ' ' . User::where('id', $user_id)->first()->last_name;
         $email = User::where('id', $user_id)->first()->email;
         $phone = Agent::where('user_id', $user_id)->first()->phone;
         $amount = Input::get('amount');
         $details = Input::get('details');
         $data = array('details' => $name, 'ip_address' => $_SERVER['REMOTE_ADDR'], 'amount' => $amount, 'payment_status' => 0, 'my_booking' => 2);
         $reserv_id = Payment::create($data);
         $data_tab_HSBC_payment = array('currency' => 'USD');
         $tab_HSBC_payment_id = HsbcPayment::create($data_tab_HSBC_payment);
         $stamp = strtotime("now");
         $payment_id = Payment::orderBy('created_at', 'desc')->first()->id;
         $orderid = "{$stamp}" . 'AP' . "{$payment_id}";
         $last_res_resid = str_replace(".", "", $orderid);
         $hsbc_id = HsbcPayment::orderBy('created_at', 'desc')->first()->id;
         $hsbc_payment_id_pre = "{$stamp}" . 'HSBC' . "{$hsbc_id}";
         $hsbc_payment_id = str_replace(".", "", $hsbc_payment_id_pre);
         if ($last_res_resid) {
             $payment = DB::table('payments')->where('id', $payment_id)->update(array('reference_number' => $last_res_resid, 'HSBC_payment_id' => $hsbc_payment_id));
             $data_tab_HSBC_payment = DB::table('hsbc_payments')->where('id', $hsbc_id)->update(array('HSBC_payment_id' => $hsbc_payment_id));
             $client = array('booking_name' => $name, 'email' => $email, 'phone' => $phone, 'remarks' => $details, 'val' => 0, 'payment_reference_number' => $last_res_resid);
             $client_payment_id = Booking::create($client);
         }
         $currency = 'USD';
         $x = $amount * 1.037;
         $total_price_all_hsbc = round($x, 2) * 100;
         //dd($hsbc_payment_id . '/' . $currency . '/' . $total_price_all_hsbc . '/' . $last_res_resid);
         HsbcPayment::goto_hsbc_gateway($hsbc_payment_id, $currency, $total_price_all_hsbc, $last_res_resid);
         //  return $this->storeAllDataAndSendEmails();
     }
     //Payment::create($data);
     return Redirect::route('accounts.payments.index');
 }
コード例 #5
0
 public function getProfile()
 {
     if (Entrust::hasRole('Agent')) {
         $agent = Agent::where('user_id', Auth::id())->first();
         return View::make('account.profile.edit', compact('agent'));
     } elseif (Entrust::hasRole('Admin')) {
         $agents = Agent::all();
         return View::make('account.profile.agent-list', compact('agents'));
     }
 }