|
@@ -117,6 +117,19 @@ class DeliveryAppointmentController extends Controller
|
|
|
$this->success($list);
|
|
$this->success($list);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private function checkAndGetAsn($codes){
|
|
|
|
|
+ if ($codes){
|
|
|
|
|
+ $codes = array_filter(array_unique(preg_split('/[,, ]+/u', $codes)));
|
|
|
|
|
+ if (count($codes)>0){
|
|
|
|
|
+ $asnCount = Store::query()->where("asn_code",$codes)->count();
|
|
|
|
|
+ $codes = count($codes)===$asnCount ? implode(",",$codes) : null;
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $codes = null;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return $codes;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 确定预约
|
|
* 确定预约
|
|
|
*/
|
|
*/
|
|
@@ -128,13 +141,15 @@ class DeliveryAppointmentController extends Controller
|
|
|
$details = request("details");
|
|
$details = request("details");
|
|
|
$errors = $this->appointmentValidator($model)->errors();
|
|
$errors = $this->appointmentValidator($model)->errors();
|
|
|
if (count($errors)>0)$this->success(["errors"=>$errors]);
|
|
if (count($errors)>0)$this->success(["errors"=>$errors]);
|
|
|
|
|
+ $asnCodes = $this->checkAndGetAsn($model["asn_number"] ?? null);
|
|
|
|
|
+ if (!$asnCodes)$this->error("ASN单据错误");
|
|
|
$errors = Validator::make($selectDate,[
|
|
$errors = Validator::make($selectDate,[
|
|
|
"date" => ["required","date","after_or_equal:today"],
|
|
"date" => ["required","date","after_or_equal:today"],
|
|
|
"time" => ["required","integer"],
|
|
"time" => ["required","integer"],
|
|
|
])->errors();
|
|
])->errors();
|
|
|
if (count($errors)>0)$this->error("未选定预约日期");
|
|
if (count($errors)>0)$this->error("未选定预约日期");
|
|
|
|
|
|
|
|
- DB::transaction(function ()use($model,$selectDate,$details,&$appointment){
|
|
|
|
|
|
|
+ DB::transaction(function ()use($model,$selectDate,$details,&$appointment,$asnCodes){
|
|
|
$result = DeliveryAppointment::query()->selectRaw("appointment_date,date_period,SUM(capacity) AS capacity")
|
|
$result = DeliveryAppointment::query()->selectRaw("appointment_date,date_period,SUM(capacity) AS capacity")
|
|
|
->where("appointment_date",$selectDate["date"])
|
|
->where("appointment_date",$selectDate["date"])
|
|
|
->where("date_period",$selectDate["time"])
|
|
->where("date_period",$selectDate["time"])
|
|
@@ -157,7 +172,7 @@ class DeliveryAppointmentController extends Controller
|
|
|
"user_id" => Auth::id(),
|
|
"user_id" => Auth::id(),
|
|
|
"owner_id" => $model["owner_id"],
|
|
"owner_id" => $model["owner_id"],
|
|
|
"procurement_number" => $model["procurement_number"] ?? null,
|
|
"procurement_number" => $model["procurement_number"] ?? null,
|
|
|
- "asn_number" => $model["asn_number"] ?? null,
|
|
|
|
|
|
|
+ "asn_number" => $asnCodes,
|
|
|
"logistic_number" => $model["logistic_number"] ?? null,
|
|
"logistic_number" => $model["logistic_number"] ?? null,
|
|
|
"logistic_id" => $model["logistic_id"] ?? null,
|
|
"logistic_id" => $model["logistic_id"] ?? null,
|
|
|
"warehouse_id" => $model["warehouse_id"],
|
|
"warehouse_id" => $model["warehouse_id"],
|