|
@@ -19,6 +19,8 @@ use App\Model\OaSubEmployee;
|
|
use App\Model\OaSubReportEmployee;
|
|
use App\Model\OaSubReportEmployee;
|
|
use App\Model\OaSubRule;
|
|
use App\Model\OaSubRule;
|
|
use App\Model\Product;
|
|
use App\Model\Product;
|
|
|
|
+use App\Model\ReturnExchangeOrder;
|
|
|
|
+use App\Model\ReturnExchangeOrderProductInfo;
|
|
use App\Model\SalesOrder;
|
|
use App\Model\SalesOrder;
|
|
use App\Model\SalesOrderInfo;
|
|
use App\Model\SalesOrderInfo;
|
|
use App\Model\SalesOrderProductInfo;
|
|
use App\Model\SalesOrderProductInfo;
|
|
@@ -664,7 +666,7 @@ class ConstructionService extends Service
|
|
if(! isset($s_product[$p])) return [false,'施工产品错误,合同中不存在该产品'];
|
|
if(! isset($s_product[$p])) return [false,'施工产品错误,合同中不存在该产品'];
|
|
$s_number = $s_product[$p];
|
|
$s_number = $s_product[$p];
|
|
|
|
|
|
- if($number > $s_number) return [false,'施工产品数量不能超过合同产品数据'];
|
|
|
|
|
|
+ if($number > $s_number) return [false,'施工产品数量不能超过合同产品数据(包含已退货产品)'];
|
|
}
|
|
}
|
|
|
|
|
|
$id = $data['id'] ?? 0;
|
|
$id = $data['id'] ?? 0;
|
|
@@ -683,21 +685,21 @@ class ConstructionService extends Service
|
|
->where('order_number',$data['order_number'])
|
|
->where('order_number',$data['order_number'])
|
|
->exists();
|
|
->exists();
|
|
if($bool) return [false,'工单编号已存在,请重新获取'];
|
|
if($bool) return [false,'工单编号已存在,请重新获取'];
|
|
- $bool = Construction::where('del_time',0)
|
|
|
|
- ->where('sales_order_id',$data['sales_order_id'])
|
|
|
|
- ->where('start_time', '<=', $data['end_time'])
|
|
|
|
- ->where('end_time', '>=', $data['start_time'])
|
|
|
|
- ->exists();
|
|
|
|
- if($bool) return [false,'合同:' . $sale['order_number'] . '在' . $start_time . '——' . $end_time . '已下施工单'];
|
|
|
|
|
|
+// $bool = Construction::where('del_time',0)
|
|
|
|
+// ->where('sales_order_id',$data['sales_order_id'])
|
|
|
|
+// ->where('start_time', '<=', $data['end_time'])
|
|
|
|
+// ->where('end_time', '>=', $data['start_time'])
|
|
|
|
+// ->exists();
|
|
|
|
+// if($bool) return [false,'合同:' . $sale['order_number'] . '在' . $start_time . '——' . $end_time . '已下施工单'];
|
|
}else{
|
|
}else{
|
|
if(empty($data['id'])) return [false,'ID不能为空'];
|
|
if(empty($data['id'])) return [false,'ID不能为空'];
|
|
- $bool = Construction::where('del_time',0)
|
|
|
|
- ->where('id','<>',$data['id'])
|
|
|
|
- ->where('sales_order_id',$data['sales_order_id'])
|
|
|
|
- ->where('start_time', '<=', $data['end_time'])
|
|
|
|
- ->where('end_time', '>=', $data['start_time'])
|
|
|
|
- ->exists();
|
|
|
|
- if($bool) return [false,'合同:' . $sale['order_number'] . '在' . $start_time . '——' . $end_time . '已下施工单'];
|
|
|
|
|
|
+// $bool = Construction::where('del_time',0)
|
|
|
|
+// ->where('id','<>',$data['id'])
|
|
|
|
+// ->where('sales_order_id',$data['sales_order_id'])
|
|
|
|
+// ->where('start_time', '<=', $data['end_time'])
|
|
|
|
+// ->where('end_time', '>=', $data['start_time'])
|
|
|
|
+// ->exists();
|
|
|
|
+// if($bool) return [false,'合同:' . $sale['order_number'] . '在' . $start_time . '——' . $end_time . '已下施工单'];
|
|
}
|
|
}
|
|
|
|
|
|
return [true, [$product_submit, $product_save]];
|
|
return [true, [$product_submit, $product_save]];
|
|
@@ -879,16 +881,34 @@ class ConstructionService extends Service
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ $product_save2 = [];
|
|
|
|
+ $sub1 = ReturnExchangeOrder::where('del_time',0)
|
|
|
|
+ ->where('type',ReturnExchangeOrder::Order_type)
|
|
|
|
+ ->where('model_type',ReturnExchangeOrder::Model_type_one)
|
|
|
|
+ ->where('sales_order_id',$sales_order_id)
|
|
|
|
+ ->get()->toArray();
|
|
|
|
+ $sub1_array = ReturnExchangeOrderProductInfo::where('del_time',0)
|
|
|
|
+ ->whereIn('return_exchange_id',array_column($sub1,'id'))
|
|
|
|
+ ->get()->toArray();
|
|
|
|
+ foreach ($sub1_array as $value){
|
|
|
|
+ if(isset($product_save2[$value['product_id']])){
|
|
|
|
+ $product_save2[$value['product_id']] += $value['number'];
|
|
|
|
+ }else{
|
|
|
|
+ $product_save2[$value['product_id']] = $value['number'];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
$sales_order_product = [];
|
|
$sales_order_product = [];
|
|
$sales_product = SalesOrderProductInfo::where('del_time',0)
|
|
$sales_product = SalesOrderProductInfo::where('del_time',0)
|
|
->where('sales_order_id',$sales_order_id)
|
|
->where('sales_order_id',$sales_order_id)
|
|
->get()->toArray();
|
|
->get()->toArray();
|
|
foreach ($sales_product as $value){
|
|
foreach ($sales_product as $value){
|
|
$product_save_tmp = $product_save[$value['product_id']] ?? 0;
|
|
$product_save_tmp = $product_save[$value['product_id']] ?? 0;
|
|
|
|
+ $product_save_tmp2 = $product_save2[$value['product_id']] ?? 0;
|
|
if(isset($sales_order_product[$value['product_id']])){
|
|
if(isset($sales_order_product[$value['product_id']])){
|
|
$sales_order_product[$value['product_id']] += $value['number'];
|
|
$sales_order_product[$value['product_id']] += $value['number'];
|
|
}else{
|
|
}else{
|
|
- $sales_order_product[$value['product_id']] = $value['number'] - $product_save_tmp;
|
|
|
|
|
|
+ $sales_order_product[$value['product_id']] = $value['number'] - $product_save_tmp - $product_save_tmp2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|