| 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/BuildStockProductController.php |
<?php
namespace App\Http\Controllers;
use App\Models\BuildStockProduct;
use App\Models\BuildStockDate;
use App\Models\BuildStockProductAttribute;
use App\Models\ProductCategory;
use App\Models\ProductCategoryPrice;
use App\Models\QtyHistory;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class BuildStockProductController extends Controller
{
public function build_stock_product_category_show(Request $request)
{
$productCategories = ProductCategory::where('is_main',true)->get();
$now = Carbon::now();
$date = $now->format('m/d/Y');
return view('build-stock-products.option', compact('productCategories' , 'date'));
}
/**
* Display a listing of the resource.
*/
public function index(Request $request , $id)
{
$category_id = $request->get('category_id');
$category = ProductCategory::find($id);
$platinumCategories = ProductCategory::where('parent_id' , $id)->get();
$paginate = $request->get('paginate')??25;
$date = $request->get('date');
$gold=ProductCategory::whereIn('name',['មាស','Gold','ทอง'])->first();
$platinum_category_id = $request->get('platinum_category');
$check_fixed_price = $request->get('check_fixed_price');
if(!$date){
$now = Carbon::now();
$date = $now->format('m/d/Y');
}
$dates = date('Y-m-d' , strtotime($date))??date('Y-m-d');
$build_stocks = BuildStockProduct::join('product_categories', 'product_categories.id', '=', 'build_stock_products.product_category_id')->where('build_stock_products.is_active' , true)->where('build_stock_products.qty' , '>' , 0)
->whereBetween('build_stock_products.created_at' , [$dates . ' 00:00:00' , $dates . ' 23:59:59'])->whereIn('build_stock_products.product_category_id' , $category->IdvsAllSubCategories());
$test = BuildStockProduct::join('product_categories', 'product_categories.id', '=', 'build_stock_products.product_category_id')->where('build_stock_products.is_active' , true)->where('build_stock_products.qty' , '>' , 0)->where('build_stock_products.for_sale' , 1)
->whereIn('build_stock_products.product_category_id' , $category->IdvsAllSubCategories());
// dd($build_stocks->get());
if($platinum_category_id){
$build_stocks = $build_stocks->where('build_stock_products.product_category_id' , $platinum_category_id);
}
if($check_fixed_price == 1){
$build_stocks = $build_stocks->where('build_stock_products.fixed_price' , true);
}elseif($check_fixed_price == 2){
$build_stocks = $build_stocks->where('build_stock_products.fixed_price' , false);
}
$search = $request->get('search');
if($search){
$build_stocks = $build_stocks->where('build_stock_products.part_number' , $search);
}
$products1 = Clone $build_stocks;
$product11= Clone $build_stocks;
$totalCost = $products1->sum('build_stock_products.cost');
$products2 = Clone $build_stocks;
$totalWage = $products2->sum('build_stock_products.wages');
$product3 = Clone $build_stocks;
$totalOriginalWage = $product3->sum('build_stock_products.original_wages');
$product4 = Clone $build_stocks;
$totalQty = $product4->sum('build_stock_products.qty');
$product7 = Clone $build_stocks;
$totalGoldWeight = $product7->select(DB::raw('build_stock_products.weight, (build_stock_products.weight*product_categories.purity_level) as totalWeight'))->pluck('totalWeight'); //NOT DONE
$totalGoldWeight = array_sum(($totalGoldWeight->all()));
$product8 = Clone $build_stocks;
$totalWeight = $product8->select(DB::raw('build_stock_products.weight as totalWeight'))->pluck('totalWeight'); //NOT DONE
$totalWeight = array_sum(($totalWeight->all()));
$product5 = Clone $build_stocks;
$product51 = Clone $build_stocks;
$children = $category->children->where('name' , 'មាសដុំ')->first();
if($category->fixed_price){
$totalPrice = $product5->sum('price')+ BuildStockProductAttribute::whereIn('build_stock_product_id',$product51->pluck('build_stock_products.id'))->sum('price');
// dd($totalCost - $totalOriginalWage);
}
else{
$children_product = clone $build_stocks;
if($children){
$children_weight = $children_product->where('product_category_id' , $children->id)->sum('build_stock_products.weight');
$totalGoldWeight = $totalGoldWeight + $children_weight;
}
$product_fixed_clone = clone $build_stocks;
$cost_fixed_clone = clone $build_stocks;
$cost_notFix_clone = clone $build_stocks;
//Total Cost
$totalCostNotFix = $cost_notFix_clone->where('build_stock_products.fixed_price' , false)->sum('build_stock_products.cost');
// $totalCostNotFix = $cost_notFix_clone->where('products.fixed_price' , false)->sum('products.cost');
// $totalCostFixed = $cost_fixed_clone->where('products.fixed_price' , true)->sum('products.cost');
$totalCostFixed = $cost_fixed_clone->where('build_stock_products.fixed_price' , true)->sum('build_stock_products.cost');
// dd($totalCostNotFix , $totalCostFixed , $totalCost);
//Total Price
$totalPriceNotFix = ($totalGoldWeight*$gold->selling_to_usd_exchange_rate) + BuildStockProductAttribute::whereIn('build_stock_product_id',$product51->where('build_stock_products.fixed_price' , false)->pluck('build_stock_products.id'))->sum('price');
$totalPriceFixed = $product_fixed_clone->where('build_stock_products.fixed_price' , true)->sum('price');
$totalPrice = ($totalGoldWeight*$gold->selling_to_usd_exchange_rate) + BuildStockProductAttribute::whereIn('build_stock_product_id',$product51->pluck('build_stock_products.id'))->sum('price');
$cost_clone_product = clone $build_stocks;
$totalCost = $cost_clone_product->sum('build_stock_products.cost');
// $totalCost = $totalCost - $totalOriginalWage;
// $totalCost = $totalCost;
if($check_fixed_price == 1){
$totalPrice = $totalPriceFixed;
$totalCost = $totalCostFixed;
}elseif($check_fixed_price == 2){
$totalPrice = $totalPriceNotFix;
// $totalCost = $totalCostNotFix - $totalOriginalWage;
$totalCost = $totalCostNotFix;
}
// dd($totalPriceFixed , $totalPriceNotFix);
$pig_clone = clone $build_stocks;
if($category->name == 'ផលិតផលបន្ថែម' || $category->name == 'Other Stock' || $category->name == 'Extra Stock'){
$pig_price = $pig_clone->select(DB::raw('sum(build_stock_products.price*build_stock_products.qty) as totalPricePig'))->where('product_category_id' , $category->id)->first();
$totalPrice = $totalPrice + ($pig_price->totalPricePig);
}
}
$build_stocks = $build_stocks->orderBy('build_stock_products.id' , 'desc')->select('build_stock_products.*')->paginate($paginate);
return view('build-stock-products.index' , compact('build_stocks' , 'children' , 'date' , 'paginate' , 'category_id' , 'id' , 'category'
, 'paginate' ,'totalCost','totalWage','totalOriginalWage','totalQty','totalPrice','totalGoldWeight' , 'totalWeight' , 'platinum_category_id' , 'platinumCategories' , 'check_fixed_price'));
}
/**
* 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 show(Request $request,string $id)
{
$category_id = $request->get('category_id');
$category = ProductCategory::find($id);
$platinumCategories = ProductCategory::where('parent_id' , $id)->get();
$paginate = $request->get('paginate')??25;
$date = $request->get('date');
$gold=ProductCategory::whereIn('name',['មាស','Gold','ทอง'])->first();
$platinum_category_id = $request->get('platinum_category');
$check_fixed_price = $request->get('check_fixed_price');
if(!$date){
$now = Carbon::now();
$date = $now->format('m/d/Y');
}
$dates = date('Y-m-d' , strtotime($date))??date('Y-m-d');
$build_stocks = BuildStockProduct::join('product_categories', 'product_categories.id', '=', 'build_stock_products.product_category_id')->where('build_stock_products.is_active' , true)->where('build_stock_products.qty' , '>' , 0)->where('build_stock_products.for_sale' , '>' , 1)
->whereBetween('build_stock_products.created_at' , [$dates . ' 00:00:00' , $dates . ' 23:59:59'])->whereIn('build_stock_products.product_category_id' , $category->IdvsAllSubCategories());
if($platinum_category_id){
$build_stocks = $build_stocks->where('build_stock_products.product_category_id' , $platinum_category_id);
}
if($check_fixed_price == 1){
$build_stocks = $build_stocks->where('build_stock_products.fixed_price' , true);
}elseif($check_fixed_price == 2){
$build_stocks = $build_stocks->where('build_stock_products.fixed_price' , false);
}
$search = $request->get('search');
if($search){
$build_stocks = $build_stocks->where('build_stock_products.part_number' , $search);
}
$products1 = Clone $build_stocks;
$product11= Clone $build_stocks;
$totalCost = $products1->sum('build_stock_products.cost');
$products2 = Clone $build_stocks;
$totalWage = $products2->sum('build_stock_products.wages');
$product3 = Clone $build_stocks;
$totalOriginalWage = $product3->sum('build_stock_products.original_wages');
$product4 = Clone $build_stocks;
$totalQty = $product4->sum('build_stock_products.qty');
$product7 = Clone $build_stocks;
$totalGoldWeight = $product7->select(DB::raw('build_stock_products.weight, (build_stock_products.weight*product_categories.purity_level) as totalWeight'))->pluck('totalWeight'); //NOT DONE
$totalGoldWeight = array_sum(($totalGoldWeight->all()));
$product8 = Clone $build_stocks;
$totalWeight = $product8->select(DB::raw('build_stock_products.weight as totalWeight'))->pluck('totalWeight'); //NOT DONE
$totalWeight = array_sum(($totalWeight->all()));
$product5 = Clone $build_stocks;
$product51 = Clone $build_stocks;
$children = $category->children->where('name' , 'មាសដុំ')->first();
if($category->fixed_price){
$totalPrice = $product5->sum('price')+ BuildStockProductAttribute::whereIn('build_stock_product_id',$product51->pluck('build_stock_products.id'))->sum('price');
// dd($totalCost - $totalOriginalWage);
}
else{
$children_product = clone $build_stocks;
if($children){
$children_weight = $children_product->where('product_category_id' , $children->id)->sum('build_stock_products.weight');
$totalGoldWeight = $totalGoldWeight + $children_weight;
}
$product_fixed_clone = clone $build_stocks;
$cost_fixed_clone = clone $build_stocks;
$cost_notFix_clone = clone $build_stocks;
//Total Cost
$totalCostNotFix = $cost_notFix_clone->where('build_stock_products.fixed_price' , false)->sum('build_stock_products.cost');
// $totalCostNotFix = $cost_notFix_clone->where('products.fixed_price' , false)->sum('products.cost');
// $totalCostFixed = $cost_fixed_clone->where('products.fixed_price' , true)->sum('products.cost');
$totalCostFixed = $cost_fixed_clone->where('build_stock_products.fixed_price' , true)->sum('build_stock_products.cost');
// dd($totalCostNotFix , $totalCostFixed , $totalCost);
//Total Price
$totalPriceNotFix = ($totalGoldWeight*$gold->selling_to_usd_exchange_rate) + BuildStockProductAttribute::whereIn('build_stock_product_id',$product51->where('build_stock_products.fixed_price' , false)->pluck('build_stock_products.id'))->sum('price');
$totalPriceFixed = $product_fixed_clone->where('build_stock_products.fixed_price' , true)->sum('price');
$totalPrice = ($totalGoldWeight*$gold->selling_to_usd_exchange_rate) + BuildStockProductAttribute::whereIn('build_stock_product_id',$product51->pluck('build_stock_products.id'))->sum('price');
$cost_clone_product = clone $build_stocks;
$totalCost = $cost_clone_product->sum('build_stock_products.cost');
// $totalCost = $totalCost - $totalOriginalWage;
// $totalCost = $totalCost;
if($check_fixed_price == 1){
$totalPrice = $totalPriceFixed;
$totalCost = $totalCostFixed;
}elseif($check_fixed_price == 2){
$totalPrice = $totalPriceNotFix;
// $totalCost = $totalCostNotFix - $totalOriginalWage;
$totalCost = $totalCostNotFix;
}
// dd($totalPriceFixed , $totalPriceNotFix);
$pig_clone = clone $build_stocks;
if($category->name == 'ផលិតផលបន្ថែម' || $category->name == 'Other Stock' || $category->name == 'Extra Stock'){
$pig_price = $pig_clone->select(DB::raw('sum(build_stock_products.price*build_stock_products.qty) as totalPricePig'))->where('product_category_id' , $category->id)->first();
$totalPrice = $totalPrice + ($pig_price->totalPricePig);
}
}
$build_stocks = $build_stocks->orderBy('build_stock_products.id' , 'desc')->select('build_stock_products.*')->get();
return view('build-stock-products.show' , compact('build_stocks' , 'children' , 'date' , 'paginate' , 'category_id' , 'id' , 'category'
, 'paginate' ,'totalCost','totalWage','totalOriginalWage','totalQty','totalPrice','totalGoldWeight' , 'totalWeight'));
// $date = $request->get('date');
// $dates = date('Y-m-d' , strtotime($date));
// $build_stocks = BuildStockProduct::whereBetween('created_at' , [$dates . ' 00:00:00' , $dates . ' 23:59:59'])->where('product_category_id' , $id)->get();
// return view('build-stock-products.show' , compact('build_stocks' , 'date' , '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)
{
//
}
// public function setProductCost(){
// $qtyHistories = QtyHistory::orderBy('id','desc')->get();
// foreach($qtyHistories as $index=>$qtyHistory){
// $product = $qtyHistory->product;
// if($product && $product->for_sale==0){
// if($qtyHistory->product_cost==0 ||$qtyHistory->product_cost==null){
// $rate = $product->productCategory->price(null, null, $qtyHistory->created_at);
// if($qtyHistory->weight!=0 && $qtyHistory->weight!=null && $rate){
// $qtyHistory->product_cost = $qtyHistory->weight * $rate;
// $qtyHistory->save();
// }
// }
// }
// }
// dd('done');
// }
}