| 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/SaleReportController.php |
<?php
namespace App\Http\Controllers;
use App\Exports\SaleReport2Export;
use App\Exports\SaleReportExport;
use App\Models\Product;
use App\Models\ProductCategory;
use App\Models\Sale;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Facades\Excel;
class SaleReportController extends Controller
{
public function __construct()
{
$this->middleware('permission:reports-sale-list' , ['only' => ['index' , 'print' , 'export' , 'show']]);
}
public function index(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];
}
$search = $request->get('search');
if(!$start_date || !$search){
if($start_date){
$sales = Sale::whereBetween('created_at', [$start_date . " 00:00:00", $end_date . " 23:59:59"]);
}
if($search){
$sales = Sale::where('part_number' , 'like' , '%' . $search . '%');
}
}else{
$sales = Sale::whereBetween('created_at', [$start_date . " 00:00:00", $end_date . " 23:59:59"])->where('part_number' , 'like' , '%' . $search . '%');
}
// else{
// $sales= Sale::query();
// }
$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);
// if($product_category_id && $productCategory->fixed_price == false){
// $total_sale_profit= $total_sale_price-($total_sale_cost);
// }else{
// $total_sale_profit= $total_sale_price-($total_sale_cost);
// }
$total_sale_profit= $total_sale_price-$total_sale_cost;
return view('sale-reports.index' , 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 print(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::whereBetween('created_at', [$start_date . " 00:00:00", $end_date . " 23:59:59"]);
}
$search = $request->get('search');
if($search){
$sales = Sale::where('part_number' , 'like' , '%' . $search . '%');
}
// else{
// $sales= Sale::query();
// }
$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;
$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('original_wages_in_weight');
$sales5 = Clone $sales;
$total_sale_discount = $sales5->sum('discount');
$sales = $sales->orderBy('id' , 'desc')->paginate($paginate);
// if($product_category_id && $productCategory->fixed_price == false){
// $total_sale_profit= $total_sale_price-$total_sale_cost;
// }else{
// $total_sale_profit= $total_sale_price-$total_sale_cost-$total_sale_original_wages_in_weight;
// }
$total_sale_profit= $total_sale_price-$total_sale_cost;
return view('sale-reports.print' , 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_sale_original_wages_in_weight' , 'productCategory' , 'check_fixed_price'));
}
public function export(Request $request)
{
return Excel::download(new SaleReportExport($request->get('search'),$request->get('start_date'),$request->get('end_date'),$request->get('product_category_id')),'SaleReport.xlsx');
}
public function show(Request $request , $id)
{
$search = $request->get('search');
$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];
}
$sale = Sale::find($id);
if(!$sale->purity_upgrade_to){
$productCategory = ProductCategory::query();
$productCategory->name = $sale->productCategory->name;
}else{
$productCategory = ProductCategory::where('purity_level' , $sale->purity_upgrade_to)->first();
}
if($sale->selling_purity){
$productCategory->name = $sale->productCategoryNameSelling();
}
if(!$sale->user || !$sale){
abort(404);
}
return view('sale-reports.show' , compact('sale' , 'search' , 'start_date' , 'end_date' , 'productCategory'));
}
public function print_total_category(Request $request)
{
$ids = explode(',',$request->get('past_sale_ids'));
$ids = $ids[0];
$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(!$start_date || !$search){
if($search){
$sales = Sale::where('part_number' , 'like' , '%' . $search . '%');
}
if($start_date){
$sales = Sale::whereBetween('created_at', [$start_date . " 00:00:00", $end_date . " 23:59:59"]);
}
}else{
$sales = Sale::whereBetween('created_at', [$start_date . " 00:00:00", $end_date . " 23:59:59"])->where('part_number' , 'like' , '%' . $search . '%');
}
// else{
// $sales= Sale::query();
// }
// if($product_category_id){
// $sales = $sales->where('product_category_id' , $product_category_id);
// dd($sales->get() , $product_category_id);
// }
$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($ids){
$sales = $sales->where('id' , $ids);
}
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();
// if($product_category_id && $productCategory->fixed_price == false){
// $total_sale_profit= $total_sale_price-($total_sale_cost+$total_sale_original_wage);
// }else{
// $total_sale_profit= $total_sale_price-$total_sale_cost;
// }
$total_sale_profit= $total_sale_price-$total_sale_cost;
return view('sale-reports.print-total-category' , 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' , 'ids'));
}
// Sale Report 2
public function index2(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::whereBetween('created_at', [$start_date . " 00:00:00", $end_date . " 23:59:59"]);
}
$search = $request->get('search');
if($search){
$sales = Sale::where('part_number' , 'like' , '%' . $search . '%');
}
// else{
// $sales= Sale::query();
// }
$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);
// if($product_category_id && $productCategory->fixed_price == false){
// $total_sale_profit= $total_sale_price-($total_sale_cost+$total_sale_original_wage);
// }else{
// $total_sale_profit= $total_sale_price-$total_sale_cost;
// }
$total_sale_profit= $total_sale_price-$total_sale_cost;
return view('sale-reports2.index2' , 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 print2(Request $request)
{
$paginate = $request->get('paginate')??25;
$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::where('part_number' , 'like' , '%' . $search . '%');
}else{
$sales= Sale::query();
}
if($start_date){
$sales =$sales->whereBetween('created_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());
}
$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');
$sales4 = Clone $sales;
$total_sale_original_wage = $sales4->sum('original_wages');
$sales5 = Clone $sales;
$total_sale_discount = $sales5->sum('discount');
// $sales = $sales->orderBy('id' , 'desc')->paginate($paginate);
$sales = $sales->orderBy('id' , 'desc')->get();
$total_sale_profit= $total_sale_price-$total_sale_cost;
return view('sale-reports2.print2' , compact('sales' , 'start_date' , 'end_date' , 'search' , 'paginate','total_sale_price','total_sale_cost','total_sale_wage','total_sale_original_wage','total_sale_discount','total_sale_profit'));
}
public function export2(Request $request)
{
return Excel::download(new SaleReport2Export($request->get('search'),$request->get('start_date'),$request->get('end_date'),$request->get('product_category_id')),'SaleReport.xlsx');
}
public function show2(Request $request , $id)
{
$search = $request->get('search');
$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];
}
$sale = Sale::find($id);
if(!$sale->purity_upgrade_to){
$productCategory = ProductCategory::query();
$productCategory->name = $sale->productCategory->name;
}else{
$productCategory = ProductCategory::where('purity_level' , $sale->purity_upgrade_to)->first();
}
if($sale->selling_purity){
$productCategory->name = $sale->productCategoryNameSelling();
}
if(!$sale->user || !$sale){
abort(404);
}
return view('sale-reports2.show' , compact('sale' , 'search' , 'start_date' , 'end_date' , 'productCategory'));
}
public function print_total_category2(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::where('part_number' , 'like' , '%' . $search . '%');
}else{
$sales = Sale::whereBetween('created_at', [$start_date . " 00:00:00", $end_date . " 23:59:59"]);
}
// else{
// $sales= Sale::query();
// }
// if($product_category_id){
// $sales = $sales->where('product_category_id' , $product_category_id);
// dd($sales->get() , $product_category_id);
// }
$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();
// if($product_category_id && $productCategory->fixed_price == false){
// $total_sale_profit= $total_sale_price-($total_sale_cost+$total_sale_original_wage);
// }else{
// $total_sale_profit= $total_sale_price-$total_sale_cost;
// }
$total_sale_profit= $total_sale_price-$total_sale_cost;
return view('sale-reports2.print-total-category-2' , 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'));
}
}