first commit
This commit is contained in:
243
app/Http/Controllers/Admin/OverviewController.php
Normal file
243
app/Http/Controllers/Admin/OverviewController.php
Normal file
@@ -0,0 +1,243 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use Mail;
|
||||
use App\Models\User;
|
||||
use App\Models\Company;
|
||||
use App\Mail\SentBuyerMail;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Notifications\UserAdmin;
|
||||
use App\Models\Admin\BuyerSentMail;
|
||||
use App\Models\MarketplaceBuyerForm;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\MarketplaceSellerForm;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use App\Models\MarketplaceOtherProductsSeller;
|
||||
use App\Models\MarketplaceFractionalRealEstateSeller;
|
||||
use App\Models\MarketplaceAlternativeInvestmentFundSeller;
|
||||
|
||||
class OverviewController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$totalSellerProfile = MarketplaceSellerForm::count();
|
||||
$completedTransactions = MarketplaceBuyerForm::where('status', 'Sold')->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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user