|
@@ -2,18 +2,11 @@
|
|
|
|
|
|
namespace App\Service;
|
|
|
|
|
|
-use App\Model\BasicType;
|
|
|
use App\Model\Depart;
|
|
|
use App\Model\Employee;
|
|
|
-use App\Model\ReturnExchangeOrder;
|
|
|
-use App\Model\ReturnExchangeOrderProductInfo;
|
|
|
-use App\Model\ReturnExchangeOrderRange;
|
|
|
-use App\Model\SalesOrder;
|
|
|
-use App\Model\SalesOrderProductInfo;
|
|
|
use App\Model\SportsBag;
|
|
|
use App\Model\SportsBagProductInfo;
|
|
|
use App\Model\SportsBagRange;
|
|
|
-use App\Model\Storehouse;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
class SportsBagService extends Service
|
|
@@ -30,6 +23,7 @@ class SportsBagService extends Service
|
|
|
$material_model->number = $data['number'];
|
|
|
$material_model->start_time = $data['start_time'] ?? 0;
|
|
|
$material_model->end_time = $data['end_time'] ?? 0;
|
|
|
+ $material_model->total_amount = $data['total_amount'] ?? 0;
|
|
|
$material_model->save();
|
|
|
$time = time();
|
|
|
|
|
@@ -37,18 +31,22 @@ class SportsBagService extends Service
|
|
|
->where('sports_bag_id',$data['id'])
|
|
|
->update(['del_time' => $time]);
|
|
|
if(!empty($data['product'])){
|
|
|
+ $map = (new ProductService())->getProductDetail(array_column($data['product'],'product_id'));
|
|
|
$sub = [];
|
|
|
foreach ($data['product'] as $value){
|
|
|
+ $tmp = $map[$value['product_id']] ?? [];
|
|
|
$sub[] = [
|
|
|
'sports_bag_id' => $material_model->id,
|
|
|
'product_id' => $value['product_id'],
|
|
|
'number' => $value['number'],
|
|
|
'mark' => $value['mark'] ?? '',
|
|
|
'cost' => $value['cost'] ?? 0,
|
|
|
- 'retail_price' => $value['retail_price'] ?? 0,
|
|
|
+ 'retail_price' => $tmp['retail_price'] ?? 0,
|
|
|
'crt_time' => $time,
|
|
|
'basic_type_id' => $value['basic_type_id'],
|
|
|
'price' => $value['price'],
|
|
|
+ 'activity_price' => $value['activity_price'],
|
|
|
+ 'activity_amount' => $value['activity_amount'],
|
|
|
];
|
|
|
}
|
|
|
SportsBagProductInfo::insert($sub);
|
|
@@ -99,7 +97,7 @@ class SportsBagService extends Service
|
|
|
|
|
|
try{
|
|
|
DB::beginTransaction();
|
|
|
- $material_model = new ReturnExchangeOrder();
|
|
|
+ $material_model = new SportsBag();
|
|
|
$material_model->title = $data['title'];
|
|
|
$material_model->mark = $data['mark'];
|
|
|
$material_model->number = $data['number'];
|
|
@@ -108,22 +106,27 @@ class SportsBagService extends Service
|
|
|
$material_model->crt_id = $user['id'];
|
|
|
$material_model->depart_id = $data['depart_id'] ?? 0;
|
|
|
$material_model->top_depart_id = $data['top_depart_id'] ?? 0;
|
|
|
+ $material_model->total_amount = $data['total_amount'] ?? 0;
|
|
|
$material_model->save();
|
|
|
$time = time();
|
|
|
|
|
|
if(!empty($data['product'])){
|
|
|
+ $map = (new ProductService())->getProductDetail(array_column($data['product'],'product_id'));
|
|
|
$sub = [];
|
|
|
foreach ($data['product'] as $value){
|
|
|
+ $tmp = $map[$value['product_id']] ?? [];
|
|
|
$sub[] = [
|
|
|
'sports_bag_id' => $material_model->id,
|
|
|
'product_id' => $value['product_id'],
|
|
|
'number' => $value['number'],
|
|
|
'mark' => $value['mark'] ?? '',
|
|
|
'cost' => $value['cost'] ?? 0,
|
|
|
- 'retail_price' => $value['retail_price'] ?? 0,
|
|
|
+ 'retail_price' => $tmp['retail_price'] ?? 0,
|
|
|
'crt_time' => $time,
|
|
|
'basic_type_id' => $value['basic_type_id'],
|
|
|
'price' => $value['price'],
|
|
|
+ 'activity_price' => $value['activity_price'],
|
|
|
+ 'activity_amount' => $value['activity_amount'],
|
|
|
];
|
|
|
}
|
|
|
SportsBagProductInfo::insert($sub);
|
|
@@ -224,8 +227,8 @@ class SportsBagService extends Service
|
|
|
|
|
|
public function del($data,$user){
|
|
|
if($this->isEmpty($data,'id')) return [false,'请选择数据!'];
|
|
|
- $order = ReturnExchangeOrder::where('del_time',0)->where('id',$data['id'])->first();
|
|
|
- if(empty($order)) return [false,'活动单不存在或已被删除'];
|
|
|
+ $order = SportsBag::where('del_time',0)->where('id',$data['id'])->first();
|
|
|
+ if(empty($order)) return [false,'活动包不存在或已被删除'];
|
|
|
|
|
|
try{
|
|
|
DB::beginTransaction();
|
|
@@ -251,13 +254,20 @@ class SportsBagService extends Service
|
|
|
public function getList($data,$user){
|
|
|
$model = new SportsBag(['userData' => $user,'search' => $data]);
|
|
|
$model = $model->where('del_time',0)
|
|
|
- ->select('id','title','number','start_time','end_time','crt_time','crt_id','mark')
|
|
|
+ ->select('id','title','number','start_time','end_time','crt_time','crt_id','mark','total_amount')
|
|
|
->orderby('id', 'desc');
|
|
|
|
|
|
+ if(isset($data['valid'])) {
|
|
|
+ //获取有效时间内的活动包
|
|
|
+ $time = time();
|
|
|
+ $model->where('start_time','<=',$time);
|
|
|
+ $model->where('end_time','>=',$time);
|
|
|
+ }
|
|
|
if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
|
|
|
if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) {
|
|
|
$return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
|
|
|
- $model->whereBetween('crt_time',[$return[0],$return[1]]);
|
|
|
+ $model->where('crt_time','>=',$return[0]);
|
|
|
+ $model->where('crt_time','<=',$return[1]);
|
|
|
}
|
|
|
if(! empty($data['sports_bag_time'][0]) && ! empty($data['sports_bag_time'][1])) {
|
|
|
$return = $this->changeDateToTimeStampAboutRange($data['sports_bag_time']);
|
|
@@ -291,13 +301,16 @@ class SportsBagService extends Service
|
|
|
|
|
|
public function orderRule(&$data, $user, $is_check = true){
|
|
|
if(empty($data['title'])) return [false,'请填写活动名称'];
|
|
|
- if($this->isEmpty($data,'sales_order_id')) return [false,'合同不能为空!'];
|
|
|
if(empty($data['sports_bag_time'][0]) || empty($data['sports_bag_time'][1])) return [false,'请填写活动时间范围'];
|
|
|
$data['start_time'] = $this->changeDateToDateMin($data['sports_bag_time'][0]);
|
|
|
$data['end_time'] = $this->changeDateToDateMin($data['sports_bag_time'][1]);
|
|
|
if(empty($data['number'])) return [false,'必选产品种数不能为空'];
|
|
|
$res = $this->checkNumber($data['number']);
|
|
|
- if(! $res) return [false,'请输入正确的换货产品数量'];
|
|
|
+ if(! $res) return [false,'请输入正确的必选产品种数'];
|
|
|
+
|
|
|
+ if(empty($data['total_amount'])) return [false,'活动包总金额不能为空'];
|
|
|
+ $res = $this->checkNumber($data['total_amount']);
|
|
|
+ if(! $res) return [false,'活动包总金额请输入不超过两位小数并且大于0的数值'];
|
|
|
|
|
|
//所属部门 以及 顶级部门
|
|
|
if(empty($data['depart_id'])) $data['depart_id'] = $this->getDepart($user);
|