count(); $totalInvestmentListed = MarketplaceAlternativeInvestmentFundSeller::count() + MarketplaceFractionalRealEstateSeller::count() + MarketplaceOtherProductsSeller::count(); $aifMarketPlace = MarketplaceAlternativeInvestmentFundSeller::where('status', 'Approved')->latest()->get(); $freMarketPlace = MarketplaceFractionalRealEstateSeller::where('status', 'Approved')->latest()->get(); $opMarketPlace = MarketplaceOtherProductsSeller::where('status', 'Approved')->latest()->get(); return view('Admin.Pages.pre_owned_investment.pre_owned_investment', compact('aifMarketPlace', 'freMarketPlace', 'opMarketPlace', 'totalSellerProfile', 'completedTransactions', 'totalInvestmentListed')); } public function interestedBuyers($id, $table) { $interestedBuyers = MarketplaceBuyerForm::where(['associated_id' => $id, 'table' => $table])->get(); if ($table == 'marketplace_fre_sellers') { $data = MarketplaceFractionalRealEstateSeller::with('seller')->where('id', $id)->firstOrFail(); } elseif ($table == 'marketplace_aif_sellers') { $data = MarketplaceAlternativeInvestmentFundSeller::with('seller')->where('id', $id)->firstOrFail(); } elseif ($table == 'marketplace_op_sellers') { $data = MarketplaceOtherProductsSeller::with('seller')->where('id', $id)->firstOrFail(); } else { abort(404); } $backId = $id; $backTable = $table; return view('Admin.Pages.pre_owned_investment.interested-buyers', compact('interestedBuyers', 'data', 'backId', 'backTable')); } public function listingFeaturedStatus(Request $request) { $listingStatus = $request->listing_status; $id = $request->id; $table = $request->table; if (!($table == 'marketplace_aif_sellers' || $table == 'marketplace_fre_sellers' || $table == 'marketplace_op_sellers')) { abort(404); } if ($listingStatus == 'Spotlight') { $checkSpotlightExists = MarketplaceFractionalRealEstateSeller::where('listing_status', 'Spotlight')->exists() || MarketplaceAlternativeInvestmentFundSeller::where('listing_status', 'Spotlight')->exists() || MarketplaceOtherProductsSeller::where('listing_status', 'Spotlight')->exists(); if ($checkSpotlightExists) { return response()->json(['status' => 400, 'message' => 'An Investment Already Listed With Spotlight!']); } } $data = \DB::table($table)->join('marketplace_seller_forms', $table . '.seller_forms_id', 'marketplace_seller_forms.id')->where($table . '.id', $id)->first(); $changeListingStatus = \DB::table($table)->where('id', $id)->update([ 'listing_status' => $listingStatus ]); if ($changeListingStatus && $listingStatus != 'Hide') { $user = User::find($data->users_id); $productName = $data->security_name ?? $data->property_name ?? $data->name_of_the_aif_fund; $notify['message'] = "Congratulations, Your investment($productName) has been assigned to $listingStatus section!"; $user->notify(new UserAdmin($notify)); return response()->json(['status' => 200, 'message' => 'Listing Status Changed!']); } return response()->json(['status' => 400, 'message' => 'Error Changing Listing Status!']); } public function changeStatusBuyer(Request $request) { $status = $request->status; $buyerId = $request->buyer_id; // if ($status == 'Sold') { // $alreadySold = MarketplaceBuyerForm::where('status', 'Sold')->exists(); // if ($alreadySold) { // return response()->json(['status' => 400, 'message' => 'This product has already been Sold']); // } // } $alreadySold = MarketplaceBuyerForm::where('id', $buyerId)->update([ 'status' => $status ]); return response()->json(['status' => 200, 'message' => 'Status Changed!']); } public function listingTransfer() { $freMarketPlace = MarketplaceFractionalRealEstateSeller::with('seller')->get(); $aifMarketPlace = MarketplaceAlternativeInvestmentFundSeller::with('seller')->get(); $opMarketPlace = MarketplaceOtherProductsSeller::with('seller')->get(); // dd($aifMarketPlace[29]); return view('Admin.Pages.pre_owned_investment.pre_owned_investmentV2', compact('freMarketPlace', 'aifMarketPlace', 'opMarketPlace')); } public function listingDetails($id, $table) { $table = [ 'marketplace_fre_sellers' => 1, 'marketplace_aif_sellers' => 2, 'marketplace_op_sellers' => 3, ][$table]; if ($table == 1) { $data = MarketplaceFractionalRealEstateSeller::with('seller', 'company')->where('id', $id)->firstOrFail(); } elseif ($table == 2) { $data = MarketplaceAlternativeInvestmentFundSeller::with('seller')->where('id', $id)->firstOrFail(); } elseif ($table == 3) { $data = MarketplaceOtherProductsSeller::with('seller')->where('id', $id)->firstOrFail(); } return view('Admin.Pages.pre_owned_investment.pending_investment_view', compact('data', 'table')); } public function listingStatus(Request $request) { $table = [ 'marketplace_fre_sellers' => 1, 'marketplace_aif_sellers' => 2, 'marketplace_op_sellers' => 3, ][$request->table]; if ($table == 1) { MarketplaceFractionalRealEstateSeller::where('id', $request->id)->update(['status' => $request->status]); $userId = MarketplaceFractionalRealEstateSeller::with('seller')->where('id', $request->id)->firstOrFail();; } elseif ($table == 2) { MarketplaceAlternativeInvestmentFundSeller::where('id', $request->id)->update(['status' => $request->status]); $userId = MarketplaceAlternativeInvestmentFundSeller::with('seller')->where('id', $request->id)->firstOrFail();; } elseif ($table == 3) { MarketplaceOtherProductsSeller::where('id', $request->id)->update(['status' => $request->status]); $userId = MarketplaceOtherProductsSeller::with('seller')->where('id', $request->id)->firstOrFail();; } if (!$table) { return response()->json(['status' => 400, 'message' => 'Error Changing status']); } if ($request->status != 'Pending') { $user = User::find($userId->seller->users_id); $productName = $userId->property_name ?? $userId->name_of_the_aif_fund ?? $userId->security_name; $notify['message'] = "Your Investment($productName) has been $request->status for marketplace listing!"; $user->notify(new UserAdmin($notify)); } return response()->json(['status' => 200, 'message' => 'Status Changed']); } public function total_investment_on_sale() { return view('Admin.Pages.pre_owned_investment.total_investment_on_sale'); } public function transactions() { $aifBuyerForm = MarketplaceAlternativeInvestmentFundSeller::with('seller', 'company')->join('marketplace_buyer_forms', 'marketplace_aif_sellers.id', 'marketplace_buyer_forms.associated_id') ->latest('marketplace_aif_sellers.created_at')->get(); $freBuyerForm = MarketplaceFractionalRealEstateSeller::with('seller', 'company')->join('marketplace_buyer_forms', 'marketplace_fre_sellers.id', 'marketplace_buyer_forms.associated_id')->latest('marketplace_fre_sellers.created_at')->get(); $opBuyerForm = MarketplaceOtherProductsSeller::with('seller', 'company')->join('marketplace_buyer_forms', 'marketplace_op_sellers.id', 'marketplace_buyer_forms.associated_id')->latest('marketplace_op_sellers.created_at')->get(); $companies = Company::active()->pluck('company_name', 'id'); return view('Admin.Pages.pre_owned_investment.transactions', compact('aifBuyerForm', 'freBuyerForm', 'opBuyerForm', 'companies')); } // public function manage_seller_profile() // { // return view('Admin.Pages.pre_owned_investment.manage_seller_profile'); // } public function approved_investment_view($id) { $id = $id; return view('Admin.Pages.pre_owned_investment.approved_investment_view', compact('id')); } public function replyMail(Request $request) { $validator = Validator::make($request->all(), [ 'subject' => 'required', 'reply' => 'required', ], [ 'required' => "This :attribute field is required", ]); $validate = validationErrorMessage($validator); if ($validate) { return response()->json(['status' => 400, 'message' => $validate]); } $data['subject'] = $request->subject; $data['message'] = $request->reply; $email = $request->email_send; Mail::to($email)->send(new SentBuyerMail($data)); $sendData = BuyerSentMail::create([ 'subject' => $request->subject, 'content' => $request->reply, 'sent_by' => auth()->user()->id, 'marketplace_buyer_forms_id' => $request->marketplace_buyer_form_id, ]); if ($sendData) { return response()->json(['status' => 200, 'message' => "Mail send Successfully"]); } else { return response()->json(['status' => 201, 'message' => "Mail not send"]); } } public function viewReplyMail($id, $return, $table) { $replies = BuyerSentMail::with('users')->where('marketplace_buyer_forms_id', '=', $id)->get(); $backRoute = $backRoute = route('interest-buyers', ['id' => $return, 'table' => $table]); return view('Admin.Pages.pre_owned_investment.partial.mails-reply', compact('replies', 'backRoute')); } public function updateCompleteTransaction(Request $request) { $completedTransactionUpdated = MarketplaceBuyerForm::where('id', $request->buyer_id)->update([ 'complete_units_sold' => $request->final_units_sold, 'complete_sale_value' => $request->final_sale_value, 'commission_earned' => $request->commission_earned, 'date_of_sale' => $request->date_of_sale, 'platform' => $request->platform, 'final_purchase_value' => $request->final_purchase_value, ]); if ($completedTransactionUpdated) { return response()->json(['status' => 200, 'message' => 'Transaction Updated!'], 200); } else { return response()->json(["status" => 400, 'message' => 'Transaction Cannot Be Updated!'], 400); } } }