Path : /var/www/html/jewelry-pos/app/Http/Controllers/ |
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
Current File : /var/www/html/jewelry-pos/app/Http/Controllers/ReportController.php |
<?php namespace App\Http\Controllers; use App\Exports\CategoryProductExport; use App\Exports\GrnReportsExport; use App\Exports\ProductTransactionReportExport; use App\Exports\SampleProductExport; use App\Imports\ProductImport; use App\Models\Currency; use App\Models\Product; use App\Models\ProductAttribute; use App\Models\ProductCategory; use App\Models\QtyHistory; use App\Models\Sale; use App\Models\Supplier; use http\Exception; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Maatwebsite\Excel\Facades\Excel; use function Laravel\Prompts\alert; class ReportController extends Controller { /** * Display a listing of the resource. */ public function __construct() { set_time_limit(500000); $this->middleware('permission:reports-summary-list' , ['only' => ['index' , 'show']]); } public function index(Request $request) //summary report { $start_date = $request->get('start_date') ?? date('Y-m-d'); $end_date = $request->get('end_date') ?? date('Y-m-d'); $dates = explode(' - ', $request->date); if ($request->date) { $start_date = $dates[0]; $end_date = $dates[1]; } $currencies = Currency::all(); return view('reports.index' , compact('start_date' , 'end_date' , 'currencies')); } /** * Show the form for creating a new resource. */ public function create() { // } /** * Store a newly created resource in storage. */ public function store(Request $request) { // } /** * Display the specified resource. */ public function print(Request $request) // summary print { $start_date = $request->get('start_date') ?? date('Y-m-d'); $end_date = $request->get('end_date') ?? date('Y-m-d'); $dates = explode(' - ', $request->date); if ($request->date) { $start_date = $dates[0]; $end_date = $dates[1]; } $sales = Sale::whereBetween('created_at', [$start_date . " 00:00:00", $end_date . " 23:59:59"])->orderBy('id' , 'desc')->get(); $cashie = Auth::user()->name; return view('reports.summary-list' , compact('cashie' , 'sales' , 'start_date' , 'end_date')); } /** * Show the form for editing the specified resource. */ public function edit(string $id) { // } /** * Update the specified resource in storage. */ public function update(Request $request, string $id) { // } /** * Remove the specified resource from storage. */ public function destroy(string $id , Request $request) //destroy grn { } public function deletedReport(Request $request){ $paginate = $request->paginate??25; $check_fixed_price = $request->get('check_fixed_price'); $productCategories = ProductCategory::get(); $gold_category = clone $productCategories; $gold=$gold_category->whereIn('name',['មាស','Gold','ทอง'])->first(); $child_gold = ProductCategory::where('parent_id' , $gold->id)->get(); $platinume_clone = clone $productCategories; $platinume_Category = $platinume_clone->whereIn('name' , ['ផ្លាកទីន','Platinum','แพลตตินัม'])->first(); $child_p = ProductCategory::where('parent_id' , $platinume_Category->id)->get(); $start_date = $request->get('start_date') ?? date('Y-m-d'); $end_date = $request->get('end_date') ?? date('Y-m-d'); $dates = explode(' - ', $request->date); if ($request->date) { $start_date = $dates[0]; $end_date = $dates[1]; } if($start_date){ $sales = Sale::withTrashed()->whereBetween('deleted_at', [$start_date . " 00:00:00", $end_date . " 23:59:59"]); } $search = $request->get('search'); if($search){ $sales = Sale::withTrashed()->where('part_number' , 'like' , '%' . $search . '%'); } $product_category_id = $request->get('product_category_id'); if($product_category_id != 0){ $productCategory = ProductCategory::findOrFail($product_category_id); $sales = $sales->whereIn('product_category_id' , $productCategory->IdvsAllSubCategories()); }else{ $productCategory = []; } if($check_fixed_price == 1){ $sales = $sales->where('fixed_price' , true); }elseif($check_fixed_price == 2){ $sales = $sales->where('fixed_price' , false); } $productCategories1 = clone $productCategories; $main_categories = $productCategories1->where('parent_id' , null); $productCategories2 = clone $productCategories; $child_categories = $productCategories2->where('parent_id' , '<>' , ''); $sales1 = Clone $sales; $total_sale_price = $sales1->sum('sales_price'); $sales2 = Clone $sales; $salescost = Clone $sales; $total_sale_cost = $sales2->sum('selling_cost'); $total_cost_of_sale = $salescost->sum('cost'); $sales3 = Clone $sales; $total_sale_wage = $sales3->sum('wages'); $total_sale_wages_in_weight = $sales3->sum('wages_in_weight'); $sales4 = Clone $sales; $total_sale_original_wage = $sales4->sum('original_wages'); $total_sale_original_wages_in_weight = $sales4->sum(DB::raw('original_wages_in_weight * (supplier_rate/1000)')); $sales5 = Clone $sales; $total_sale_discount = $sales5->sum('discount'); $sales = $sales->orderBy('id' , 'desc')->paginate($paginate); $total_sale_profit= $total_sale_price-$total_sale_cost; return view('reports.deleted-report' , compact('start_date' , 'sales' , 'main_categories' , 'child_categories' , 'product_category_id' , 'gold' , 'child_gold' , 'productCategories' , 'end_date' , 'search' , 'paginate','total_sale_price','total_sale_cost','total_sale_wage','total_sale_original_wage', 'platinume_Category','child_p', 'total_sale_discount','total_sale_profit' , 'total_sale_wages_in_weight', 'total_cost_of_sale' , 'total_sale_original_wages_in_weight' , 'productCategory' , 'check_fixed_price')); } public function deletedReportPrint(Request $request){ $paginate = $request->get('paginate')??25; $product_category_id = $request->get('product_category_id'); $check_fixed_price = $request->get('check_fixed_price'); $productCategories = ProductCategory::get(); $gold_category = clone $productCategories; $gold=$gold_category->whereIn('name',['មាស','Gold','ทอง'])->first(); $child_gold = ProductCategory::where('parent_id' , $gold->id)->get(); $platinume_clone = clone $productCategories; $platinume_Category = $platinume_clone->whereIn('name' , ['ផ្លាកទីន','Platinum','แพลตตินัม'])->first(); $child_p = ProductCategory::where('parent_id' , $platinume_Category->id)->get(); $start_date = $request->get('start_date') ?? date('Y-m-d'); $end_date = $request->get('end_date') ?? date('Y-m-d'); $dates = explode(' - ', $request->date); if ($request->date) { $start_date = $dates[0]; $end_date = $dates[1]; } $search = $request->get('search'); if($search){ $sales = Sale::withTrashed()->where('part_number' , 'like' , '%' . $search . '%'); }else{ $sales = Sale::withTrashed()->whereBetween('deleted_at', [$start_date . " 00:00:00", $end_date . " 23:59:59"]); } $product_category_id = $request->get('product_category_id'); if($product_category_id != 0){ $productCategory = ProductCategory::findOrFail($product_category_id); $sales = $sales->whereIn('product_category_id' , $productCategory->IdvsAllSubCategories()); }else{ $productCategory = []; } if($check_fixed_price == 1){ $sales = $sales->where('fixed_price' , true); }elseif($check_fixed_price == 2){ $sales = $sales->where('fixed_price' , false); } $sales1 = Clone $sales; $total_sale_price = $sales1->sum('sales_price'); $sales2 = Clone $sales; $total_sale_cost = $sales2->sum('selling_cost'); $sales3 = Clone $sales; $total_sale_wage = $sales3->sum('wages'); $total_sale_wages_in_weight = $sales3->sum('wages_in_weight'); $sales4 = Clone $sales; $total_sale_original_wage = $sales4->sum('original_wages'); $total_sale_original_wages_in_weight = $sales4->sum(DB::raw('original_wages_in_weight * (supplier_rate/1000)')); $sales5 = Clone $sales; $total_sale_discount = $sales5->sum('discount'); $sales6 = Clone $sales; $total_sale_qty = $sales6->sum('qty'); $sales = $sales->orderBy('id' , 'desc')->get(); $total_sale_profit= $total_sale_price-$total_sale_cost; return view('reports.deleted-report-print' , compact('start_date' , 'end_date' , 'search' , 'paginate','total_sale_price', 'productCategories' , 'check_fixed_price' ,'total_sale_cost','total_sale_wage','total_sale_original_wage','total_sale_discount','total_sale_profit' , 'total_sale_qty' , 'product_category_id' , 'platinume_Category' , 'child_gold' , 'gold' , 'total_sale_original_wages_in_weight' , 'total_sale_wages_in_weight' , 'productCategory')); } public function adjustmentReport(Request $request) { $paginate = $request->get('paginate')??25; $product_category_id = $request->get('product_category_id'); $check_fixed_price = $request->get('check_fixed_price'); $start_date = $request->get('start_date') ?? date('Y-m-d'); $end_date = $request->get('end_date') ?? date('Y-m-d'); $dates = explode(' - ', $request->date); if ($request->date) { $start_date = $dates[0]; $end_date = $dates[1]; } $search = $request->get('search'); $productCategories = ProductCategory::get(); $gold_category = clone $productCategories; $gold=$gold_category->whereIn('name',['មាស','Gold','ทอง'])->first(); $child_gold = ProductCategory::where('parent_id' , $gold->id)->get(); $productCategories1 = clone $productCategories; $main_categories = $productCategories1->where('parent_id' , null); $productCategories2 = clone $productCategories; $child_categories = $productCategories2->where('parent_id' , '<>' , ''); $platinume_clone = clone $productCategories; $platinume_Category = $platinume_clone->whereIn('name' , ['ផ្លាកទីន','Platinum','แพลตตินัม'])->first(); $child_p = ProductCategory::where('parent_id' , $platinume_Category->id)->get(); if($search){ $productQtyHistories = QtyHistory::whereBetween('created_at' , [$start_date.' 00:00:00' , $end_date.' 23:59:59'])->where('is_adjustment' , true) ->where(function ($query) use ($search) { $query->where('grn', 'LIKE', '%' . $search . '%') // Search in grn column ->orWhereHas('product', function ($query) use ($search) { $query->where('part_number', 'LIKE', '%' . $search . '%'); // Search in part_number }); }); }else{ $productQtyHistories = QtyHistory::whereBetween('created_at' , [$start_date.' 00:00:00' , $end_date.' 23:59:59'])->where('is_adjustment' , true); } if($product_category_id == -100){ $productQtyHistories = $productQtyHistories->whereHas('product', function ($query) use ($search) { $query->where('for_sale', 0); }) ->paginate($paginate); }else if($product_category_id != 0){ $productQtyHistories = $productQtyHistories->whereHas('product', function ($query) use ($product_category_id) { $query->where('product_category_id', $product_category_id); }) ->paginate($paginate); }else{ $productQtyHistories = $productQtyHistories->paginate($paginate); } return view('reports.adjustment-report' , compact('paginate' , 'start_date' , 'end_date' , 'search' , 'product_category_id' , 'child_gold', 'child_p' , 'productQtyHistories' , 'main_categories' , 'child_categories' , 'check_fixed_price')); } public function adjustmentReportPrint(Request $request) { $paginate = $request->get('paginate')??25; $product_category_id = $request->get('product_category_id'); $check_fixed_price = $request->get('check_fixed_price'); $start_date = $request->get('start_date') ?? date('Y-m-d'); $end_date = $request->get('end_date') ?? date('Y-m-d'); $dates = explode(' - ', $request->date); if ($request->date) { $start_date = $dates[0]; $end_date = $dates[1]; } $search = $request->get('search'); $productCategories = ProductCategory::get(); $gold_category = clone $productCategories; $gold=$gold_category->whereIn('name',['មាស','Gold','ทอง'])->first(); $child_gold = ProductCategory::where('parent_id' , $gold->id)->get(); $productCategories1 = clone $productCategories; $main_categories = $productCategories1->where('parent_id' , null); $productCategories2 = clone $productCategories; $child_categories = $productCategories2->where('parent_id' , '<>' , ''); $platinume_clone = clone $productCategories; $platinume_Category = $platinume_clone->whereIn('name' , ['ផ្លាកទីន','Platinum','แพลตตินัม'])->first(); $child_p = ProductCategory::where('parent_id' , $platinume_Category->id)->get(); if($search){ $productQtyHistories = QtyHistory::whereBetween('created_at' , [$start_date.' 00:00:00' , $end_date.' 23:59:59'])->where('is_adjustment' , true) ->where(function ($query) use ($search) { $query->where('grn', 'LIKE', '%' . $search . '%') // Search in grn column ->orWhereHas('product', function ($query) use ($search) { $query->where('part_number', 'LIKE', '%' . $search . '%'); // Search in part_number }); }); }else{ $productQtyHistories = QtyHistory::whereBetween('created_at' , [$start_date.' 00:00:00' , $end_date.' 23:59:59'])->where('is_adjustment' , true); } if($product_category_id == -100){ $productQtyHistories = $productQtyHistories->whereHas('product', function ($query) use ($search) { $query->where('for_sale', 0); }) ->get(); }else if($product_category_id != 0){ $productQtyHistories = $productQtyHistories->whereHas('product', function ($query) use ($product_category_id) { $query->where('product_category_id', $product_category_id); }) ->get(); }else{ $productQtyHistories = $productQtyHistories->get(); } return view('reports.adjustment-report-print' , compact('paginate' , 'start_date' , 'end_date' , 'search' , 'product_category_id' , 'child_gold', 'child_p' , 'productQtyHistories' , 'main_categories' , 'child_categories' , 'check_fixed_price')); } }