public static function SendEmailToNonKarma($type, $connection_giverId, $receiverId, $meetingId, $giver_email)
 {
     $type = 14;
     $receiverDetail = User::find($receiverId);
     $giverDetail = Connection::find($connection_giverId);
     $ReceiverName = $receiverDetail->fname . ' ' . $receiverDetail->lname;
     $subject = "KarmaNote received from " . $receiverDetail->fname . " " . $receiverDetail->lname;
     $fullname = $giverDetail->fname . ' ' . $giverDetail->lname;
     $to = $giver_email;
     // fetch
     $karmaNoteDetail = Karmanote::where('req_id', '=', $meetingId)->first();
     $url = KarmaHelper::generateURL($meetingId, $receiverDetail, $giverDetail, '0');
     $message_email = array();
     $message_email['karmanote'] = $karmaNoteDetail->details;
     $message_email['skills'] = KarmaHelper::getSkillsname($karmaNoteDetail->skills);
     Mail::send('emails.nonkcusernoterecieved', array('Content' => $message_email, 'giverDetail' => $giverDetail, 'receiverDetail' => $receiverDetail, 'subject' => $subject, '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 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');
     }
 }
 /**
  * Function to change the status to anystate to meeting happened.
  *
  * @return Response
  */
 public static function meetingData($accessToken, $userId, $meetingId, $userRole)
 {
     $getUser = User::where('id', '=', $userId)->first();
     $meetingData = array();
     $meetingData = Meetingrequest::where('id', '=', $meetingId)->select('status', 'notes', 'meetingtype', 'user_id_receiver', 'user_id_giver')->first();
     $meetingStatusText = KarmaHelper::getMykarmaMessageForReceiverGiver($meetingData->status, $userRole);
     if (!empty($meetingData)) {
         if ($userRole == 'Receiver') {
             $userProfileId = $meetingData->user_id_giver;
             $userProfilePic = User::where('id', '=', $userProfileId)->select('piclink')->first();
             $userProfilePicLink = $userProfilePic->piclink;
             DB::table('users_mykarma')->where('entry_id', '=', $meetingId)->where('users_role', '=', 'Receiver')->update(array('unread_flag' => 'false', 'no_of_unread_items' => '0'));
         }
         if ($userRole == 'Giver') {
             $userProfileId = $meetingData->user_id_receiver;
             if ($userProfileId == '' || $userProfileId == 'null') {
                 $userProfilePicLink = 'null';
             } else {
                 $userProfilePic = User::where('id', '=', $userProfileId)->select('piclink')->first();
                 $userProfilePicLink = $userProfilePic->piclink;
             }
             DB::table('users_mykarma')->where('entry_id', '=', $meetingId)->where('users_role', '=', 'Giver')->update(array('unread_flag' => 'false', 'no_of_unread_items' => '0'));
         }
         $meetingDetailData = new ArrayObject();
         $karmaNoteDetailData = new ArrayObject();
         $meetingTrailData = new ArrayObject();
         $meetingTrailData = DB::table('requests_messages')->where('request_id', '=', $meetingId)->orderBy('created_at', 'ASC')->get();
         $meetingNote = Meetingrequest::where('id', '=', $meetingId)->select('notes')->first();
         $meetingMessageData = array();
         if (!empty($meetingTrailData)) {
             foreach ($meetingTrailData as $key => $value) {
                 if ($value->message_type == 'user') {
                     if ($value->sender_id == $value->giver_id) {
                         $meetingMessageData[$key]['messageUser'] = '******';
                         $meetingMessageData[$key]['userId'] = $value->giver_id;
                     } else {
                         if ($value->sender_id == $value->receiver_id) {
                             $meetingMessageData[$key]['messageUser'] = '******';
                             $meetingMessageData[$key]['userId'] = $value->receiver_id;
                         }
                     }
                 } else {
                     $meetingMessageData[$key]['messageUser'] = '******';
                     $meetingMessageData[$key]['userId'] = '0';
                 }
                 $meetingMessageData[$key]['messageText'] = $value->messageText;
                 $meetingMessageData[$key]['MeetingMessage'] = $meetingNote->notes;
                 $meetingMessageData[$key]['date'] = date('Y-m-d H:i:s', strtotime($value->created_at));
             }
         }
         if ($meetingData->status == 'scheduled' || $meetingData->status == 'confirmed') {
             $noteData = Meetingrequest::where('id', '=', $meetingId)->first();
             $meetingDetailData['payitforward'] = $noteData->payitforward;
             $meetingDetailData['sendKarmaNote'] = $noteData->sendKarmaNote;
             $meetingDetailData['buyyoucoffee'] = $noteData->buyyoucoffee;
             $meetingDetailData['reply'] = $noteData->reply;
             $meetingDetailData['status'] = $noteData->status;
             $meetingDetailData['meetingduration'] = $noteData->meetingduration;
             $meetingDetailData['meetingdatetime'] = $noteData->meetingdatetime;
             $meetingDetailData['meetingtimezone'] = $noteData->meetingtimezone;
             $meetingDetailData['meetingtimezonetext'] = $noteData->meetingtimezonetext;
             $meetingDetailData['weekday_call_time'] = $noteData->weekday_call_time;
             $meetingDetailData['meetinglocation'] = $noteData->meetinglocation;
             $meetingDetailData['meetingtype'] = $noteData->meetingtype;
             $dstValue = Adminoption::Where('option_name', '=', 'Set DST value')->select("option_value")->first();
             $dstValueData = $dstValue->option_value;
             $meetingDetailData['dstValueData'] = $dstValueData;
             return array('meetingStatus' => $meetingData->status, 'meetingData' => $meetingDetailData, 'meetingTrailData' => $meetingMessageData, 'meetingUserId' => $userProfileId, 'userProfilePic' => $userProfilePicLink, 'meetingStatusText' => $meetingStatusText);
         } else {
             if ($meetingData->status == 'completed') {
                 $noteData = Karmanote::where('karmanotes.req_id', '=', $meetingId)->first();
                 if ($noteData->sendKarmaNote == '' || $noteData->sendKarmaNote == 'null') {
                     $noteData->skills = array();
                 }
                 $receiverData = User::where('id', '=', $noteData->user_idreceiver)->first();
                 $giverData = User::where('id', '=', $noteData->user_idgiver)->first();
                 $karmaNoteDetailData['karmaNoteId'] = $noteData->id;
                 $karmaNoteDetailData['status'] = $meetingData->status;
                 $karmaNoteDetailData['skillTag'] = $noteData->skills;
                 $karmaNoteDetailData['karmaNoteDetail'] = $noteData->details;
                 $karmaNoteDetailData['receiver_id'] = $noteData->user_idreceiver;
                 $karmaNoteDetailData['giver_id'] = $noteData->user_idgiver;
                 $karmaNoteDetailData['description'] = $noteData->meetingduration;
                 $karmaNoteDetailData['receiverFirstName'] = $receiverData->fname;
                 $karmaNoteDetailData['receiverLastName'] = $receiverData->lname;
                 $karmaNoteDetailData['receiverPic'] = $receiverData->piclink;
                 $karmaNoteDetailData['giverFirstName'] = $giverData->fname;
                 $karmaNoteDetailData['giverLastName'] = $giverData->lname;
                 $karmaNoteDetailData['giverPic'] = $giverData->piclink;
                 $karmaNoteDetailData['receiverHeadline'] = $receiverData->headline;
                 $karmaNoteDetailData['giverHeadline'] = $giverData->headline;
                 $site_url = URL::to('/');
                 $publicUrl = $site_url . '/meeting/' . $receiverData->fname . '-' . $receiverData->lname . '-' . $giverData->fname . '-' . $giverData->fname . '/' . $meetingId;
                 $karmaNoteDetailData['publicUrl'] = $publicUrl;
                 return array('meetingStatus' => $meetingData->status, 'karmaNoteData' => $karmaNoteDetailData, 'meetingTrailData' => $meetingMessageData, 'meetingUserId' => $userProfileId, 'userProfilePic' => $userProfilePicLink, 'meetingStatusText' => $meetingStatusText);
             } else {
                 return array('meetingStatus' => $meetingData->status, 'meetingTrailData' => $meetingMessageData, 'meetingUserId' => $userProfileId, 'userProfilePic' => $userProfilePicLink, 'meetingStatusText' => $meetingStatusText);
             }
         }
     }
     return false;
 }
 public static function otherProfileTrail()
 {
     $karmacircleFeed = Karmafeed::select('message_type As type', 'id_type', 'receiver_id', 'giver_id', 'updated_at')->get();
     foreach ($karmacircleFeed as $karmaFeed) {
         $receiverId = $karmaFeed->receiver_id;
         $giverId = $karmaFeed->giver_id;
         $karmaFeedMessage = $karmaFeed->type;
         $karmaFeedId = $karmaFeed->id_type;
         $karmaFeedDate = $karmaFeed->updated_at;
         if (!empty($receiverId)) {
             $receiverData = User::where('id', '=', $receiverId)->select('fname As receiverFirstName', 'lname As receiverLastName', 'piclink As receiverPic')->first();
         }
         if (!empty($giverId)) {
             $giverData = User::where('id', '=', $giverId)->select('fname As giverFirstName', 'lname As giverLastName', 'piclink As giverPic')->first();
         }
         if ($karmaFeedMessage == 'KarmaNote') {
             $getKarmaNoteDetails = Karmanote::where('id', '=', $karmaFeedId)->select(array('karmanotes.details As description'))->first();
             $karmaNoteFeed[] = array_merge($karmaFeed->toArray(), $getKarmaNoteDetails->toArray(), $giverData->toArray(), $receiverData->toArray());
         } else {
             $karmacircleFeedCount = DB::table('users_karmafeeds')->where('message_type', '=', 'KarmaNote')->count();
             if ($karmacircleFeedCount < 1) {
                 $karmaNoteFeed = array();
             }
         }
         if ($karmaFeedMessage == 'Group') {
             $getGroupDetails = Group::where('id', '=', $karmaFeedId)->select(array('groups.name As name', 'groups.description As description'))->first();
             $groupFeed[] = array_merge($karmaFeed->toArray(), $getGroupDetails->toArray(), $receiverData->toArray());
         } else {
             $karmacircleGroupCount = DB::table('users_karmafeeds')->where('message_type', '=', 'Group')->count();
             if ($karmacircleGroupCount < 1) {
                 $groupFeed = array();
             }
         }
         if ($karmaFeedMessage == 'KarmaQuery') {
             $getQueryDetails = Question::where('id', '=', $karmaFeedId)->select(array('questions.queryStatus As queryStatus', 'questions.description As description'))->first();
             $queryFeed[] = array_merge($karmaFeed->toArray(), $getQueryDetails->toArray(), $receiverData->toArray());
         } else {
             $karmacircleQueryCount = DB::table('users_karmafeeds')->where('message_type', '=', 'Question')->count();
             if ($karmacircleQueryCount < 1) {
                 $queryFeed = array();
             }
         }
         if ($karmaFeedMessage == 'OfferHelpTo') {
             $getOfferHelpDetails = Question::where('id', '=', $karmaFeedId)->select(array('questions.queryStatus As queryStatus', 'questions.description As description'))->first();
             $getOfferHelpCount = Questionwillingtohelp::has('id')->where('user_id', '=', $receiverId)->where('question_id', '=', $karmaFeedId)->count();
             $offerHelpToFeed[] = array_merge($karmaFeed->toArray(), $getOfferHelpDetails->toArray(), $receiverData->toArray(), $giverData->toArray());
         } else {
             $offerHelpToFeedCount = DB::table('users_karmafeeds')->where('message_type', '=', 'OfferHelpTo')->count();
             if ($offerHelpToFeedCount < 1) {
                 $offerHelpToFeed = array();
             }
         }
     }
     $feed = array_merge($karmaNoteFeed, $groupFeed, $queryFeed);
     $sort = array();
     foreach ($feed as $k => $v) {
         $sort['updated_at'][$k] = $v['updated_at'];
     }
     array_multisort($sort['updated_at'], SORT_DESC, $feed);
     echo "<pre>";
     print_r($arr);
     die;
     echo '<pre>';
     print_r($feed);
     die;
 }
 public static function commonConnection($userId, $otherUserId)
 {
     $usersFirstCommonConnectionGiver = Karmanote::where('user_idreceiver', '=', $userId)->where('user_idgiver', '<>', 'null')->select('user_idgiver')->distinct('user_idgiver')->get();
     $usersFirstCommonConnectionReceiver = Karmanote::where('user_idgiver', '=', $userId)->where('user_idreceiver', '<>', 'null')->select('user_idreceiver')->distinct('user_idreceiver')->get();
     $userFirstData = array_merge($usersFirstCommonConnectionGiver->toArray(), $usersFirstCommonConnectionReceiver->toArray());
     foreach ($userFirstData as $key => $value) {
         if (isset($value['user_idreceiver'])) {
             $userFirstCommonId[] = $value['user_idreceiver'];
         }
         if (isset($value['user_idgiver'])) {
             $userFirstCommonId[] = $value['user_idgiver'];
         }
     }
     $userFirstCommonIdResult = array_unique($userFirstCommonId);
     $usersSecondCommonConnectionGiver = Karmanote::where('user_idreceiver', '=', $otherUserId)->where('user_idgiver', '<>', 'null')->select('user_idgiver')->distinct('user_idgiver')->get();
     $usersSecondCommonConnectionReceiver = Karmanote::where('user_idgiver', '=', $otherUserId)->where('user_idreceiver', '<>', 'null')->select('user_idreceiver')->distinct('user_idreceiver')->get();
     $userSecondData = array_merge($usersSecondCommonConnectionGiver->toArray(), $usersSecondCommonConnectionReceiver->toArray());
     foreach ($userSecondData as $key => $value) {
         if (isset($value['user_idreceiver'])) {
             $userSecondCommonId[] = $value['user_idreceiver'];
         }
         if (isset($value['user_idgiver'])) {
             $userSecondCommonId[] = $value['user_idgiver'];
         }
     }
     $userSecondCommonIdResult = array_unique($userSecondCommonId);
     $commonUser = array_intersect($userFirstCommonIdResult, $userSecondCommonIdResult);
     $countCommonConnection = count($commonUser);
     return $countCommonConnection;
 }
 public function deleteUser()
 {
     $id = Input::get('userId');
     $test_user = DB::table('admin_option')->where('option_name', 'Test User Emails')->select('option_value')->get();
     if (!empty($test_user)) {
         $count = 0;
         foreach ($test_user as $value) {
             foreach (explode(',', $value->option_value) as $test_user_id) {
                 if ($id == $test_user_id) {
                     $count = $count + 1;
                 }
             }
         }
     } else {
         $count = 0;
     }
     if ($count > 0) {
         $connections = Connection::Where('user_id', '=', $id)->first();
         if (!empty($connections)) {
             $connections->user_id = null;
             $connections->save();
         }
         $deletekarmanote = Karmanote::where('user_idreceiver', '=', $id)->delete();
         $deletekarmanote = Karmanote::where('user_idgiver', '=', $id)->delete();
         $deleterequest = Meetingrequest::where('user_id_receiver', '=', $id)->delete();
         $deletekarmanote = Meetingrequest::where('user_id_giver', '=', $id)->delete();
         $deletekarmanote = Meetingrequest::where('user_id_introducer', '=', $id)->delete();
         $deleteusergroups = Usersgroup::where('user_id', '=', $id)->delete();
         $findquestion = Question::Where('user_id', '=', $id)->get();
         if (!empty($findquestion)) {
             foreach ($findquestion as $val) {
                 $question_id = $val->id;
                 $findgroupquestion = Groupquestion::Where('question_id', '=', $question_id)->get();
                 if (!empty($findgroupquestion)) {
                     $deletegroupquestion = Groupquestion::Where('question_id', '=', $question_id)->delete();
                 }
                 $findQuestionwillingtohelp = Questionwillingtohelp::Where('question_id', '=', $question_id)->get();
                 if (!empty($findQuestionwillingtohelp)) {
                     $deleteQuestionwillingtohelp = Questionwillingtohelp::Where('question_id', '=', $question_id)->delete();
                 }
             }
         }
         $deleteQuestionwillingtohelp = Questionwillingtohelp::Where('user_id', '=', $id)->delete();
         if (!empty($findquestion)) {
             $deletequestion = Question::where('user_id', '=', $id)->delete();
         }
         $deletekarmacircles = Karmacircle::where('user_id', '=', $id)->delete();
         $deletekarmaFeed = Karmafeed::where('receiver_id', '=', $id)->orWhere('giver_id', '=', $id)->delete();
         $userMykarmaDelete = Mykarma::where('user_id', '=', $id)->delete();
         $userMessageDelete = Message::where('receiver_id', '=', $id)->orWhere('giver_id', '=', $id)->delete();
         $getIntroDataDelete = KarmaIntro::where('intro_giver_id', '=', $id)->orWhere('intro_receiver_id', '=', $id)->orWhere('intro_introducer_id', '=', $id)->delete();
         $getMyKarmaDataDelete = Mykarma::where('user_id', '=', $id)->delete();
         $user = User::find($id);
         $user->delete();
         echo "User " . $id . " deleted";
     } else {
         echo "User " . $id . " cant be deleted.Its not a test user.";
     }
 }