From 4266fee824e4de4ec716f5754b25356e8a5e98b0 Mon Sep 17 00:00:00 2001 From: Ritikesh yadav Date: Wed, 24 Apr 2024 15:20:53 +0530 Subject: [PATCH 01/12] fixing freedcamp bugs and fixed api issues --- app/Exports/InvestmentExport.php | 30 + .../Admin/AdminProfileController.php | 2 +- .../Controllers/Admin/DashboardController.php | 2 +- .../Admin/ManageFreeUInvestmentController.php | 8 +- .../FractionalRealEstateController.php | 2 +- .../VentureCapitalFundController.php | 2 +- .../Admin/ManageInvestorController.php | 10 +- .../Admin/ManageLeadController.php | 7 +- .../Admin/ManageSubAdminController.php | 2 +- .../Controllers/Admin/OverviewController.php | 79 +- .../AlternativeInvestmentFundController.php | 18 +- .../FractionalRealEstateController.php | 4 +- .../Frontend/GlobalHedgeFundController.php | 6 +- .../Frontend/GlobalVentureCapitalFund.php | 4 +- .../Controllers/Frontend/HomeController.php | 16 + .../Frontend/ProfileController.php | 2 +- .../Frontend/UpdatePasswordController.php | 6 +- .../GlobalPrivateCreditController.php | 2 +- app/Http/Requests/StoreAttachmentsRequest.php | 2 +- app/Http/Requests/StoreCompanyKYC.php | 6 +- app/Services/Admin/LeadService.php | 7 +- app/Services/Admin/ManageSubAdminService.php | 3 +- app/helper.php | 1 + .../js/FrontendJs/register/registered.js | 12 +- public/assets/js/FrontendJs/script.js | 18 +- .../202404231201_1711435445_factsheet.jpg | Bin 0 -> 11296 bytes .../fund_images/202404231201_image.png | Bin 0 -> 16078 bytes .../Admin/Pages/manage_chat/chat.blade.php | 2 +- .../manage_blog/add_new_blog.blade.php | 35 +- .../manage_cms/manage_faq/add_faq.blade.php | 294 +++-- .../manage_freeu_investment.blade.php | 26 + .../manage_investor_kyc.blade.php | 8 + .../manage_user_add.blade.php | 12 +- .../view_investors_detail.blade.php | 26 +- .../Pages/manage_leads/edit-lead.blade.php | 16 +- .../manage_sub_admin.blade.php | 16 +- .../pre-owned-investment-row.blade.php | 6 +- .../partial/transaction-row.blade.php | 4 +- .../pre_owned_investment.blade.php | 25 +- .../transactions.blade.php | 2 +- resources/views/Admin/add-sub-admin.blade.php | 6 +- .../views/Admin/general-dashboard.blade.php | 4 +- resources/views/Admin/sidebar.blade.php | 4 +- .../angel-fund-product.blade.php | 115 +- ...und-for-distressed-asset-product.blade.php | 115 +- .../hedge-fund-product.blade.php | 143 +-- .../infrastructure-fund-product.blade.php | 115 +- .../long-only-equity-fund-product.blade.php | 180 +-- .../private-credit-fund-product.blade.php | 113 +- .../private-equity-fund-product.blade.php | 54 +- ...investment-public-equity-product.blade.php | 608 +++++----- ...private-real-estate-fund-product.blade.php | 113 +- .../venture-capital-fund-product.blade.php | 113 +- .../Frontend/Pages/bonds/products.blade.php | 359 +++--- .../views/Frontend/Pages/contact.blade.php | 8 +- .../category-one-angel-fund-product.blade.php | 568 ++++----- ...-one-infrastructure-fund-product.blade.php | 568 ++++----- ...one-venture-capital-fund-product.blade.php | 568 ++++----- ...ategory-three-hedge-fund-product.blade.php | 568 ++++----- ...ee-long-only-equity-fund-product.blade.php | 568 ++++----- ...category-three-pipe-fund-product.blade.php | 569 ++++----- ...wo-distressed-asset-fund-product.blade.php | 568 ++++----- ...-two-private-credit-fund-product.blade.php | 568 ++++----- ...-two-private-equity-fund-product.blade.php | 568 ++++----- ...private-real-estate-fund-product.blade.php | 568 ++++----- .../exchange-traded-funds-product1.blade.php | 292 ++--- .../exchange-traded-funds-product2.blade.php | 253 ++-- .../exchange-traded-funds-product3.blade.php | 297 ++--- .../dummy/exotics-efts-product.blade.php | 671 +++++------ .../fractional-real-estate-product.blade.php | 561 ++++----- .../infrastructure-fund-product.blade.php | 1019 +++++++++-------- .../institutional-fund-product.blade.php | 670 ++++++----- .../long-only-equity-funds-product.blade.php | 366 +++--- .../private-equity-fund-product.blade.php | 347 +++--- .../private-equity-fund-product2.blade.php | 345 +++--- .../Pages/dummy/reits-product1.blade.php | 214 ++-- .../Pages/dummy/reits-product2.blade.php | 212 ++-- .../Frontend/Pages/equities/product.blade.php | 263 ++--- .../Frontend/Pages/etfs/product.blade.php | 234 ++-- .../Frontend/Pages/forget_password.blade.php | 4 +- .../fractional-real-estate/product.blade.php | 2 +- .../Pages/hedge-funds/product.blade.php | 298 ++--- .../views/Frontend/Pages/index.blade.php | 178 +-- .../indian-real-estate/product.blade.php | 479 ++++---- .../Pages/marketplace/view-offering.blade.php | 4 +- .../Pages/mutual-funds/product.blade.php | 299 ++--- .../Pages/prestige-tech-platina.blade.php | 560 ++++----- .../private-equity-funds/product.blade.php | 267 ++--- .../Frontend/Pages/profile/company.blade.php | 12 +- .../Frontend/Pages/profile/huf.blade.php | 2 +- .../Pages/register-intermediaries.blade.php | 12 +- .../views/Frontend/Pages/register.blade.php | 4 +- .../Pages/register_mobile_otp.blade.php | 51 + .../Frontend/Pages/register_otp.blade.php | 57 +- .../Frontend/Pages/reits/product.blade.php | 232 ++-- .../Frontend/Pages/sign_in_otp.blade.php | 55 +- .../venture-capital-funds/product.blade.php | 371 +++--- resources/views/Frontend/footer.blade.php | 41 + .../views/Frontend/menu-after-lg.blade.php | 2 +- routes/web.php | 3 +- 100 files changed, 8806 insertions(+), 8325 deletions(-) create mode 100644 app/Exports/InvestmentExport.php create mode 100644 public/assets/uploads/fund_images/202404231201_1711435445_factsheet.jpg create mode 100644 public/assets/uploads/fund_images/202404231201_image.png diff --git a/app/Exports/InvestmentExport.php b/app/Exports/InvestmentExport.php new file mode 100644 index 0000000..85b64cf --- /dev/null +++ b/app/Exports/InvestmentExport.php @@ -0,0 +1,30 @@ +data = $data; + } + + public function collection() + { + return $this->data; + } + + public function headings(): array + { + return ["Product", "Expected Selling Price", "Seller Name", "Email", "Contact", "Listing Status", "Created At"]; + } +} diff --git a/app/Http/Controllers/Admin/AdminProfileController.php b/app/Http/Controllers/Admin/AdminProfileController.php index dc15cbd..cd37588 100644 --- a/app/Http/Controllers/Admin/AdminProfileController.php +++ b/app/Http/Controllers/Admin/AdminProfileController.php @@ -282,7 +282,7 @@ class AdminProfileController extends Controller abort(404); } - $users = User::where(['role' => 0, 'status' => '1'])->get(); + $users = User::where(['role' => false, 'status' => true])->get(); return view('Admin.Pages.manage_sub_admin.update_user_password', compact('users')); } diff --git a/app/Http/Controllers/Admin/DashboardController.php b/app/Http/Controllers/Admin/DashboardController.php index ac799df..8a6fc22 100644 --- a/app/Http/Controllers/Admin/DashboardController.php +++ b/app/Http/Controllers/Admin/DashboardController.php @@ -195,7 +195,7 @@ class DashboardController extends Controller $userCount = User::users()->count(); $investingUserCount = MonthlyUpdateMaster::distinct('users_id')->count('users_id'); $totalProductCount = Product::count(); - $leads = Lead::with('leadSource')->where('lead_owner', auth()->user()->id)->get(); + $leads = Lead::with('leadSource')->where('lead_owner', auth()->user()->id)->latest()->get(); $tasks = LeadTasksMeeting::where('owner', auth()->user()->id)->tasks()->get(); $meetings = LeadTasksMeeting::where('host', auth()->user()->id)->meetings()->get(); $users = User::admins()->get(); diff --git a/app/Http/Controllers/Admin/ManageFreeUInvestmentController.php b/app/Http/Controllers/Admin/ManageFreeUInvestmentController.php index d9e263a..9b63cd4 100644 --- a/app/Http/Controllers/Admin/ManageFreeUInvestmentController.php +++ b/app/Http/Controllers/Admin/ManageFreeUInvestmentController.php @@ -289,7 +289,7 @@ class ManageFreeUInvestmentController extends Controller ]); $category_type = $request->category_id; Excel::import(new BondImport($category_type), $request->file('productFile')); - return back()->with('success', 'Bonds Imported Successfully.'); + return redirect()->route('manage.products')->with('success', 'Bonds Imported Successfully.'); } public function viewBond($id) @@ -432,7 +432,7 @@ class ManageFreeUInvestmentController extends Controller ]); $category_type = $request->category_id; Excel::import(new FundImport($category_type), $request->file('productFile')); - return back()->with('success', 'Funds Imported Successfully.'); + return redirect()->route('manage.products')->with('success', 'Funds Imported Successfully.'); } public function viewFund($id) @@ -614,7 +614,7 @@ class ManageFreeUInvestmentController extends Controller ]); $category_type = $request->category_id; Excel::import(new StockFundsRealEstateExchangeImport($category_type), $request->file('productFile')); - return back()->with('success', 'Exchange Imported Successfully.'); + return redirect()->route('manage.products')->with('success', 'Exchange Imported Successfully.'); } public function viewExchange($id) @@ -770,7 +770,7 @@ class ManageFreeUInvestmentController extends Controller ]); $category_type = $request->category_id; Excel::import(new RealEstateImport($category_type), $request->file('productFile')); - return back()->with('success', 'Real Estate Imported Successfully.'); + return redirect()->route('manage.products')->with('success', 'Real Estate Imported Successfully.'); } public function viewRealEstate($id) diff --git a/app/Http/Controllers/Admin/ManageFreeUInvestments/FractionalRealEstateController.php b/app/Http/Controllers/Admin/ManageFreeUInvestments/FractionalRealEstateController.php index 0487186..abf39af 100644 --- a/app/Http/Controllers/Admin/ManageFreeUInvestments/FractionalRealEstateController.php +++ b/app/Http/Controllers/Admin/ManageFreeUInvestments/FractionalRealEstateController.php @@ -58,7 +58,7 @@ class FractionalRealEstateController extends Controller $category = Category::find($request->category_id); Excel::import(new FractionalRealEstateImport($category_type), $request->file('productFile')); // return back()->with('success', 'Product Imported Successfully.'); - return back()->with('success', "$category->category_name Imported Successfully."); + return redirect()->route('manage.products')->with('success', "$category->category_name Imported Successfully."); } /** diff --git a/app/Http/Controllers/Admin/ManageFreeUInvestments/VentureCapitalFundController.php b/app/Http/Controllers/Admin/ManageFreeUInvestments/VentureCapitalFundController.php index 6f45b33..bb524e9 100644 --- a/app/Http/Controllers/Admin/ManageFreeUInvestments/VentureCapitalFundController.php +++ b/app/Http/Controllers/Admin/ManageFreeUInvestments/VentureCapitalFundController.php @@ -57,7 +57,7 @@ class VentureCapitalFundController extends Controller $category = Category::find($request->category_id); Excel::import(new AlternativeInvestmentFundImport($category_type), $request->file('productFile')); // return back()->with('success', "$category->category_name Imported Successfully."); - return back()->with('success', "$category->category_name Imported Successfully."); + return redirect()->route('manage.products')->with('success', "$category->category_name Imported Successfully."); } /** diff --git a/app/Http/Controllers/Admin/ManageInvestorController.php b/app/Http/Controllers/Admin/ManageInvestorController.php index 1855bc9..656bf70 100644 --- a/app/Http/Controllers/Admin/ManageInvestorController.php +++ b/app/Http/Controllers/Admin/ManageInvestorController.php @@ -272,11 +272,11 @@ class ManageInvestorController extends Controller if ($request->dropdownValue == 'Individual' || $request->dropdownValue == 'HUF' || $request->dropdownValue == 'NRI' || $request->dropdownValue == 'Company' || $request->dropdownValue == 'Partnership' || $request->dropdownValue == 'Others') { $data->where('kyc_type', $request->dropdownValue); }; - $data->latest()->select('*'); + $data->orderBy('updated_at','desc')->select('*'); return Datatables::of($data)->addIndexColumn() // return Datatables::of($data) ->editColumn('created_at', function ($row) { - $formattedDate = $row->created_at->format('d/m/Y'); + $formattedDate = $row->updated_at->format('d/m/Y'); return '
' . $formattedDate . '
'; }) ->editColumn('name', function ($row) { @@ -293,7 +293,7 @@ class ManageInvestorController extends Controller $btn = 'id) . '" class="action_icon" data-bs-toggle="tooltip" data-bs-custom-class="tooltip-inverse" data-bs-placement="top" title="View Detail"> - users_id) . '" class="action_icon" data-bs-toggle="tooltip" data-bs-custom-class="tooltip-inverse" data-bs-placement="top" title="View Invetsor Profile"> + users_id) . '" onclick=returnRedirect("manage_investor_kyc") class="action_icon" data-bs-toggle="tooltip" data-bs-custom-class="tooltip-inverse" data-bs-placement="top" title="View Invetsor Profile"> @@ -304,7 +304,7 @@ class ManageInvestorController extends Controller $btn = 'id) . '" class="action_icon" data-bs-toggle="tooltip" data-bs-custom-class="tooltip-inverse" data-bs-placement="top" title="View Detail"> - users_id) . '" class="action_icon" data-bs-toggle="tooltip" data-bs-custom-class="tooltip-inverse" data-bs-placement="top" title="View Invetsor Profile"> + users_id) . '" onclick=returnRedirect("manage_investor_kyc") class="action_icon" data-bs-toggle="tooltip" data-bs-custom-class="tooltip-inverse" data-bs-placement="top" title="View Invetsor Profile"> @@ -315,7 +315,7 @@ class ManageInvestorController extends Controller $btn = 'id) . '" class="action_icon" data-bs-toggle="tooltip" data-bs-custom-class="tooltip-inverse" data-bs-placement="top" title="View Detail"> - users_id) . '" class="action_icon" data-bs-toggle="tooltip" data-bs-custom-class="tooltip-inverse" data-bs-placement="top" title="View Invetsor Profile"> + users_id) . '" onclick=returnRedirect("manage_investor_kyc") class="action_icon" data-bs-toggle="tooltip" data-bs-custom-class="tooltip-inverse" data-bs-placement="top" title="View Invetsor Profile"> diff --git a/app/Http/Controllers/Admin/ManageLeadController.php b/app/Http/Controllers/Admin/ManageLeadController.php index d9a5a25..5a7b60f 100644 --- a/app/Http/Controllers/Admin/ManageLeadController.php +++ b/app/Http/Controllers/Admin/ManageLeadController.php @@ -113,9 +113,12 @@ class ManageLeadController extends Controller ]); } - public function downloadFile($file_name) + public function downloadFile(Request $request ) { - return $this->lead->download($file_name); + // dd($file_name); + $path = $request->query('path'); + // dd("hello",$request->query('path'),$path['path']); + return $this->lead->download($path['path']); } public function editLead($id) diff --git a/app/Http/Controllers/Admin/ManageSubAdminController.php b/app/Http/Controllers/Admin/ManageSubAdminController.php index 7ad01b5..09406e3 100644 --- a/app/Http/Controllers/Admin/ManageSubAdminController.php +++ b/app/Http/Controllers/Admin/ManageSubAdminController.php @@ -58,7 +58,7 @@ class ManageSubAdminController extends Controller if (!$check) { abort(404); } - $subAdmin = User::where(['role' => 2, 'status' => 1])->whereNotIn('id', [auth()->user()->id])->latest()->get(); + $subAdmin = User::where(['role' => 2, 'status' => 1])->whereNotIn('id', [auth()->user()->id])->orderBy('last_login','desc')->get(); // $subAdmin = User::where('status', 1)->whereIn('role', ['1', '2'])->whereNotIn('id', [auth()->user()->id])->latest()->get(); // dd($subAdmin); return view('Admin.sub_admin_list', ['subAdmin' => $subAdmin]); diff --git a/app/Http/Controllers/Admin/OverviewController.php b/app/Http/Controllers/Admin/OverviewController.php index 82c105d..5676a5f 100644 --- a/app/Http/Controllers/Admin/OverviewController.php +++ b/app/Http/Controllers/Admin/OverviewController.php @@ -16,6 +16,8 @@ use Illuminate\Support\Facades\Validator; use App\Models\MarketplaceOtherProductsSeller; use App\Models\MarketplaceFractionalRealEstateSeller; use App\Models\MarketplaceAlternativeInvestmentFundSeller; +use App\Exports\InvestmentExport; +use Excel; class OverviewController extends Controller { @@ -31,7 +33,82 @@ class OverviewController extends Controller $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')); + $allMarketPlace = collect(); + foreach($aifMarketPlace as $data) + { + $data->table = 'marketplace_aif_sellers'; + $allMarketPlace->push($data); + } + foreach($freMarketPlace as $data) + { + $data->table = 'marketplace_fre_sellers'; + $allMarketPlace->push($data); + } + + $allMarketPlace = $allMarketPlace->sortByDesc('created_at'); + // dd($allMarketPlace); + return view('Admin.Pages.pre_owned_investment.pre_owned_investment', compact('aifMarketPlace', 'freMarketPlace', 'opMarketPlace', 'totalSellerProfile', 'completedTransactions', 'totalInvestmentListed','allMarketPlace')); + } + + public function downloadInvestment() + { + + // $aifMarketPlace = MarketplaceAlternativeInvestmentFundSeller::with(['seller' => function($query){$query->select('name as SellerName','email as Email','contact_number as Contact')->get();}])->where('status', 'Approved')->latest()->select('name_of_the_aif_fund as Product','expected_sale_per_unit as ExpectedSellingPrice','listing_status as ListingStatus')->get(); + $aifMarketPlace = MarketplaceAlternativeInvestmentFundSeller::with('seller')->where('status', 'Approved')->latest()->get(); + $freMarketPlace = MarketplaceFractionalRealEstateSeller::with('seller')->where('status', 'Approved')->latest()->get(); + // $aifMarketPlace = MarketplaceAlternativeInvestmentFundSeller::with('seller')->where('status', 'Approved')->latest()->get(); + // $freMarketPlace = MarketplaceFractionalRealEstateSeller::with('seller')->where('status', 'Approved')->latest()->get(); + $allMarketPlace = collect(); + $newData = []; + $count = 0; + foreach($aifMarketPlace as $data) + { + // $data['table'] = 'marketplace_aif_sellers'; + // $newData[$count]['Product'] = $data->name_of_the_aif_fund; + // $newData[$count]['ExpectedSellingPrice'] = $data->expected_sale_per_unit ; + // $newData[$count]['SellerName'] = $data->seller->name; + // $newData[$count]['Email'] = $data->seller->email; + // $newData[$count]['Contact'] = $data->seller->contact_number; + // $newData[$count]['ListingStatus'] = $data->listing_status; + // $newData[$count]['CreatedAt'] = $data->created_at->format('F d, o'); + $newData = array( + "Product" => $data->name_of_the_aif_fund, + "ExpectedSellingPrice" => $data->expected_sale_per_unit, + "SellerName" => $data->seller->name, + "Email" => $data->seller->email, + "Contact" => $data->seller->contact_number, + "ListingStatus" => $data->listing_status, + "CreatedAt" => $data->created_at->format('F d, o') + ); + $allMarketPlace->push($newData); + $count++; + } + foreach($freMarketPlace as $data) + { + // $newData[$count]['Product'] = $data->property_name; + // $newData[$count]['ExpectedSellingPrice'] = $data->expected_selling_price ; + // $newData[$count]['SellerName'] = $data->seller->name; + // $newData[$count]['Email'] = $data->seller->email; + // $newData[$count]['Contact'] = $data->seller->contact_number; + // $newData[$count]['ListingStatus'] = $data->listing_status; + // $newData[$count]['CreatedAt'] = $data->created_at->format('F d, o'); + $newData = array( + "Product" => $data->property_name, + "ExpectedSellingPrice" => $data->expected_selling_price , + "SellerName" => $data->seller->name, + "Email" => $data->seller->email, + "Contact" => $data->seller->contact_number, + "ListingStatus" => $data->listing_status, + "CreatedAt" => $data->created_at->format('F d, o') + ); + $allMarketPlace->push($newData); + $count++; + } + // dd($allMarketPlace->sortByDesc('created_at')); + // return $allMarketPlace->sortByDesc('created_at'); + // dd($allMarketPlace); + + return Excel::download(new InvestmentExport($allMarketPlace), 'investmentExport.xlsx'); } public function interestedBuyers($id, $table) diff --git a/app/Http/Controllers/Frontend/AlternativeInvestmentFundController.php b/app/Http/Controllers/Frontend/AlternativeInvestmentFundController.php index 7126233..f19542d 100644 --- a/app/Http/Controllers/Frontend/AlternativeInvestmentFundController.php +++ b/app/Http/Controllers/Frontend/AlternativeInvestmentFundController.php @@ -320,7 +320,7 @@ class AlternativeInvestmentFundController extends Controller public function infrastructure($type = 'Open') { try { - return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies')->infrastructureFund()->active()->get())) + return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies')->where('type',$type)->infrastructureFund()->active()->get())) ->response() ->setStatusCode(200); } catch (\Exception $e) { @@ -342,7 +342,7 @@ class AlternativeInvestmentFundController extends Controller public function angelFundAllData($type = 'Open') { try { - return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies')->angelFund()->active()->get())) + return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies')->where('type',$type)->angelFund()->active()->get())) ->response() ->setStatusCode(200); } catch (\Exception $e) { @@ -364,7 +364,7 @@ class AlternativeInvestmentFundController extends Controller public function privateEquityAllData($type = 'Open') { try { - return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies')->privateEquityFund()->active()->get())) + return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies')->where('type',$type)->privateEquityFund()->active()->get())) ->response() ->setStatusCode(200); } catch (\Exception $e) { @@ -386,7 +386,7 @@ class AlternativeInvestmentFundController extends Controller public function debtFundAllData($type = 'Open') { try { - return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies')->debtFund()->active()->get())) + return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies')->where('type',$type)->debtFund()->active()->get())) ->response() ->setStatusCode(200); } catch (\Exception $e) { @@ -408,7 +408,7 @@ class AlternativeInvestmentFundController extends Controller public function privateRealEstateFundAllData($type = 'Open') { try { - return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies')->privateRealEstateFund()->active()->get())) + return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies')->where('type',$type)->privateRealEstateFund()->active()->get())) ->response() ->setStatusCode(200); } catch (\Exception $e) { @@ -430,7 +430,7 @@ class AlternativeInvestmentFundController extends Controller public function fundForDistressedAssetAllData($type = 'Open') { try { - return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies')->fundForDistressedAsset()->active()->get())) + return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies')->where('type',$type)->fundForDistressedAsset()->active()->get())) ->response() ->setStatusCode(200); } catch (\Exception $e) { @@ -452,7 +452,7 @@ class AlternativeInvestmentFundController extends Controller public function hedgeFundAllData($type = 'Open') { try { - return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies')->hedgeFund()->active()->get())) + return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies')->where('type',$type)->hedgeFund()->active()->get())) ->response() ->setStatusCode(200); } catch (\Exception $e) { @@ -474,7 +474,7 @@ class AlternativeInvestmentFundController extends Controller public function longOnlyEquityFundAllData($type = 'Open') { try { - return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies','product_images')->longOnlyEquityFund()->active()->get())) + return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies','product_images')->where('type',$type)->longOnlyEquityFund()->active()->get())) ->response() ->setStatusCode(200); } catch (\Exception $e) { @@ -496,7 +496,7 @@ class AlternativeInvestmentFundController extends Controller public function privateCreditFundAllData($type = 'Open') { try { - return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies','product_images')->privateCreditFund()->active()->get())) + return (new test(Product::has('alternativeInvestmentFund')->with('alternativeInvestmentFund.companies','product_images')->where('type',$type)->privateCreditFund()->active()->get())) ->response() ->setStatusCode(200); } catch (\Exception $e) { diff --git a/app/Http/Controllers/Frontend/FractionalRealEstateController.php b/app/Http/Controllers/Frontend/FractionalRealEstateController.php index f22a630..cb9c5a5 100644 --- a/app/Http/Controllers/Frontend/FractionalRealEstateController.php +++ b/app/Http/Controllers/Frontend/FractionalRealEstateController.php @@ -51,10 +51,10 @@ class FractionalRealEstateController extends Controller // dd('hello'); } - public function fractData() + public function fractData($type = 'Open') { try { - $product = Product::has('fractional_real_estate')->with('fractional_real_estate.companies')->active()->get(); + $product = Product::has('fractional_real_estate')->with('fractional_real_estate.companies')->where('type',$type)->active()->get(); foreach ($product as $fre) { $fre->fractional_real_estate->property_img = $fre->fractional_real_estate->getRawOriginal('property_image'); } diff --git a/app/Http/Controllers/Frontend/GlobalHedgeFundController.php b/app/Http/Controllers/Frontend/GlobalHedgeFundController.php index ad6c128..68607c3 100644 --- a/app/Http/Controllers/Frontend/GlobalHedgeFundController.php +++ b/app/Http/Controllers/Frontend/GlobalHedgeFundController.php @@ -26,15 +26,15 @@ class GlobalHedgeFundController extends Controller { $hedgeFund = Fund::where('slug',$slug)->first(); $productData = Fund::where('slug','=',$slug)->first(); - $productData = Product::where('id','=',$productData->products_id)->first(); + $productData = Product::with('product_images')->where('id','=',$productData->products_id)->first(); // dd($hedgeFund); return view('Frontend.Pages.hedge-funds.product',compact('hedgeFund','productData')); } - public function hedgeFundAllData() + public function hedgeFundAllData($type = 'Open') { try { - return (new test(Product::has('funds')->with('funds')->funds()->globalHedgeFund()->get())) + return (new test(Product::has('funds')->with('funds')->where('type',$type)->funds()->globalHedgeFund()->get())) ->response() ->setStatusCode(200); } catch (\Exception $e) { diff --git a/app/Http/Controllers/Frontend/GlobalVentureCapitalFund.php b/app/Http/Controllers/Frontend/GlobalVentureCapitalFund.php index 1cd7a2a..d0a50b9 100644 --- a/app/Http/Controllers/Frontend/GlobalVentureCapitalFund.php +++ b/app/Http/Controllers/Frontend/GlobalVentureCapitalFund.php @@ -32,10 +32,10 @@ class GlobalVentureCapitalFund extends Controller return view('Frontend.Pages.venture-capital-funds.product',compact('ventureCapitalFund','productData')); } - public function ventureCapitalAllData() + public function ventureCapitalAllData($type = 'Open') { try { - return (new test(Product::has('funds')->with('funds')->funds()->globalVentureCapitalFund()->get())) + return (new test(Product::has('funds')->with('funds')->where('type',$type)->funds()->globalVentureCapitalFund()->get())) ->response() ->setStatusCode(200); } catch (\Exception $e) { diff --git a/app/Http/Controllers/Frontend/HomeController.php b/app/Http/Controllers/Frontend/HomeController.php index 69c492b..22f0e26 100644 --- a/app/Http/Controllers/Frontend/HomeController.php +++ b/app/Http/Controllers/Frontend/HomeController.php @@ -20,6 +20,7 @@ use App\Models\PeerToPeerLending; use App\Models\SecuritizedDebtInstrument; use App\Models\VentureDebt; use App\Http\Controllers\Controller; +use App\Models\UserKyc; use App\Notifications\UserAdmin; use Illuminate\Support\Facades\Validator; use Session; @@ -141,6 +142,21 @@ class HomeController extends Controller return response()->json(['status' => 403, 'message' => "Please contact us"]); } + // $checkUserKycStatus = UserKyc::where('users_id',auth()->guard('users')->user()->id)->where('status','!=','Approved')->exists(); + $checkUserKycStatus = UserKyc::where('users_id',auth()->guard('users')->user()->id)->first(); + // dd($checkUserKycStatus == false ? true:false); + if (!$checkUserKycStatus || $checkUserKycStatus->status != 'Approved') { + if($checkUserKycStatus && $checkUserKycStatus->status != 'Approved') + { + return response()->json(['status' => 401, 'message' => "Your kyc under review.
Please contact us at info@jerichoalternatives.in "]); + } + // else{ + // return response()->json(['status' => 401, 'message' => "Please complete your KYC"]); + // } + return response()->json(['status' => 401, 'message' => "Please complete your KYC"]); + } + + $addLead = Lead::create([ 'users_id' => auth()->guard('users')->user()->id, 'lead_owner' => null, diff --git a/app/Http/Controllers/Frontend/ProfileController.php b/app/Http/Controllers/Frontend/ProfileController.php index 377e155..c2ca6df 100644 --- a/app/Http/Controllers/Frontend/ProfileController.php +++ b/app/Http/Controllers/Frontend/ProfileController.php @@ -37,7 +37,7 @@ class ProfileController extends Controller // 'email' => 'required|unique:users,email,' . $request->id . '', // 'contact_number' => 'required|numeric|digits:10|unique:users,contact_number,' . $request->id . '', 'profile_image' => 'image|mimes:jpeg,jpg,png|max:2000', - 'address' => 'required' + 'address' => 'required|max:255' ], [ 'required' => 'The :attribute field must be required', // 'unique' => 'The :attribute field must be unique', diff --git a/app/Http/Controllers/Frontend/UpdatePasswordController.php b/app/Http/Controllers/Frontend/UpdatePasswordController.php index 5afe1b0..2377823 100644 --- a/app/Http/Controllers/Frontend/UpdatePasswordController.php +++ b/app/Http/Controllers/Frontend/UpdatePasswordController.php @@ -34,6 +34,10 @@ class UpdatePasswordController extends Controller if ($validationMessage) { return response()->json(['status' => 400, 'message' => $validationMessage]); } + if($request->password == $request->newPassword) + { + return response()->json(['status' => 400, 'message' => "Your current password and new password could not be same"]); + } $user = User::find(auth()->guard('users')->user()->id); if (Hash::check($request->password, $user->password)) { $updatePassword = User::where('id', auth()->guard('users')->user()->id)->update([ @@ -43,7 +47,7 @@ class UpdatePasswordController extends Controller \Auth::guard('users')->logout(); return response()->json(['status' => 200, 'message' => 'Password Updated Successfully']); } - return response()->json(['status' => 400, 'message' => 'Could not update password']); + return response()->json(['status' => 400, 'message' => 'Current Password is incorrect']); } public function changePinAPI(Request $request) diff --git a/app/Http/Controllers/GlobalPrivateCreditController.php b/app/Http/Controllers/GlobalPrivateCreditController.php index b3176ed..96d2c85 100644 --- a/app/Http/Controllers/GlobalPrivateCreditController.php +++ b/app/Http/Controllers/GlobalPrivateCreditController.php @@ -31,7 +31,7 @@ class GlobalPrivateCreditController extends Controller return view('Frontend.Pages.venture-capital-funds.product', compact('ventureCapitalFund', 'productData')); } - public function privateCreditAllData($type) + public function privateCreditAllData($type = 'Open') { try { return (new test(Product::has('funds')->with('funds','product_images')->where('type', $type)->funds()->globalPrivateCreditFunds()->get())) diff --git a/app/Http/Requests/StoreAttachmentsRequest.php b/app/Http/Requests/StoreAttachmentsRequest.php index 61a618b..d14f466 100644 --- a/app/Http/Requests/StoreAttachmentsRequest.php +++ b/app/Http/Requests/StoreAttachmentsRequest.php @@ -38,7 +38,7 @@ class StoreAttachmentsRequest extends FormRequest return [ 'lead_id' => 'required', 'url' => 'sometimes|required', - 'filename' => 'sometimes|mimes:jpeg,png,jpg,gif,svg|max:2048', + 'filename' => 'sometimes|mimes:jpeg,png,jpg,gif,svg,pdf|max:2048', 'type' => 'required' ]; } diff --git a/app/Http/Requests/StoreCompanyKYC.php b/app/Http/Requests/StoreCompanyKYC.php index 4d86c36..6a43ca5 100644 --- a/app/Http/Requests/StoreCompanyKYC.php +++ b/app/Http/Requests/StoreCompanyKYC.php @@ -37,15 +37,15 @@ class StoreCompanyKYC extends FormRequest 'tan_allotment_letter' => 'mimes:jpeg,png,jpg,pdf|max:2048', 'List_of_directors_or_authorized_signatories' => 'mimes:jpeg,png,jpg,pdf|max:2048', // 'pan_card_copy_of_authorized_signatory' => ', - 'pan_card_copy_of_authorized_signatory.*' => 'required|mimes:jpeg,png,jpg,pdf|max:2048', + 'pan_card_copy_of_authorized_signatory' => 'required|mimes:jpeg,png,jpg,pdf|max:2048', // 'aadhar_card_copy_of_authorized_signatory' => ', - 'aadhar_card_copy_of_authorized_signatory.*' => 'required|mimes:jpeg,png,jpg,pdf|max:2048', + 'aadhar_card_copy_of_authorized_signatory' => 'required|mimes:jpeg,png,jpg,pdf|max:2048', 'proof_of_address_of_the_company' => 'required|mimes:jpeg,png,jpg,pdf|max:2048', 'latest_income_tax_return_of_the_company_Of_last_2_years' => 'mimes:jpeg,png,jpg,pdf|max:2048', 'copy_of_cml' => 'mimes:jpeg,png,jpg,pdf|max:2048', 'copy_of_audited_balance_sheet_for_the_last_2_f_y' => 'mimes:jpeg,png,jpg,pdf|max:2048', // 'passport_photo_all_authorized_signatories_or_directors' => ', - 'passport_photo_all_authorized_signatories_or_directors.*' => 'required|mimes:jpeg,png,jpg,pdf|max:2048', + 'passport_photo_all_authorized_signatories_or_directors' => 'required|mimes:jpeg,png,jpg,pdf|max:2048', 'true_copy_form_32_or_dir_12_alongwith_roc_fee_payment' => 'mimes:jpeg,png,jpg,pdf|max:2048', 'true_copy_form_no_18_or_inc_22_alongwith_roc_fee_payment' => 'mimes:jpeg,png,jpg,pdf|max:2048', 'cancelled_cheque' => 'required|mimes:jpeg,png,jpg,pdf|max:2048', diff --git a/app/Services/Admin/LeadService.php b/app/Services/Admin/LeadService.php index be92b12..decf316 100644 --- a/app/Services/Admin/LeadService.php +++ b/app/Services/Admin/LeadService.php @@ -107,7 +107,7 @@ class LeadService{ $path; if($request->filename) { - $fileName = $request->lead_id.'-'.time().$request->filename->getClientOriginalExtension(); + $fileName = $request->lead_id.'-'.time().'.'.$request->filename->getClientOriginalExtension(); $path = $request->filename->storeAs('files/manage_leads/attachment_file', $fileName); } if($request->url) @@ -163,6 +163,9 @@ class LeadService{ } public function download($file){ - return \Storage::download('files/' . $file); + // dd($file); + // return $file; + return \Storage::download($file); + // return response()->download(storage_path($file)); } } \ No newline at end of file diff --git a/app/Services/Admin/ManageSubAdminService.php b/app/Services/Admin/ManageSubAdminService.php index 84f3c17..41a277c 100644 --- a/app/Services/Admin/ManageSubAdminService.php +++ b/app/Services/Admin/ManageSubAdminService.php @@ -10,7 +10,8 @@ class ManageSubAdminService { public function getAllAdmin() { - return User::admins()->withTrashed()->latest()->get(); + // return User::admins()->withTrashed()->latest()->get(); + return User::users()->latest()->get(); } public function changeStatus($request) diff --git a/app/helper.php b/app/helper.php index 4c0258e..8e98950 100644 --- a/app/helper.php +++ b/app/helper.php @@ -38,6 +38,7 @@ if (!function_exists('validationErrorMessage')) { function imagePath($path = null) { + $finalPath = "https://staging.jerichoalternatives.in/"; if (env('APP_ENV') == 'production') { $finalPath = "https://jerichoalternatives.in/"; } diff --git a/public/assets/js/FrontendJs/register/registered.js b/public/assets/js/FrontendJs/register/registered.js index 0c8585f..d77203f 100644 --- a/public/assets/js/FrontendJs/register/registered.js +++ b/public/assets/js/FrontendJs/register/registered.js @@ -17,6 +17,14 @@ $(document).ready(function () { // return /^\w+([-+.'][^\s]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value); // },"Please enter valid email"); + +$.validator.addMethod("customEmail", function(value, element) { + // Regular expression for email validation + return /^[^\s@]+@[^\s@]+\.[a-zA-Z]{2,}$/.test(value); + // return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value); +}, "Please enter a valid email address"); + + $("#register_form").validate({ cache: false, rules: { @@ -26,7 +34,7 @@ $(document).ready(function () { email: { required: true, - // EmailRegex: true, + customEmail: true, }, contact_number: { @@ -168,7 +176,7 @@ $(document).ready(function () { email2: { required: true, - // EmailRegex: true, + customEmail: true, }, contact_number2: { diff --git a/public/assets/js/FrontendJs/script.js b/public/assets/js/FrontendJs/script.js index 65bf79f..77dddba 100644 --- a/public/assets/js/FrontendJs/script.js +++ b/public/assets/js/FrontendJs/script.js @@ -37,7 +37,7 @@ window.$('#currently').DataTable({ $("#recipes-popbtn-four").on("click", function () { // var investNowUrl = '{{route("investNow")}}'; $.ajax({ - url : '/invest-now', + url : '/jericho_28_march/invest-now', // url : '{{route("investNow")}}', // url : investNowUrl, type: 'get', @@ -47,7 +47,9 @@ $("#recipes-popbtn-four").on("click", function () { // data : $(this).data('product-id'), dataType : 'json', success: function (result) { + console.log("result",result); // return result.status; + // alert('hello'); if(result.status == 201) { $('#login-pop-up').modal('show'); @@ -56,14 +58,20 @@ $("#recipes-popbtn-four").on("click", function () { $('#blocked-popup').modal('show'); } if(result.status === 200) { - $('#view_details').modal('hide'); - $('#recipes-pop-four').modal('show'); + $('#view_details').modal('hide'); + $('#recipes-pop-four').modal('show'); } if(result.status === 400){ - toastr.warning(result.message); + toastr.warning(result.message); + } + if(result.status == 401) + { + // alert(result.message); + $('#kyc_message').html(result.message); + $('#complete_kyc_modal').modal('show'); } } - }) + }); }); $("#recipes-pop-four-close").on("click", function (){ // console.log("Inside Close Tag") diff --git a/public/assets/uploads/fund_images/202404231201_1711435445_factsheet.jpg b/public/assets/uploads/fund_images/202404231201_1711435445_factsheet.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e22ed827c2a6a169820b5b58078612a484874bc9 GIT binary patch literal 11296 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 CaM{TK literal 0 HcmV?d00001 diff --git a/resources/views/Admin/Pages/manage_chat/chat.blade.php b/resources/views/Admin/Pages/manage_chat/chat.blade.php index 29400b5..0576ec6 100644 --- a/resources/views/Admin/Pages/manage_chat/chat.blade.php +++ b/resources/views/Admin/Pages/manage_chat/chat.blade.php @@ -27,7 +27,7 @@
{{$data->user->name}} - {{$data->created_at->format('d/m/Y')}} + {{$data->created_at->format('d/m/Y h:i a')}}
@if($data->message) diff --git a/resources/views/Admin/Pages/manage_cms/manage_blog/add_new_blog.blade.php b/resources/views/Admin/Pages/manage_cms/manage_blog/add_new_blog.blade.php index 67a2ba3..e31ac6a 100644 --- a/resources/views/Admin/Pages/manage_cms/manage_blog/add_new_blog.blade.php +++ b/resources/views/Admin/Pages/manage_cms/manage_blog/add_new_blog.blade.php @@ -26,7 +26,7 @@ @endforeach - --}} + --}}
-
+
- + + +
-
- -
+ +
+
@@ -57,26 +60,38 @@ + - + @endsection @section('scripts') - + + @endsection @section('scripts') - + -@endsection \ No newline at end of file + @endsection diff --git a/resources/views/Admin/Pages/manage_freeu_investment/manage_freeu_investment.blade.php b/resources/views/Admin/Pages/manage_freeu_investment/manage_freeu_investment.blade.php index 073ab31..8179d89 100644 --- a/resources/views/Admin/Pages/manage_freeu_investment/manage_freeu_investment.blade.php +++ b/resources/views/Admin/Pages/manage_freeu_investment/manage_freeu_investment.blade.php @@ -28,6 +28,7 @@

Manage Products

+
+ @if (count($errors) > 0) +
+ @foreach($errors->all() as $error) + {{ $error }}
+ @endforeach +
+ @endif + @if (Session::has('success')) +
+
+
+ +
{!! Session::get('success') !!}
+
+
+
+ @endif
@@ -501,6 +519,14 @@ @endsection @section('scripts') + + @endsection \ No newline at end of file diff --git a/resources/views/Admin/Pages/manage_investors/view_investors_detail.blade.php b/resources/views/Admin/Pages/manage_investors/view_investors_detail.blade.php index a479560..ac2a783 100644 --- a/resources/views/Admin/Pages/manage_investors/view_investors_detail.blade.php +++ b/resources/views/Admin/Pages/manage_investors/view_investors_detail.blade.php @@ -8,7 +8,8 @@

Investment Dashboard

- Back + {{-- Back --}} + Back
{{--
+ {{-- // back_route = sessionStorage.getItem("returnPage") != null ? {{route('manage_investor_kyc')}} : {{route('manage_investors')}}; --}}
+@endsection +@section('scripts') + @endsection \ No newline at end of file diff --git a/resources/views/Admin/Pages/manage_leads/edit-lead.blade.php b/resources/views/Admin/Pages/manage_leads/edit-lead.blade.php index 630cf7f..611a5a0 100644 --- a/resources/views/Admin/Pages/manage_leads/edit-lead.blade.php +++ b/resources/views/Admin/Pages/manage_leads/edit-lead.blade.php @@ -883,10 +883,16 @@