| 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/GrnReportController.php |
<?php
namespace App\Http\Controllers;
use App\Exports\GrnReportsExport;
use App\Models\Product;
use App\Models\QtyHistory;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use Illuminate\Support\Facades\DB;
class GrnReportController extends Controller
{
/**
* Display a listing of the resource.
*/
public function __construct()
{
set_time_limit(500000);
$this->middleware('permission:reports-grn-list' , ['only' => ['index' , 'print' , 'destroy']]);
}
public function index(Request $request)
{
$paginate = $request->get('paginate')??25;
$q = $request->get('q');
$check = 0;
if($q) {
$productQtyHistories = QTYHistory::where('grn' , $q)->orderBy('id','desc')->paginate($paginate);
if($productQtyHistories->isEmpty()){
$check = 0;
}else{
$check = 1;
}
}else{
$productQtyHistories = [];
$check = 0;
}
return view('grn-reports.index' , compact('productQtyHistories' , 'paginate' , 'q' , 'check'));
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
public function print(Request $request)
{
$paginate = $request->get('paginate')??25;
$q = $request->get('q');
$check = 0;
if($q) {
$productQtyHistories = QTYHistory::where('grn' , $q)->orderBy('id','desc')->get();
if($productQtyHistories->isEmpty()){
$check = 0;
}else{
$check = 1;
}
}else{
$productQtyHistories = [];
$check = 0;
}
return view('grn-reports.list' , compact('productQtyHistories' , 'paginate' , 'q' , 'check'));
}
public function export(Request $request)
{
return Excel::download(new GrnReportsExport($request->get('q')), 'GRN Report.xlsx');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* 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);
$q = $request->get('q');
$product = $qtyHistory->product;
if($qtyHistory->qty>0){
$product->qty = $product->qty-$qtyHistory->qty;
}
else{
$product->qty = $product->qty+(-$qtyHistory->qty);
}
$product->save();
$qtyHistory->delete();
return redirect()->route('grn-report.destroy' , 'q=' . $q)->with('success' , __('message.deleted successfully'));
}
public function grn_list(Request $request)
{
$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];
}
$paginate = $request->get('paginate')??25;
$q = $request->get('q');
if($q){
// $productQtyHistories = QTYHistory::selectRaw('MAX(id) as id, grn, created_at')
// ->where('grn', '<>', '')->where('grn' , $q)
// ->groupBy('grn')
// ->orderBy('id', 'desc')
// ->paginate($paginate);
$productQtyHistories = QTYHistory::selectRaw('MAX(qty_histories.id) as id, qty_histories.grn, qty_histories.created_at,qty_histories.is_adjustment')
->join('products', 'products.id', '=', 'qty_histories.product_id')
->where('qty_histories.grn', '<>', '')
// ->where('qty_histories.is_adjustment' , false)
->where('qty_histories.grn', $q)
->whereNull('products.deleted_at')
->whereBetween('qty_histories.created_at', [$start_date.' 00:00:00', $end_date.' 23:59:59']) // Filter by date range
->groupBy('qty_histories.grn')
->orderBy('id', 'desc')
->paginate($paginate);
}else{
// $productQtyHistories = QTYHistory::selectRaw('MAX(id) as id, grn, created_at')
// ->where('grn', '<>', '')
// ->groupBy('grn')
// ->orderBy('id', 'desc')
// ->paginate($paginate);
$productQtyHistories = QTYHistory::selectRaw('MAX(qty_histories.id) as id, qty_histories.grn, qty_histories.created_at,qty_histories.is_adjustment')
->join('products', 'products.id', '=', 'qty_histories.product_id')
->where('qty_histories.grn', '<>', '')
// ->where('qty_histories.is_adjustment' , false)
->whereNull('products.deleted_at')
->whereBetween('qty_histories.created_at', [$start_date.' 00:00:00', $end_date.' 23:59:59']) // Filter by date range
->groupBy('qty_histories.grn')
->orderBy('id', 'desc')
->paginate($paginate);
}
return view('grn-reports.grn-list' , compact('productQtyHistories' , 'paginate' , 'q' , 'start_date' , 'end_date'));
}
public function grn_print(Request $request)
{
$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];
}
$start = new \DateTime($start_date);
$end = new \DateTime($end_date);
$interval = $start->diff($end);
$number_of_days = $interval->days + 1;
$paginate = $request->get('paginate')??25;
$q = $request->get('q');
$productQtyHistoriesForClone = QTYHistory::selectRaw('MAX(qty_histories.id) as id, qty_histories.grn, qty_histories.created_at,qty_histories.is_adjustment,qty_histories.*')
->join('products', 'products.id', '=', 'qty_histories.product_id')
->where('qty_histories.grn', '<>', '')
// ->where('qty_histories.is_adjustment' , false)
->whereNull('products.deleted_at')
->whereBetween('qty_histories.created_at', [$start_date.' 00:00:00', $end_date.' 23:59:59']) // Filter by date range
->groupBy('qty_histories.grn');
if($q){
$productClone = clone $productQtyHistoriesForClone;
$productQtyHistories = $productClone
->where('qty_histories.grn', $q)
->orderBy('id', 'desc')
->get();
}else{
$productClone = clone $productQtyHistoriesForClone;
$productQtyHistories = $productClone
->orderBy('id', 'desc')
->get();
}
return view('grn-reports.grn-print' , compact('productQtyHistories' , 'paginate' , 'q' , 'start_date' , 'end_date' , 'productQtyHistoriesForClone' , 'number_of_days'));
}
public function grn_print_detail(Request $request)
{
$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];
}
$start = new \DateTime($start_date);
$end = new \DateTime($end_date);
$interval = $start->diff($end);
$number_of_days = $interval->days + 1;
$paginate = $request->get('paginate')??25;
$q = $request->get('q');
$productQtyHistoriesForClone = QTYHistory::selectRaw('MAX(qty_histories.id) as id, qty_histories.grn, qty_histories.created_at,qty_histories.is_adjustment,qty_histories.*')
->join('products', 'products.id', '=', 'qty_histories.product_id')
->where('qty_histories.grn', '<>', '')
// ->where('qty_histories.is_adjustment' , false)
->whereNull('products.deleted_at')
->whereBetween('qty_histories.created_at', [$start_date.' 00:00:00', $end_date.' 23:59:59']) // Filter by date range
->groupBy('qty_histories.grn');
if($q){
$productClone = clone $productQtyHistoriesForClone;
$productQtyHistories = $productClone
->where('qty_histories.grn', $q)
->orderBy('id', 'desc')
->get();
}else{
$productClone = clone $productQtyHistoriesForClone;
$productQtyHistories = $productClone
->orderBy('id', 'desc')
->get();
}
return view('grn-reports.grn-print-detail' , compact('productQtyHistories' , 'paginate' , 'q' , 'start_date' , 'end_date' , 'productQtyHistoriesForClone' , 'number_of_days'));
}
public function grn_product_list($grn , Request $request)
{
$paginate = $request->get('paginate')??25;
$q = $request->get('q');
if($q){
$productQtyHistories = QTYHistory::join('products', 'qty_histories.product_id', '=', 'products.id')
->where('qty_histories.grn', $grn)
->where('products.part_number', $q)
// ->where('qty_histories.is_adjustment' , false)
->orderBy('qty_histories.id', 'desc')
->select('qty_histories.*', 'products.part_number as part_number')
->paginate($paginate);
}else{
$productQtyHistories = QTYHistory::join('products', 'qty_histories.product_id', '=', 'products.id')
->where('qty_histories.grn', $grn)
// ->where('qty_histories.is_adjustment' , false)
->orderBy('qty_histories.id', 'desc')
->select('qty_histories.*', 'products.part_number as part_number')
->paginate($paginate);
}
return view('grn-reports.grn-product-list' , compact('productQtyHistories' , 'paginate' , 'q' , 'grn'));
}
public function grn_product_print($grn , Request $request)
{
$paginate = $request->get('paginate')??25;
$q = $request->get('q');
$productQtyHistoriesForClone = QTYHistory::join('products', 'qty_histories.product_id', '=', 'products.id')
->where('qty_histories.grn', $grn);
// ->where('qty_histories.is_adjustment' , false);
if($q){
$productClone = clone $productQtyHistoriesForClone;
$productQtyHistories = $productClone->where('products.part_number', $q)
->orderBy('qty_histories.id', 'desc')
->select('qty_histories.*', 'products.part_number as part_number')
->get();
$total_sum_clone = clone $productQtyHistoriesForClone;
$total_sum_costs = $total_sum_clone->where('products.part_number', $q)
->sum(DB::raw('qty_histories.qty * products.cost'));
$total_sum_costss = $total_sum_clone->where('products.part_number', $q)
->sum(DB::raw('qty_histories.qty * qty_histories.product_cost'));
if($total_sum_costss){
$total_sum_cost = $total_sum_costss;
}else{
$total_sum_cost = $total_sum_costs;
}
$total_cost_clone = clone $productQtyHistoriesForClone;
$total_cost = $total_cost_clone->where('products.part_number', $q)
->sum(DB::raw('products.cost'));
// $total_costss = $total_cost_clone->where('products.part_number', $q)
// ->sum(DB::raw('qty_histories.cost'));
// if($total_costss){
// $total_cost = $total_costss;
// }else{
// $total_cost = $total_costs;
// }
$total_cost_fee_clone = clone $productQtyHistoriesForClone;
$total_cost_fee = $total_cost_fee_clone->where('products.part_number', $q)
->sum(DB::raw('products.original_wages'));
$total_weight_clone = clone $productQtyHistoriesForClone;
$total_weights = $total_weight_clone->where('products.part_number', $q)
->sum(DB::raw('qty_histories.weight'));
$total_weightss = $total_weight_clone->where('products.part_number', $q)
->sum(DB::raw('products.weight'));
if($total_weights){
$total_weight = $total_weights;
}else{
$total_weight = $total_weightss;
}
}else{
$productClone = clone $productQtyHistoriesForClone;
$productQtyHistories = $productClone
->orderBy('qty_histories.id', 'desc')
->select('qty_histories.*', 'products.part_number as part_number')
->get();
$total_sum_clone = clone $productQtyHistoriesForClone;
$total_sum_costs = $total_sum_clone
->sum(DB::raw('qty_histories.qty * products.cost'));
$total_sum_costss = $total_sum_clone
->sum(DB::raw('qty_histories.qty * qty_histories.product_cost'));
if($total_sum_costss){
$total_sum_cost = $total_sum_costss;
}else{
$total_sum_cost = $total_sum_costs;
}
$total_cost_clone = clone $productQtyHistoriesForClone;
$total_cost = $total_cost_clone
->sum(DB::raw('products.cost'));
// $total_costss = $total_cost_clone
// ->sum(DB::raw('qty_histories.cost'));
// if($total_costss){
// $total_cost = $total_costss;
// }else{
// $total_cost = $total_costs;
// }
$total_cost_fee_clone = clone $productQtyHistoriesForClone;
$total_cost_fee = $total_cost_fee_clone
->sum(DB::raw('products.original_wages'));
$total_weight_clone = clone $productQtyHistoriesForClone;
$total_weights = $total_weight_clone
->sum(DB::raw('qty_histories.weight'));
$total_weightss = $total_weight_clone
->sum(DB::raw('products.weight'));
if($total_weights){
$total_weight = $total_weights;
}else{
$total_weight = $total_weightss;
}
// $productQtyHistories = QTYHistory::join('products', 'qty_histories.product_id', '=', 'products.id')
// ->orderBy('qty_histories.id', 'desc')
// ->select('qty_histories.*', 'products.part_number as part_number')
// ->paginate($paginate);
// $total_sum_cost = QTYHistory::join('products', 'qty_histories.product_id', '=', 'products.id')
// ->where('qty_histories.grn', $grn)
// ->sum(DB::raw('qty_histories.qty * products.cost'));
}
return view('grn-reports.grn-product-print' , compact('productQtyHistories' , 'paginate' , 'q' , 'grn' , 'total_sum_cost' , 'total_cost'
, 'total_weight'));
}
public function grn_product_export(Request $request , $grn)
{
return Excel::download(new GrnReportsExport($request->get('q'),$grn), 'GRN Report.xlsx');
}
}