/**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     Log::alert('Executed Cron Job');
     $KarmaNotePending = Meetingrequest::where('status', '=', 'confirmed')->where('cronjobflag', '=', '0')->get();
     if (!empty($KarmaNotePending)) {
         foreach ($KarmaNotePending as $key => $value) {
             $meetingtimezone = $value->meetingtimezone;
             $meetingdatetime = $value->meetingdatetime;
             $user_id_giver = $value->user_id_giver;
             $user_id_receiver = $value->user_id_receiver;
             $meetingId = $value->id;
             $CurrentTimeWithZone = KarmaHelper::calculateTime($meetingtimezone);
             //echo "<pre>";print_r($meetingdatetime);echo "</pre>";
             //echo "<pre>";print_r($meetingdatetime);echo "</pre>";die();
             if ($CurrentTimeWithZone > $meetingdatetime) {
                 $diffDate = KarmaHelper::dateDiff($CurrentTimeWithZone, $meetingdatetime);
                 $diffDate = $diffDate->days * 24 + $diffDate->h;
                 $EmailTriggerTime = Adminoption::where('option_name', '=', 'KarmaNote Email Trigger Time')->first();
                 if (!empty($EmailTriggerTime)) {
                     $EmailTriggerTime = $EmailTriggerTime->toArray();
                     $EmailTriggerTime = $EmailTriggerTime['option_value'];
                 } else {
                     $EmailTriggerTime = '24';
                 }
                 if ($diffDate >= $EmailTriggerTime) {
                     //$date = Carbon::now()->addMinutes(5);
                     Queue::push('MessageSender', array('type' => '4', 'user_id_giver' => $user_id_giver, 'user_id_receiver' => $user_id_receiver, 'meetingId' => $meetingId));
                     $Meetingrequest = Meetingrequest::find($meetingId);
                     $Meetingrequest->cronjobflag = '1';
                     $Meetingrequest->status = 'over';
                     $Meetingrequest->save();
                     DB::table('users_mykarma')->where('entry_id', '=', $meetingId)->update(array('status' => 'over', 'unread_flag' => 'true', 'entry_updated_on' => Carbon::now()));
                     $messageData = new Message();
                     $messageData->request_id = $meetingId;
                     $messageData->sender_id = $user_id_giver;
                     $messageData->giver_id = $user_id_giver;
                     $messageData->receiver_id = $user_id_receiver;
                     $messageData->message_type = 'system';
                     $messageText = 'Meeting should be over now.';
                     $messageData->messageText = $messageText;
                     $messageData->save();
                     //Queue::push('UpdateUser', array('id' => $user_id,'result' => $result));
                 }
             }
         }
     }
 }
 public static function MeetingRequestMailNonKc($type, $connection_giverId, $receiverId, $meetingId, $giver_email)
 {
     $type = 16;
     $receiverDetail = User::find($receiverId);
     $giverDetail = Connection::find($connection_giverId);
     $ReceiverName = $receiverDetail->fname . ' ' . $receiverDetail->lname;
     $url = KarmaHelper::generateURL($meetingId, $receiverDetail, $giverDetail, '0');
     $meetingDetail = Meetingrequest::find($meetingId);
     $to = $giver_email;
     $fullname = $giverDetail->fname . ' ' . $giverDetail->lname;
     $promises_email = "";
     if ($meetingDetail->payitforward + $meetingDetail->sendKarmaNote + $meetingDetail->buyyoucoffee != 0) {
         $promises_email = "In gratitude, I shall do the following:<br>";
         if ($meetingDetail->payitforward == '1') {
             $promises_email = $promises_email . "I'll pay it forward.<br>";
         }
         if ($meetingDetail->sendKarmaNote == '1') {
             $promises_email = $promises_email . " I'll send you a Karma Note.<br>";
         }
         if ($meetingDetail->buyyoucoffee == '1') {
             $promises_email = $promises_email . " I'll buy you coffee (in-person meetings only).<br>";
         }
     }
     $besttime = $meetingDetail->weekday_call . ' ' . $meetingDetail->weekday_call_time;
     $subject = "KarmaMeeting request from " . $receiverDetail->fname . " " . $receiverDetail->lname;
     $meetingSubject = $meetingDetail->subject;
     Mail::send('emails.requestmeetingnonkc', array('Note' => $meetingDetail->notes, 'Besttime' => $besttime, 'Points' => $promises_email, 'giverDetail' => $giverDetail, 'receiverDetail' => $receiverDetail, 'subject' => $meetingSubject, 'url' => $url), function ($message) use($to, $subject, $fullname, $giverDetail, $receiverDetail) {
         $from = $receiverDetail->fname . ' ' . $receiverDetail->lname;
         $fromname = $from . " via karmacircles";
         $message->to($to, $fullname)->replyTo($receiverDetail->email, $from)->subject($subject)->from('*****@*****.**', $fromname);
     });
 }
 /**
  * Function to request new time.
  *
  * @return Response
  */
 public static function commonMeetingRequestNewTime($meetingId, $userId)
 {
     $getUser = User::find($userId);
     $meetingDetail = Meetingrequest::find($meetingId);
     $meetingDetail->meetingduration = 'null';
     $meetingDetail->meetingtimezonetext = 'null';
     $meetingDetail->meetingtimezone = 'null';
     $meetingDateTime = 'null';
     $meetingDetail->meetingdatetime = 'null';
     $meetingDetail->meetinglocation = 'null';
     $meetingDetail->meetingtimezone = 'null';
     $meetingDetail->meetingtype = 'null';
     $meetingDetail->req_updatedate = KarmaHelper::currentDate();
     $meetingDetail->reply = 'null';
     $meetingDetail->status = 'responded';
     $meetingDetail->save();
     $userRole = 'Receiver';
     DB::table('users_mykarma')->where('entry_id', '=', $meetingId)->update(array('status' => 'responded', 'entry_updated_on' => Carbon::now()));
     $changeStatus = KarmaHelper::updateMeetingStatus($meetingId, $userRole);
     $getGiverData = DB::table('requests')->join('users', 'requests.user_id_giver', '=', 'users.id')->where('requests.id', '=', $meetingId)->select('users.fname', 'users.lname', 'requests.user_id_giver', 'requests.user_id_receiver', 'requests.status')->get();
     //Add message in requests_messages table
     if (!empty($getGiverData)) {
         $messageData = new Message();
         $messageData->request_id = $meetingId;
         $messageData->sender_id = $userId;
         $messageData->giver_id = $getGiverData[0]->user_id_giver;
         $messageData->receiver_id = $userId;
         $messageText = $getUser->fname . ' ' . $getUser->lname . ' has requested a new time for the meeting.';
         $messageData->messageText = $messageText;
         $messageData->save();
     } else {
         $getGiverData = array();
     }
     return $getGiverData;
 }
 /**
  *	Function name: updateKarmaNoteStatus()
  *	Created by : Evon
  *	Created on : 04/10/2014
  *	Arguments  : $noteId, $status
  **/
 public function updateKarmaNoteStatus()
 {
     $CurrentUser = Auth::user();
     $user_id = $noteId = $status = '';
     $user_id = Input::get('user_id');
     $noteId = Input::get('noteId');
     $status = Input::get('status');
     $publicPage = Input::get('publicPage');
     if ($user_id && $noteId && $status) {
         if ($user_id == 'receiver') {
             $updateColumn = 'statusreceiver';
         } else {
             $updateColumn = 'statusgiver';
         }
         if ($status == 'Hide') {
             $updateStatus = 'hidden';
         } elseif ($status == 'Show') {
             $updateStatus = 'visible';
         }
         $KarmaNotes = Karmanote::find($noteId);
         $KarmaNotes->{$updateColumn} = $updateStatus;
         $KarmaNotes->save();
         $KarmaNotes = $KarmaNotes->toArray();
         $Meetingrequest = Meetingrequest::find($KarmaNotes['req_id']);
         $receiverDetail = User::find($Meetingrequest->user_id_receiver)->toArray();
         //echo "<pre>";print_r($Meetingrequest);echo "</pre>";die;
         if (!empty($Meetingrequest->user_id_giver)) {
             $giverDetail = User::find($Meetingrequest->user_id_giver)->toArray();
         } else {
             $giverDetail = Connection::find($Meetingrequest->connection_id_giver)->toArray();
         }
         if ($publicPage == '1') {
             return Redirect::to('profile/' . strtolower($CurrentUser->fname . '-' . $CurrentUser->lname) . '/' . $CurrentUser->id);
         } else {
             return Redirect::to('KarmaNotes');
         }
     } else {
         return Redirect::to('404');
     }
 }
 public function loadmoreProfile()
 {
     //Karma notes block
     $karmaTrailUser = $karmaReceivedUser = $karmaSentUser = '';
     $profileSelf = 0;
     $CurrentUserDetail = "";
     $CurrentUserId = 0;
     if (!empty($_REQUEST)) {
         $start = $_REQUEST['hitcount'] + 1;
         $action = $_REQUEST['action'];
         $id = $_REQUEST['userProfile'];
         $perpage = 10;
         $profileUserDetail = User::find($id);
         if (Auth::check()) {
             $CurrentUserDetail = Auth::User();
             $CurrentUserId = $CurrentUserDetail->id;
             if ($CurrentUserId == $profileUserDetail['id']) {
                 $profileSelf = "1";
             } else {
                 $profileSelf = "0";
             }
         }
         if ($action == 'KarmaTrail') {
             $karmaTrail = KarmaHelper::getKarmaTrail($id, $start, $perpage);
             if (count($karmaTrail) > 0) {
                 foreach ($karmaTrail as $trail) {
                     $userSkills = "";
                     $karma['user_id_receiver'] = User::find($trail->user_id_receiver)->toArray();
                     if (!empty($trail->user_id_giver)) {
                         $karma['user_id_giver'] = User::find($trail->user_id_giver)->toArray();
                     } else {
                         $karma['user_id_giver'] = Connection::find($trail->connection_id_giver)->toArray();
                     }
                     if ($id == $trail->user_id_receiver) {
                         $karma['status'] = $trail->statusreceiver;
                     } else {
                         $karma['status'] = $trail->statusgiver;
                     }
                     $karma['piclink'] = $trail->piclink;
                     $karma['karmaNotes'] = $trail->details;
                     if (!empty($trail->skills)) {
                         $userSkills = KarmaHelper::getSkillsname($trail->skills);
                     }
                     $karma['skills'] = $userSkills;
                     $karma['req_id'] = $trail->req_id;
                     $karma['meetingdatetime'] = date('F d, Y', strtotime($trail->meetingdatetime));
                     $karma['created_at'] = date('F d, Y', strtotime($trail->created_at));
                     $karmaTrailUser[] = $karma;
                 }
             }
         }
         //echo "<pre>";print_r($karmaTrailUser);echo "</pre>";die;
         if ($action == 'KarmaNotesReceived') {
             $karmaReceived = $profileUserDetail->KarmanoteReceiver()->orderBy('karmanotes.created_at', 'desc')->skip($start)->take($perpage)->get();
             if (!empty($karmaReceived)) {
                 foreach ($karmaReceived->toArray() as $received) {
                     $userReceivedSkills = "";
                     $karmareceived['user_id_receiver'] = User::find($received['user_idreceiver'])->toArray();
                     if (!empty($received['user_id_giver'])) {
                         $karmareceived['user_id_giver'] = User::find($received['user_idgiver'])->toArray();
                     } else {
                         $karmareceived['user_id_giver'] = Connection::find($received['connection_idgiver'])->toArray();
                     }
                     $karmareceived['karmaNotes'] = $received['details'];
                     if (!empty($received['skills'])) {
                         $userReceivedSkills = KarmaHelper::getSkillsname($received['skills']);
                     }
                     $karmareceived['skills'] = $userReceivedSkills;
                     $karmareceived['status'] = $received['statusgiver'];
                     $karmareceived['req_id'] = $received['req_id'];
                     $karmareceived['req_detail'] = Meetingrequest::find($received['req_id']);
                     $karmareceived['created_at'] = date('F d, Y', strtotime($received['created_at']));
                     $karmaReceivedUser[] = $karmareceived;
                 }
             }
         }
         //echo "<pre>";print_r($karmaReceived->toArray());echo "</pre>";die;
         if ($action == 'KarmaNotesSent') {
             $karmaSent = $profileUserDetail->KarmanoteGiver()->orderBy('karmanotes.created_at', 'desc')->skip($start)->take($perpage)->get();
             //echo "<pre>";print_r($karmaSent->toArray());echo "</pre>";die;
             if (!empty($karmaSent)) {
                 foreach ($karmaSent->toArray() as $sent) {
                     $userSentSkills = "";
                     $karmasent['user_id_receiver'] = User::find($sent['user_idreceiver'])->toArray();
                     if (!empty($sent['user_idgiver'])) {
                         $karmasent['user_id_giver'] = User::find($sent['user_idgiver'])->toArray();
                     } else {
                         $karmasent['user_id_giver'] = Connection::find($sent['connection_idgiver'])->toArray();
                     }
                     $karmasent['karmaNotes'] = $sent['details'];
                     if (!empty($sent['skills'])) {
                         $userSentSkills = KarmaHelper::getSkillsname($sent['skills']);
                     }
                     $karmasent['skills'] = $userSentSkills;
                     $karmasent['req_id'] = $sent['req_id'];
                     $karmasent['req_detail'] = Meetingrequest::find($sent['req_id'])->toArray();
                     $karmasent['status'] = $sent['statusreceiver'];
                     $karmasent['created_at'] = date('F d, Y', strtotime($sent['created_at']));
                     $karmaSentUser[] = $karmasent;
                 }
             }
         }
         return View::make('ajax_loadmoreProfile', array('id' => $id, 'CurrentUserDetail' => $CurrentUserDetail, 'profileSelf' => $profileSelf, 'karmaTrail' => $karmaTrailUser, 'profileUserDetail' => $profileUserDetail, 'countTrail' => 0, 'countReceived' => 0, 'countSent' => 0, 'profielURL' => '', 'karmascore' => '', 'karmaReceived' => $karmaReceivedUser, 'karmaSent' => $karmaSentUser));
     }
 }