From 581f9508caf3a28030dc4560b17cdf880d20f10d Mon Sep 17 00:00:00 2001 From: panliang <1163816051@qq.com> Date: Fri, 11 Aug 2023 13:35:42 +0800 Subject: [PATCH] store product total delete --- .../Controllers/Store/ProductController.php | 75 +++++++++---------- app/Admin/Forms/OrderPackage.php | 11 ++- 2 files changed, 45 insertions(+), 41 deletions(-) diff --git a/app/Admin/Controllers/Store/ProductController.php b/app/Admin/Controllers/Store/ProductController.php index 3eccdf38..d3d75c40 100644 --- a/app/Admin/Controllers/Store/ProductController.php +++ b/app/Admin/Controllers/Store/ProductController.php @@ -56,20 +56,20 @@ class ProductController extends AdminController $grid->column('productSku.specs', '规格')->label(); $grid->column('productSku.sell_price', '销售价')->display(fn ($value) => bcdiv($value, 100, 2)); $grid->column('productSku.cost_price', '成本价')->display(fn ($value) => bcdiv($value, 100, 2)); - $grid->column('profit', '毛利')->display(function () { - $sell_price = data_get($this->productSku, 'sell_price'); - $cost_price = data_get($this->productSku, 'cost_price'); - return round(($sell_price - $cost_price) / 100, 2, PHP_ROUND_HALF_DOWN); - }); + // $grid->column('profit', '毛利')->display(function () { + // $sell_price = data_get($this->productSku, 'sell_price'); + // $cost_price = data_get($this->productSku, 'cost_price'); + // return round(($sell_price - $cost_price) / 100, 2, PHP_ROUND_HALF_DOWN); + // }); $grid->column('amount', '库存'); - $grid->column('sell', '总销售')->display(function () { - $sell_price = data_get($this->productSku, 'sell_price'); - return round($sell_price / 100 * $this->amount, 2, PHP_ROUND_HALF_DOWN); - }); - $grid->column('cost', '总成本')->display(function () { - $cost_price = data_get($this->productSku, 'cost_price'); - return round($cost_price / 100 * $this->amount, 2, PHP_ROUND_HALF_DOWN); - }); + // $grid->column('sell', '总销售')->display(function () { + // $sell_price = data_get($this->productSku, 'sell_price'); + // return round($sell_price / 100 * $this->amount, 2, PHP_ROUND_HALF_DOWN); + // }); + // $grid->column('cost', '总成本')->display(function () { + // $cost_price = data_get($this->productSku, 'cost_price'); + // return round($cost_price / 100 * $this->amount, 2, PHP_ROUND_HALF_DOWN); + // }); $grid->column('status', '状态')->switch(); $grid->paginate(10); @@ -92,33 +92,30 @@ class ProductController extends AdminController $tools->append(new \App\Admin\Actions\Store\DownloadProductTemplate()); }); - $grid->footer(function ($collection) use ($grid) { - $query = StoreProductSku::join('product_skus', 'product_skus.id', '=', 'store_product_skus.product_sku_id'); - $grid->model()->getQueries()->unique()->each(function ($value) use (&$query) { - if (in_array($value['method'], ['paginate', 'get', 'orderBy', 'orderByDesc'], true)) { - return; - } + // $grid->footer(function ($collection) use ($grid) { + // $query = StoreProductSku::join('product_skus', 'product_skus.id', '=', 'store_product_skus.product_sku_id'); + // $grid->model()->getQueries()->unique()->each(function ($value) use (&$query) { + // if (in_array($value['method'], ['paginate', 'get', 'orderBy', 'orderByDesc'], true)) { + // return; + // } - $query = call_user_func_array([$query, $value['method']], $value['arguments'] ?? []); - }); - $count = $query->count(); - $stock = round($query->sum('store_product_skus.amount'), 2, PHP_ROUND_HALF_DOWN); - $cost = round($query->sum(DB::raw('product_skus.cost_price * amount')) / 100, 2, PHP_ROUND_HALF_DOWN); - $sell = round($query->sum(DB::raw('product_skus.sell_price * amount')) / 100, 2, PHP_ROUND_HALF_DOWN); - return << - - - 统计 - 总数: $count - 库存: $stock - 总销售: $sell - 总成本: $cost - - - - HTML; - }); + // $query = call_user_func_array([$query, $value['method']], $value['arguments'] ?? []); + // }); + // $count = $query->count(); + // return << + // + // + // 统计 + // 总数: $count + // + // + // + // + // + // + // HTML; + // }); return $grid; } diff --git a/app/Admin/Forms/OrderPackage.php b/app/Admin/Forms/OrderPackage.php index d12b9b6f..e4348fdf 100644 --- a/app/Admin/Forms/OrderPackage.php +++ b/app/Admin/Forms/OrderPackage.php @@ -11,6 +11,8 @@ use Dcat\Admin\Widgets\Form; use Illuminate\Support\Facades\DB; use Throwable; use Dcat\Admin\Admin; +use App\Models\Store\ProductSku as StoreProductSku; +use App\Models\Store\Store; class OrderPackage extends Form implements LazyRenderable { @@ -45,10 +47,11 @@ class OrderPackage extends Form implements LazyRenderable $orderPackageService = new OrderPackageService(); $orderPackageService->createPackage($order, $input); // 店铺发货, 添加出库记录 - if ($order->store) { + $store_id = data_get($input, 'store_id', $order->store_id); + if ($store_id) { $packageProducts = $input['packages']; $operator = Admin::user(); - $store = $order->store; + $store = Store::findOrFail($store_id); $tag = Tag::firstOrCreate([ 'type' => Tag::TYPE_STORE_STOCK, 'name' => '发货' @@ -114,6 +117,10 @@ class OrderPackage extends Form implements LazyRenderable '提货' => '提货', ])->default('韵达快递')->required(); $this->text('shipping_number')->required(); + + $list = StoreProductSku::with(['store'])->whereIn('product_sku_id', $order->products->pluck('sku_id'))->get(); + $stores = $list->pluck('store'); + $this->select('store_id', '发货门店')->options($stores->pluck('title', 'id'))->value($order->store_id); $products = $order->products->filter(function ($items) { if ($items->after_sale_state != 1) { return true;