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/QtyHistoryReportController.php |
<?php namespace App\Http\Controllers; use App\Exports\ProductTransactionReportExport; use App\Models\QtyHistory; use Illuminate\Http\Request; use Maatwebsite\Excel\Facades\Excel; class QtyHistoryReportController extends Controller { public function __construct() { $this->middleware('permission:reports-product-transaction-list' , ['only' => ['index' , 'list' , 'export' , 'destroy']]); } /** * Display a listing of the resource. */ public function option(Request $request) { return view('report-product-transactions.option'); } public function option2(Request $request) { return view('product-qty-histories.option'); } public function index(Request $request) { $paginate = $request->get('paginate')??25; $for_sale = $request->get('for_sale'); $q = $request->get('q')??null; $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]; } $in_out = $request->in_out??0; $productQtyHistories = QtyHistory::with('product')->whereBetween('created_at' , [$start_date . " 00:00:00" , $end_date . " 23:59:59"]) ->whereHas('product', function ($query) use ($for_sale) { // Filter based on related product's 'for_sale' column $query->where('for_sale', $for_sale); })->where('qty_histories.is_adjustment' , false); if($q){ $productQtyHistories = $productQtyHistories->where('grn' , $q); } if($request->in_out > 0){ $productQtyHistories = $productQtyHistories->where('qty' , '>' , 0)->paginate($paginate); }else if($request->in_out < 0){ $productQtyHistories = $productQtyHistories->where('qty' , '<' , 0)->paginate($paginate); }else{ $productQtyHistories = $productQtyHistories->paginate($paginate); } return view('report-product-transactions.index' , compact('productQtyHistories' , 'for_sale' , 'start_date' , 'end_date' , 'paginate' , 'in_out' , 'q')); } /** * 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) { $ids = explode(',',$request->get('past_sale_ids')); // $ids = $ids[0]; $paginate = $request->get('paginate')??25; $for_sale = $request->get('for_sale'); $q = $request->get('q')??null; $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]; } $in_out = $request->in_out??0; $productQtyHistories = QtyHistory::whereBetween('created_at' , [$start_date . " 00:00:00" , $end_date . " 23:59:59"]) ->whereHas('product', function ($query) use ($for_sale) { // Filter based on related product's 'for_sale' column $query->where('for_sale', $for_sale); })->where('qty_histories.is_adjustment' , false) ->orderBy('id' , 'desc'); if($q){ $productQtyHistories = $productQtyHistories->where('grn' , $q); } if($request->in_out > 0){ $productQtyHistories = $productQtyHistories->where('qty' , '>' , 0); }else if($request->in_out < 0){ $productQtyHistories = $productQtyHistories->where('qty' , '<' , 0); }else{ $productQtyHistories = $productQtyHistories; } if($request->get('past_sale_ids')){ $productQtyHistories = $productQtyHistories->whereIn('id' , $ids)->get(); } else{ $productQtyHistories = $productQtyHistories->get(); } return view('report-product-transactions.list' , compact('productQtyHistories' , 'for_sale' , 'start_date' , 'end_date' , 'paginate' , 'in_out' , 'q')); } public function export(Request $request) { return Excel::download(new ProductTransactionReportExport($request->get('for_sale'),$request->get('start_date'),$request->get('end_date'), $request->get('paginate') , $request->get('in_out') , $request->get('q') , $request->get('date')), 'ProductQtyTransaction.xlsx'); } /** * 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) { $qtyHistory = QtyHistory::find($id); $paginate = $request->get('paginate')??25; $q = $request->get('q')??null; $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]; } $in_out = $request->in_out??0; $product = $qtyHistory->product; $for_sale = $product->for_sale; if(!$qtyHistory->weight){ if($qtyHistory->qty>0){ $product->qty = $product->qty-$qtyHistory->qty; } else{ $product->qty = $product->qty+(-$qtyHistory->qty); } }else{ if($qtyHistory->weight>0){ $product->weight = $product->weight-$qtyHistory->weight; } else{ $product->weight = $product->weight+(-$qtyHistory->weight); } } $product->save(); $qtyHistory->delete(); return redirect()->route('reports.product-qty-history' , 'start_date=' . $start_date . '&end_date=' . $end_date . '&paginate=' . $paginate . '&in_out=' . $in_out . '&q=' . $q . '&for_sale=' . $for_sale)->with('success' , __('message.deleted successfully')); } }