Finish mzl_dev
This commit is contained in:
@@ -46,4 +46,13 @@ class StockOrderAccounts extends Model
|
|||||||
* 不允许自动填充模型字段
|
* 不允许自动填充模型字段
|
||||||
*/
|
*/
|
||||||
protected $guarded = [];
|
protected $guarded = [];
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联主订单
|
||||||
|
*/
|
||||||
|
public function order()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(StockOrders::class, 'order_id', 'id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -46,4 +46,13 @@ class StockOrderItemOptions extends Model
|
|||||||
* 不允许自动填充模型字段
|
* 不允许自动填充模型字段
|
||||||
*/
|
*/
|
||||||
protected $guarded = [];
|
protected $guarded = [];
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联订单项
|
||||||
|
*/
|
||||||
|
public function item()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(StockOrderItems::class, 'order_item_id', 'id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -81,4 +81,31 @@ class StockOrderItems extends Model
|
|||||||
public function getPortMiscFeeAmountAttribute() { return $this->moneyLatest('port_misc_fee')?->amount; }
|
public function getPortMiscFeeAmountAttribute() { return $this->moneyLatest('port_misc_fee')?->amount; }
|
||||||
public function getRetrofitFeeAmountAttribute() { return $this->moneyLatest('retrofit_fee')?->amount; }
|
public function getRetrofitFeeAmountAttribute() { return $this->moneyLatest('retrofit_fee')?->amount; }
|
||||||
public function getTotalPriceAmountAttribute() { return $this->moneyLatest('total_price')?->amount; }
|
public function getTotalPriceAmountAttribute() { return $this->moneyLatest('total_price')?->amount; }
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联主订单
|
||||||
|
*/
|
||||||
|
public function order()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(StockOrders::class, 'order_id', 'id');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联订单项选项
|
||||||
|
*/
|
||||||
|
public function options()
|
||||||
|
{
|
||||||
|
return $this->hasMany(StockOrderItemOptions::class, 'order_item_id', 'id');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联货币价值信息(一个订单项可以有多个货币价值记录)
|
||||||
|
*/
|
||||||
|
public function moneyValues()
|
||||||
|
{
|
||||||
|
return $this->hasMany(VehMoneyValue::class, 'object_id', 'id')
|
||||||
|
->where('object_scene', 'stock_order_items'); // 场景标识区分不同对象类型
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -56,4 +56,29 @@ class StockOrders extends Model
|
|||||||
* 不允许自动填充模型字段
|
* 不允许自动填充模型字段
|
||||||
*/
|
*/
|
||||||
protected $guarded = [];
|
protected $guarded = [];
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联订单项
|
||||||
|
*/
|
||||||
|
public function items()
|
||||||
|
{
|
||||||
|
return $this->hasMany(StockOrderItems::class, 'order_id', 'id');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联订单账户信息
|
||||||
|
*/
|
||||||
|
public function accounts()
|
||||||
|
{
|
||||||
|
return $this->hasMany(StockOrderAccounts::class, 'order_id', 'id');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联货币价值信息(一个订单可以有多个货币价值记录)
|
||||||
|
*/
|
||||||
|
public function moneyValues()
|
||||||
|
{
|
||||||
|
return $this->hasMany(VehMoneyValue::class, 'object_id', 'id')->where('object_scene', 'stock_orders');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -59,4 +59,29 @@ class VehMoneyValue extends Model
|
|||||||
if ($this->exchange_rate === null) return null;
|
if ($this->exchange_rate === null) return null;
|
||||||
return (string) bcmul((string)$this->amount, (string)$this->exchange_rate, $scale);
|
return (string) bcmul((string)$this->amount, (string)$this->exchange_rate, $scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联订单
|
||||||
|
*/
|
||||||
|
public function order()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(StockOrders::class, 'object_id', 'id');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联订单项(一个货币价值记录可能关联到订单项)
|
||||||
|
*/
|
||||||
|
public function orderItem()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(StockOrderItems::class, 'object_id', 'id');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 限定查询特定对象类型的货币价值记录
|
||||||
|
*/
|
||||||
|
public function scopeOfScene($query, $scene)
|
||||||
|
{
|
||||||
|
return $query->where('object_scene', $scene);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -11,6 +11,7 @@ use app\common\model\StockOrders;
|
|||||||
use support\Request;
|
use support\Request;
|
||||||
use app\common\model\User;
|
use app\common\model\User;
|
||||||
use support\exception\BusinessException;
|
use support\exception\BusinessException;
|
||||||
|
use support\Db;
|
||||||
|
|
||||||
class StockOrdersService
|
class StockOrdersService
|
||||||
{
|
{
|
||||||
@@ -48,6 +49,12 @@ class StockOrdersService
|
|||||||
break;
|
break;
|
||||||
case 'show':
|
case 'show':
|
||||||
$config['where']['id'] = $p['id'];
|
$config['where']['id'] = $p['id'];
|
||||||
|
|
||||||
|
$config['with'][] = 'items';
|
||||||
|
$config['with'][] = 'items.options';
|
||||||
|
$config['with'][] = 'items.moneyValues';
|
||||||
|
$config['with'][] = 'accounts';
|
||||||
|
$config['with'][] = 'moneyValues';
|
||||||
break;
|
break;
|
||||||
case 'store':
|
case 'store':
|
||||||
break;
|
break;
|
||||||
@@ -65,6 +72,8 @@ class StockOrdersService
|
|||||||
|
|
||||||
public function serviceStore(Request $request, array $data = [])
|
public function serviceStore(Request $request, array $data = [])
|
||||||
{
|
{
|
||||||
|
// 关联表较多,增加事务处理
|
||||||
|
return Db::transaction(function () use ($request, $data) {
|
||||||
$data = $this->preProcess('Store', $data, $request);
|
$data = $this->preProcess('Store', $data, $request);
|
||||||
$dl = $this->getDataLimitFromRequest($request);
|
$dl = $this->getDataLimitFromRequest($request);
|
||||||
$created = $this->logicCreate($data, $dl); // 表1
|
$created = $this->logicCreate($data, $dl); // 表1
|
||||||
@@ -75,28 +84,35 @@ class StockOrdersService
|
|||||||
$item = StockOrderItems::create($veh); // 表2
|
$item = StockOrderItems::create($veh); // 表2
|
||||||
|
|
||||||
// 金额 // 表3
|
// 金额 // 表3
|
||||||
$item->addMoney('official_price', $veh['currency'], $veh['amount'], $veh['rate'], '官方指导价');
|
$item->addMoney('official_price', $veh['official_price']['currency'], $veh['official_price']['amount'], $veh['official_price']['rate'], '官方指导价');
|
||||||
$item->addMoney('discount_price', $veh['currency'], $veh['amount'], $veh['rate'], '优惠价');
|
$item->addMoney('discount_price', $veh['discount_price']['currency'], $veh['discount_price']['amount'], $veh['discount_price']['rate'], '优惠价');
|
||||||
$item->addMoney('unit_price', $veh['currency'], $veh['amount'], $veh['rate'], '单价');
|
$item->addMoney('unit_price', $veh['unit_price']['currency'], $veh['unit_price']['amount'], $veh['unit_price']['rate'], '单价');
|
||||||
$item->addMoney('total_price', $veh['currency'], $veh['amount'], $veh['rate'], '总价');
|
$item->addMoney('total_price', $veh['total_price']['currency'], $veh['total_price']['amount'], $veh['total_price']['rate'], '总价');
|
||||||
$item->addMoney('handling_fee', $veh['currency'], $veh['amount'], $veh['rate'], '手续费');
|
$item->addMoney('handling_fee', $veh['handling_fee']['currency'], $veh['handling_fee']['amount'], $veh['handling_fee']['rate'], '手续费');
|
||||||
$item->addMoney('fob_transport_fee', $veh['currency'], $veh['amount'], $veh['rate'], 'FOB运输费');
|
$item->addMoney('fob_transport_fee', $veh['fob_transport_fee']['currency'], $veh['fob_transport_fee']['amount'], $veh['fob_transport_fee']['rate'], 'FOB运输费');
|
||||||
$item->addMoney('port_misc_fee', $veh['currency'], $veh['amount'], $veh['rate'], '港杂');
|
$item->addMoney('port_misc_fee', $veh['port_misc_fee']['currency'], $veh['port_misc_fee']['amount'], $veh['port_misc_fee']['rate'], '港杂');
|
||||||
$item->addMoney('retrofit_fee', $veh['currency'], $veh['amount'], $veh['rate'], '改装费');
|
$item->addMoney('retrofit_fee', $veh['retrofit_fee']['currency'], $veh['retrofit_fee']['amount'], $veh['retrofit_fee']['rate'], '改装费');
|
||||||
|
|
||||||
// 改装
|
// 改装
|
||||||
foreach ($data['veh_list']['modify_list'] as $modify) {
|
if (count($veh['modify_list']) > 0) {
|
||||||
|
foreach ($veh['modify_list'] as $modify) {
|
||||||
$modify['order_item_id'] = $item->id;
|
$modify['order_item_id'] = $item->id;
|
||||||
StockOrderItemOptions::create($modify); // 表4
|
StockOrderItemOptions::create($modify); // 表4
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 账户
|
// 账户
|
||||||
|
if (count($data['account_list']) > 0) {
|
||||||
foreach ($data['account_list'] as $account) {
|
foreach ($data['account_list'] as $account) {
|
||||||
$account['order_id'] = $created->id;
|
$account['order_id'] = $created->id;
|
||||||
|
$account['remit_date'] = strtotime($account['remit_date']);
|
||||||
StockOrderAccounts::create($account); // 表5
|
StockOrderAccounts::create($account); // 表5
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $this->postProcess('Store', $created);
|
return $this->postProcess('Store', $created);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public function beforeServiceStore($data, Request $request)
|
public function beforeServiceStore($data, Request $request)
|
||||||
@@ -110,10 +126,6 @@ class StockOrdersService
|
|||||||
$data['salesperson_id'] = $userId;
|
$data['salesperson_id'] = $userId;
|
||||||
$data['salesperson_snapshot'] = User::where('id', $userId)->value('name') ?? '';
|
$data['salesperson_snapshot'] = User::where('id', $userId)->value('name') ?? '';
|
||||||
|
|
||||||
var_dump($data);
|
|
||||||
|
|
||||||
throw new BusinessException('测试异常');
|
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -140,6 +140,8 @@ class VehVehicleSkuService
|
|||||||
|
|
||||||
public function beforeServiceUpdate($data, Request $request)
|
public function beforeServiceUpdate($data, Request $request)
|
||||||
{
|
{
|
||||||
|
unset($data['created_at']);
|
||||||
|
unset($data['updated_at']);
|
||||||
// $data = $this->backfill($data);
|
// $data = $this->backfill($data);
|
||||||
if (empty($data['model_code'])) {
|
if (empty($data['model_code'])) {
|
||||||
$data['model_code'] = ModelNaming::buildModelCode($data);
|
$data['model_code'] = ModelNaming::buildModelCode($data);
|
||||||
|
|||||||
Reference in New Issue
Block a user