85 lines
3.3 KiB
PHP
85 lines
3.3 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* Author:
|
|
* Date: 2017/2/22
|
|
* Time: 下午18:16
|
|
*/
|
|
namespace app\backend\modules\goods\models;
|
|
|
|
|
|
use app\backend\modules\goods\observers\GoodsOptionObserver;
|
|
use app\framework\Database\Eloquent\Builder;
|
|
|
|
class GoodsOption extends \app\common\models\GoodsOption
|
|
{
|
|
static protected $needLog = true;
|
|
|
|
protected $appends = ['withhold_stock'];
|
|
|
|
public static function saveOption($optionPost, $goods_id, $spec_items, $uniacid)
|
|
{
|
|
$option_ids = $optionPost['option_ids'];
|
|
$len = count($option_ids);
|
|
$optionids = [];
|
|
for ($k = 0; $k < $len; $k++) {
|
|
$ids = $option_ids[$k];
|
|
$get_option_id = $optionPost['option_id_' . $ids][0];
|
|
$idsarr = explode("_", $ids);
|
|
$newids = array();
|
|
foreach ($idsarr as $key => $ida) {
|
|
foreach ($spec_items as $it) {
|
|
if ($it['get_id'] == $ida) {
|
|
$newids[] = $it['id'];
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
$newids = implode("_", $newids);
|
|
$goodsOption = [
|
|
"uniacid" => $uniacid,
|
|
"title" => $optionPost['option_title_' . $ids][0],
|
|
"product_price" => floatVal($optionPost['option_productprice_' . $ids][0]),
|
|
"cost_price" => floatVal($optionPost['option_costprice_' . $ids][0]),
|
|
"market_price" => floatVal($optionPost['option_marketprice_' . $ids][0]),
|
|
"stock" => $optionPost['option_stock_' . $ids][0] ? $optionPost['option_stock_' . $ids][0] : 0,
|
|
"weight" => floatVal($optionPost['option_weight_' . $ids][0]),
|
|
"volume" => floatval($optionPost['option_volume_' . $ids][0]),
|
|
"goods_sn" => $optionPost['option_goodssn_' . $ids][0],
|
|
"product_sn" => $optionPost['option_productsn_' . $ids][0],
|
|
"goods_id" => $goods_id,
|
|
"specs" => $newids,
|
|
//'virtual' => $data['type'] == 3 ? $_GPC['option_virtual_' . $ids][0] : 0,
|
|
'virtual' => 0,
|
|
//"red_price" => $optionPost['option_redprice_' . $ids][0],
|
|
"red_price" => '',
|
|
'thumb' => $optionPost['option_thumb_' . $ids][0],
|
|
];
|
|
|
|
$this_stock = $optionPost['option_stock_' . $ids][0];
|
|
if(isset($this_stock)){
|
|
$goodsOption['stock'] = $this_stock;
|
|
}
|
|
// if(isset($optionPost['option_stock_' . $ids][0])){
|
|
// $goodsOption['stock'] = $optionPost['option_stock_' . $ids][0];
|
|
// }
|
|
//$totalstocks += $a['stock'];
|
|
if (empty($get_option_id)) {
|
|
//dd($goodsOption);
|
|
$goodsOptionModel = static::create($goodsOption);
|
|
$option_id = $goodsOptionModel->id;
|
|
} else {
|
|
//exit;
|
|
static::updateOrCreate(['id' => $get_option_id], $goodsOption);
|
|
$option_id = $get_option_id;
|
|
}
|
|
$optionids[] = $option_id;
|
|
}
|
|
if (count($optionids) > 0) {
|
|
static::where('goods_id', '=', $goods_id)->whereNotIn('id', $optionids )->delete();
|
|
} else {
|
|
static::where('goods_id', '=', $goods_id)->delete();
|
|
}
|
|
}
|
|
}
|