95 lines
2.8 KiB
PHP
95 lines
2.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api\V2\Seller;
|
|
|
|
use Illuminate\Http\Request;
|
|
use CoreComponentRepository;
|
|
use App\Models\Category;
|
|
use App\Models\Product;
|
|
use App\Models\ProductTranslation;
|
|
use App\Services\WholesaleService;
|
|
use App\Services\ProductTaxService;
|
|
use App\Services\ProductFlashDealService;
|
|
use App\Http\Requests\WholesaleProductRequest;
|
|
use App\Http\Resources\V2\Seller\ProductCollection;
|
|
use App\Http\Resources\V2\Seller\WholesaleProductDetailsCollection;
|
|
use Auth;
|
|
|
|
class WholesaleProductController extends Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
}
|
|
|
|
|
|
// Wholesale Products list in Seller panel
|
|
public function wholesale_products()
|
|
{
|
|
|
|
$products = Product::where('wholesale_product', 1)->where('user_id', auth()->user()->id)->orderBy('created_at', 'desc');
|
|
|
|
$products = $products->paginate(15);
|
|
|
|
return new ProductCollection($products);
|
|
}
|
|
|
|
public function product_store(WholesaleProductRequest $request)
|
|
{
|
|
if (addon_is_activated('seller_subscription')) {
|
|
if (
|
|
(auth()->user()->shop->seller_package == null) ||
|
|
(auth()->user()->shop->seller_package->product_upload_limit <= auth()->user()->products()->count())
|
|
) {
|
|
return $this->failed(translate('Upload limit has been reached. Please upgrade your package.'));
|
|
}
|
|
}
|
|
|
|
$request->added_by= "seller";
|
|
|
|
$product = (new WholesaleService)->store($request->except([
|
|
'_token', 'tax_id', 'tax', 'tax_type', 'flash_deal_id', 'flash_discount', 'flash_discount_type'
|
|
]));
|
|
$request->merge(['product_id' => $product->id]);
|
|
//VAT & Tax
|
|
if ($request->tax_id) {
|
|
(new productTaxService)->store($request->only([
|
|
'tax_id', 'tax', 'tax_type', 'product_id'
|
|
]));
|
|
}
|
|
|
|
// Product Translations
|
|
$request->merge(['lang' => env('DEFAULT_LANGUAGE')]);
|
|
ProductTranslation::create($request->only([
|
|
'lang', 'name', 'unit', 'description', 'product_id'
|
|
]));
|
|
|
|
return $this->success("Product successfully created.");
|
|
}
|
|
|
|
|
|
public function product_edit(Request $request, $id)
|
|
{
|
|
$product = Product::findOrFail($id);
|
|
$product->lang = $request->lang == null ? env("DEFAULT_LANGUAGE") : $request->lang;
|
|
return new WholesaleProductDetailsCollection($product);
|
|
}
|
|
|
|
|
|
|
|
|
|
public function product_update(WholesaleProductRequest $request, $id)
|
|
{
|
|
(new WholesaleService)->update($request, $id);
|
|
|
|
return $this->success(translate('Product has been updated successfully'));
|
|
}
|
|
|
|
|
|
|
|
public function product_destroy($id)
|
|
{
|
|
(new WholesaleService)->destroy($id);
|
|
return $this->success("Product successfully deleted.");
|
|
}
|
|
}
|