|
@@ -117,26 +117,18 @@ class SalesOrderService extends Service
|
|
|
}
|
|
|
|
|
|
if(! empty($data['product'])){
|
|
|
- $pro = Product::whereIn('id',array_column($data['product'],'product_id'))
|
|
|
- ->select('bar_code','code','cost','size','title','id','retail_price','unit','top_depart_id')
|
|
|
- ->get()->toArray();
|
|
|
- $pro = array_column($pro,null,'id');
|
|
|
$insert = [];
|
|
|
foreach ($data['product'] as $value){
|
|
|
- $tmp = $pro[$value['product_id']] ?? [];
|
|
|
$insert[] = [
|
|
|
'sales_order_id' => $model->id,
|
|
|
'product_id' => $value['product_id'],
|
|
|
'number' => $value['number'],
|
|
|
- 'title' => $tmp['title'],
|
|
|
- 'code' => $tmp['code'] ?? '',
|
|
|
- 'size' => $tmp['size'] ?? '',
|
|
|
- 'unit' => $tmp['unit'] ?? 0,
|
|
|
- 'bar_code' => $tmp['bar_code'] ?? '',
|
|
|
- 'cost' => $tmp['cost'] ?? 0,
|
|
|
- 'retail_price' => $tmp['retail_price'] ?? 0,
|
|
|
+ 'cost' => $value['cost'] ?? 0,
|
|
|
+ 'retail_price' => $value['retail_price'] ?? 0,
|
|
|
'mark' => $value['mark'] ?? '',
|
|
|
'crt_time' => $time,
|
|
|
+ 'basic_type_id' => $value['basic_type_id'],
|
|
|
+ 'price' => $value['price'],
|
|
|
];
|
|
|
}
|
|
|
SalesOrderProductInfo::insert($insert);
|
|
@@ -242,26 +234,18 @@ class SalesOrderService extends Service
|
|
|
}
|
|
|
|
|
|
if(! empty($data['product'])){
|
|
|
- $pro = Product::whereIn('id',array_column($data['product'],'product_id'))
|
|
|
- ->select('bar_code','code','cost','size','title','id','retail_price','unit','top_depart_id')
|
|
|
- ->get()->toArray();
|
|
|
- $pro = array_column($pro,null,'id');
|
|
|
$insert = [];
|
|
|
foreach ($data['product'] as $value){
|
|
|
- $tmp = $pro[$value['product_id']] ?? [];
|
|
|
$insert[] = [
|
|
|
'sales_order_id' => $model->id,
|
|
|
'product_id' => $value['product_id'],
|
|
|
'number' => $value['number'],
|
|
|
- 'title' => $tmp['title'],
|
|
|
- 'code' => $tmp['code'] ?? '',
|
|
|
- 'size' => $tmp['size'] ?? '',
|
|
|
- 'unit' => $tmp['unit'] ?? 0,
|
|
|
- 'bar_code' => $tmp['bar_code'] ?? '',
|
|
|
- 'cost' => $tmp['cost'] ?? 0,
|
|
|
- 'retail_price' => $tmp['retail_price'] ?? 0,
|
|
|
+ 'cost' => $value['cost'] ?? 0,
|
|
|
+ 'retail_price' => $value['retail_price'] ?? 0,
|
|
|
'mark' => $value['mark'] ?? '',
|
|
|
'crt_time' => $time,
|
|
|
+ 'basic_type_id' => $value['basic_type_id'],
|
|
|
+ 'price' => $value['price'],
|
|
|
];
|
|
|
}
|
|
|
SalesOrderProductInfo::insert($insert);
|
|
@@ -382,7 +366,16 @@ class SalesOrderService extends Service
|
|
|
$sales_p_info = SalesOrderProductInfo::where('del_time',0)
|
|
|
->where('sales_order_id',$sales['id'])
|
|
|
->get()->toArray();
|
|
|
+ $basic_price = BasicType::whereIn('id',array_unique(array_column($sales_p_info,'basic_type_id')))->pluck('title','id')->toArray();
|
|
|
+ $map = (new ProductService())->getProductDetail(array_column($sales_p_info,'product_id'));
|
|
|
foreach ($sales_p_info as $value){
|
|
|
+ $tmp = $map[$value['product_id']] ?? [];
|
|
|
+ $value['title'] = $tmp['title'] ?? "";
|
|
|
+ $value['code'] = $tmp['code'] ?? "";
|
|
|
+ $value['size'] = $tmp['size'] ?? "";
|
|
|
+ $value['unit'] = $tmp['unit'] ?? "";
|
|
|
+ $value['bar_code'] = $tmp['bar_code'] ?? "";
|
|
|
+ $value['basic_type_title'] = $basic_price[$value['basic_type_id']] ?? "";
|
|
|
$sales['product'][] = $value;
|
|
|
}
|
|
|
$sales['crt_name'] = $emp_map[$sales['crt_id']] ?? '';
|
|
@@ -479,23 +472,27 @@ class SalesOrderService extends Service
|
|
|
if(! empty($data['expire_time'])) $data['expire_time'] = $this->changeDateToDateMin($data['expire_time']);
|
|
|
// if(empty($data['contract_state'])) return [false,'请选择合同状态'];
|
|
|
// if(empty($data['employee_two'])) return [false,'请选择负责人'];
|
|
|
- if(empty($data['product'])) return [false,'请选择产品'];
|
|
|
- foreach ($data['product'] as $value){
|
|
|
- if(empty($value['number'])) return [false,'产品数量不能为空'];
|
|
|
- $res = $this->checkNumber($value['number']);
|
|
|
- if(! $res) return [false,'请输入正确的产品数量'];
|
|
|
-
|
|
|
- if(empty($value['retail_price'])) return [false,'产品零售价不能为空'];
|
|
|
- $res = $this->checkNumber($value['retail_price']);
|
|
|
- if(! $res) return [false,'产品零售价请输入不超过两位小数并且大于0的数值'];
|
|
|
+// if(empty($data['product'])) return [false,'请选择产品'];
|
|
|
+ if(! empty($data['product'])){
|
|
|
+ foreach ($data['product'] as $value){
|
|
|
+ if(empty($value['number'])) return [false,'产品数量不能为空'];
|
|
|
+ $res = $this->checkNumber($value['number']);
|
|
|
+ if(! $res) return [false,'请输入正确的产品数量'];
|
|
|
+
|
|
|
+ if(empty($value['retail_price'])) return [false,'产品零售价不能为空'];
|
|
|
+ $res = $this->checkNumber($value['retail_price']);
|
|
|
+ if(! $res) return [false,'产品零售价请输入不超过两位小数并且大于0的数值'];
|
|
|
+ }
|
|
|
}
|
|
|
- if(empty($data['contract_fee'])) return [false,'合同金额不能为空'];
|
|
|
- $res = $this->checkNumber($data['contract_fee']);
|
|
|
- if(! $res) return [false, '合同金额请输入不超过两位小数并且大于0的数值'];
|
|
|
+
|
|
|
if(! empty($data['rate'])){
|
|
|
$res = $this->checkNumber($data['rate']);
|
|
|
if(! $res) return [false, '整单扣除率请输入不超过两位小数并且大于0的数值'];
|
|
|
}
|
|
|
+ if(! empty($data['contract_fee'])){
|
|
|
+ $res = $this->checkNumber($data['contract_fee']);
|
|
|
+ if(! $res) return [false, '合同金额请输入不超过两位小数并且大于0的数值'];
|
|
|
+ }
|
|
|
if(! empty($data['other_fee'])){
|
|
|
$res = $this->checkNumber($data['other_fee']);
|
|
|
if(! $res) return [false, '其它费用请输入不超过两位小数并且大于0的数值'];
|
|
@@ -571,7 +568,16 @@ class SalesOrderService extends Service
|
|
|
$sales_p_info = SalesOrderProductInfo::where('del_time',0)
|
|
|
->where('sales_order_id',array_column($data['data'],'id'))
|
|
|
->get()->toArray();
|
|
|
+ $basic_price = BasicType::whereIn('id',array_unique(array_column($sales_p_info,'basic_type_id')))->pluck('title','id')->toArray();
|
|
|
+ $map = (new ProductService())->getProductDetail(array_column($sales_p_info,'product_id'));
|
|
|
foreach ($sales_p_info as $value){
|
|
|
+ $tmp = $map[$value['product_id']] ?? [];
|
|
|
+ $value['title'] = $tmp['title'] ?? "";
|
|
|
+ $value['code'] = $tmp['code'] ?? "";
|
|
|
+ $value['size'] = $tmp['size'] ?? "";
|
|
|
+ $value['unit'] = $tmp['unit'] ?? "";
|
|
|
+ $value['bar_code'] = $tmp['bar_code'] ?? "";
|
|
|
+ $value['basic_type_title'] = $basic_price[$value['basic_type_id']] ?? "";
|
|
|
$product[$value['sales_order_id']][] = $value;
|
|
|
}
|
|
|
$sales_o_info = SalesOrderOtherFee::where('del_time',0)
|
|
@@ -685,6 +691,10 @@ class SalesOrderService extends Service
|
|
|
$sale = $sale->toArray();
|
|
|
if($sale['sales_order_type'] != SalesOrder::Order_type_one) return [false,'非安装件合同,操作失败'];
|
|
|
if($sale['state'] > SalesOrder::State_one) return [false,'请确认合同状态,操作失败'];
|
|
|
+ $bool = SalesOrderProductInfo::where('del_time',0)
|
|
|
+ ->where('sales_order_id',$data['id'])
|
|
|
+ ->exists();
|
|
|
+ if(! $bool) return [false,'合同产品不能为空'];
|
|
|
if(empty($data['dispatch_depart_one']) && empty($data['dispatch_employee'])) return [false, '请指派部门或人员'];
|
|
|
|
|
|
return [true, $sale];
|
|
@@ -756,6 +766,10 @@ class SalesOrderService extends Service
|
|
|
$sale = $sale->toArray();
|
|
|
if($sale['sales_order_type'] != SalesOrder::Order_type_one) return [false,'非安装件合同,操作失败'];
|
|
|
if($sale['state'] > SalesOrder::State_two) return [false,'请确认合同状态,操作失败'];
|
|
|
+ $bool = SalesOrderProductInfo::where('del_time',0)
|
|
|
+ ->where('sales_order_id',$data['id'])
|
|
|
+ ->exists();
|
|
|
+ if(! $bool) return [false,'合同产品不能为空'];
|
|
|
|
|
|
$bool = Construction::where('del_time',0)
|
|
|
->where('sales_order_id',$data['id'])
|