鲜花2.0-导购成本价覆盖

This commit is contained in:
杨建炊 2024-08-15 11:23:29 +08:00
parent 2a36638d75
commit 0e78cc2d43
5 changed files with 27 additions and 10 deletions

View File

@ -76,7 +76,7 @@ class LossRecordController extends Controller
$lossRecords->external_sku_id = $allParams['external_sku_id'];
$lossRecords->num = $allParams['num'];
$lossRecords->cost = $allParams['cost'];
$lossRecords->date = $today;
$lossRecords->date = $allParams['date'] ?? $today;
$lossRecords->buyer_user_id = $allParams['buyer_user_id'] ?? ($buyerUserId ?? 0);
$lossRecords->buyer_name = $allParams['buyer_name'] ?? '';
$lossRecords->reason = $allParams['reason'] ?? '';
@ -134,7 +134,7 @@ class LossRecordController extends Controller
public function lossBatchStore(Request $request)
{
\Illuminate\Support\Facades\Log::info("test",(array)$request->all());
\Illuminate\Support\Facades\Log::info("test", (array)$request->all());
$validator = Validator::make($request->all(), [
'lossOrders' => 'required|array',
'lossOrders.*.external_sku_id' => 'required|string',

View File

@ -5,6 +5,7 @@ namespace App\Http\Controllers\Supplier;
use App\Events\BatchStockUpdateEvent;
use App\Http\Controllers\Controller;
use App\Http\Enum\ExcelKeyEnum;
use App\Http\Enum\TargetTypeEnum;
use App\Http\Resources\GoodsSkuResource;
use App\Http\Resources\RolesResource;
use App\Imports\PurchaseImport;
@ -98,7 +99,7 @@ class PurchaseRecordController extends Controller
}
$purchaseRecords->save();
$updateIds = GoodSkuService::computeSkuStock($goodsSku->toArray(), $allParams);
$updateIds = GoodSkuService::computeSkuStock($goodsSku->toArray(), $allParams,TargetTypeEnum::PURCHASE);
event(new BatchStockUpdateEvent($updateIds));
} else {
$this->res = [
@ -200,7 +201,7 @@ class PurchaseRecordController extends Controller
$purchaseRecords->expire_time = Carbon::now()->addDays($expireDay)->toDateTimeString();
$purchaseRecords->save();
$updateIds = GoodSkuService::computeSkuStock($goodsSkuItem, $v);
$updateIds = GoodSkuService::computeSkuStock($goodsSkuItem, $v,TargetTypeEnum::PURCHASE);
}
//如果是組合商品会触发重算逻辑

View File

@ -0,0 +1,13 @@
<?php
namespace App\Http\Enum;
class TargetTypeEnum
{
const PURCHASE = "purchase";
const LOSS = "loss";
}

View File

@ -3,6 +3,7 @@
namespace App\Imports;
use App\Events\BatchStockUpdateEvent;
use App\Http\Enum\TargetTypeEnum;
use App\Jobs\SyncCostToMiaoXuan;
use App\Models\DailyStockRecord;
use App\Models\GoodsSku;
@ -69,8 +70,8 @@ class PurchaseImport implements ToArray, SkipsEmptyRows
$purchaseRecords->num = $row[2];
$purchaseRecords->cost = $row[3];
$purchaseRecords->date = $today;
if(!empty($row[6])){
$purchaseRecords->date = DateTimeUtils::excelUploadDateToString($row[6],$today);
if (!empty($row[6])) {
$purchaseRecords->date = DateTimeUtils::excelUploadDateToString($row[6], $today);
}
$purchaseRecords->buyer_user_id = $buyerUserIdKeyByNameMap[$row[4]] ?? 0;
$purchaseRecords->buyer_name = $row[4] ?? '';
@ -79,7 +80,7 @@ class PurchaseImport implements ToArray, SkipsEmptyRows
$purchaseRecords->expire_time = Carbon::now()->addDays($expireDay)->toDateTimeString();
$purchaseRecords->save();
$updateIds += GoodSkuService::computeSkuStock($goodsSkuItem, ["num" => $row[2], 'cost' => $row[3]]);
$updateIds += GoodSkuService::computeSkuStock($goodsSkuItem, ["num" => $row[2], 'cost' => $row[3]], TargetTypeEnum::PURCHASE);
}
Log::info("采购导入内容:", $collection);
// 批量更新

View File

@ -3,6 +3,7 @@
namespace App\Services\GoodSku;
use App\Events\BatchStockUpdateEvent;
use App\Http\Enum\TargetTypeEnum;
use App\Models\BusinessOrderItem;
use App\Models\CombinationGood;
use App\Models\DailyStockRecord;
@ -112,7 +113,7 @@ class GoodSkuService
}
public static function computeSkuStock(array $goodsSkuItem, array $v)
public static function computeSkuStock(array $goodsSkuItem, array $v, $targetType = TargetTypeEnum::LOSS)
{
$updateIds = [];
Log::info("库存更新前完整商品信息", $goodsSkuItem);
@ -122,14 +123,15 @@ class GoodSkuService
$updateParam = [
'stock' => $goodsSkuItem['stock'] + $v['num'],
'sale_stock' => $goodsSkuItem['sale_stock'] + $v['num'],
'cost' => $v['cost'],
];
if ($targetType == TargetTypeEnum::PURCHASE) {
$updateParam['cost'] = $v['cost'];
}
GoodsSku::query()->where('external_sku_id', "=", $goodsSkuItem['external_sku_id'])
->update($updateParam);
$updateIds[] = $goodsSkuItem['id'];
$updateParams[] = $updateParam;
} else {
//组合商品 这里需要重新获取 减少更新丢失概率
$combinationGood = CombinationGood::query()->with('goodsSkuItem:id,stock,sale_stock')
->where('goods_sku_id', $goodsSkuItem['id'])->get();
foreach ($combinationGood as $item) {