|
|
@@ -139,77 +139,6 @@ class OrderIssue extends Model
|
|
|
return $createLog->user->name ?? '';
|
|
|
}
|
|
|
|
|
|
-// /**
|
|
|
-// * 同步退货状态
|
|
|
-// */
|
|
|
-// public function syncRejectingStatus()
|
|
|
-// {
|
|
|
-// $this->syncRejectedBillStatus($this);
|
|
|
-// }
|
|
|
-
|
|
|
-// public function syncRejectedBillStatus($orderIssue)
|
|
|
-// {
|
|
|
-// if (!$orderIssue->order_id) return;
|
|
|
-// $orderIssueMap = [];
|
|
|
-// $rejectedMap = [];
|
|
|
-// $owner_id = $orderIssue->order->owner_id;
|
|
|
-//
|
|
|
-// // 获取对应订单的所有商品
|
|
|
-// $orderPackageQuery = OrderPackage::query()->selectRaw("id")->where('order_id', $orderIssue->order_id);
|
|
|
-// $orderPackageCommodities = OrderPackageCommodities::query()->with('commodity')->whereIn('order_package_id', $orderPackageQuery)->get();
|
|
|
-// foreach ($orderPackageCommodities as $orderPackageCommodity) {
|
|
|
-// $code = $orderPackageCommodity->commodity->sku;
|
|
|
-// if (empty($orderIssueMap[$code])) $orderIssueMap[$code] = $orderPackageCommodity->amount;
|
|
|
-// else $orderIssueMap[$code] += $orderPackageCommodity->amount;
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 获取对应退回单的所有商品
|
|
|
-// $orderIssueRejectedBillQuery = OrderIssueRejectedBill::query()->selectRaw("logistic_number_return")->where("order_issue_id", $orderIssue->id);
|
|
|
-// $RejectedBills = RejectedBill::query()->with('items.quality')->whereIn("logistic_number_return", $orderIssueRejectedBillQuery)->get();
|
|
|
-// /** @var RejectedBill $rejectedBill */
|
|
|
-// foreach ($RejectedBills as $rejectedBill) {
|
|
|
-// foreach ($rejectedBill->items as $item) {
|
|
|
-// $code = $item->barcode_goods;
|
|
|
-// $exists = Commodity::query()->where("sku", $code)->where('owner_id',$owner_id)->exists();
|
|
|
-// if (!$exists) {
|
|
|
-// $commodityBarcodeQuery = CommodityBarcode::query()->select('commodity_id')->where('code',$code);
|
|
|
-// $commodity = Commodity::query()->where('owner_id',$owner_id)->whereIn('id',$commodityBarcodeQuery)->first();
|
|
|
-// if ($commodity)$code = $commodity->sku;
|
|
|
-// }
|
|
|
-// $qualityName = $item->quality->name;
|
|
|
-// if (empty($rejectedMap[$code]) || empty($rejectedMap[$code][$qualityName])) $rejectedMap[$code][$qualityName] = $item->amount;
|
|
|
-// else $rejectedMap[$code][$qualityName] += $item->amount;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// // 比较
|
|
|
-// $status = $this->getRejectingStatus($orderIssueMap, $rejectedMap);
|
|
|
-// $this->update(['rejecting_status' => $status]);
|
|
|
-// $this->syncWorkOrder();
|
|
|
-// }
|
|
|
-
|
|
|
-// private function getRejectingStatus($orderIssueMap, $rejectedMap): string
|
|
|
-// {
|
|
|
-// //未退回,差异退回,全部退回,超量退回,部分退回
|
|
|
-// if (count($rejectedMap) == 0) return "未退回";
|
|
|
-// $equal = 0;
|
|
|
-// $portion = 0;
|
|
|
-// foreach ($rejectedMap as $key => $map) {
|
|
|
-// if (isset($map['残次']) && $map['残次'] > 0) return "差异退回";
|
|
|
-// if (empty($orderIssueMap[$key])) return "差异退回";
|
|
|
-// if(isset($rejectedMap[$key]['正品']) && isset($orderIssueMap[$key])){
|
|
|
-// if ( $rejectedMap[$key]['正品'] < $orderIssueMap[$key]) $portion += 1;
|
|
|
-// if ( $rejectedMap[$key]['正品'] > $orderIssueMap[$key]) return "超量退回"; // 超量退回
|
|
|
-// if ( $rejectedMap[$key]['正品'] == $orderIssueMap[$key]) $equal += 1;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// if ($equal == count($orderIssueMap) && $equal == count($rejectedMap) && $portion == 0) return "全部退回"; // 全部退回
|
|
|
-// if ($portion > 0) return "部分退回"; // 部分退回
|
|
|
-// // 部分退回
|
|
|
-// if (count(array_diff_key($orderIssueMap,$rejectedMap)) > 0)return '部分退回';
|
|
|
-// if (count(array_diff_key($rejectedMap,$orderIssueMap)) > 0)return '差异退回';
|
|
|
-// return "无";
|
|
|
-// }
|
|
|
-
|
|
|
public function delete()
|
|
|
{
|
|
|
$this->logs()->delete();
|
|
|
@@ -222,64 +151,6 @@ class OrderIssue extends Model
|
|
|
return parent::delete();
|
|
|
}
|
|
|
|
|
|
-// /**
|
|
|
-// * 同步退货单号
|
|
|
-// */
|
|
|
-// public function syncRejectedBills()
|
|
|
-// {
|
|
|
-// $order_packages = $this->order->packages;
|
|
|
-// if($order_packages){
|
|
|
-// foreach ($order_packages as $order_package) {
|
|
|
-// $logistic_number = $order_package->logistic_number;
|
|
|
-// $rejectedBill = RejectedBill::query()->where('logistic_number_return',$logistic_number)->first();
|
|
|
-// if($rejectedBill){
|
|
|
-// if(OrderIssueRejectedBill::isExit($this->id,$logistic_number))continue;
|
|
|
-// $this->joinRejectedBill($logistic_number);
|
|
|
-// if(isset($rejectedBill->items))
|
|
|
-// $this->is_new_rejecting = '有';
|
|
|
-// }
|
|
|
-// }
|
|
|
-// $this->save();
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
-// public function syncRejected($logistic_number)
|
|
|
-// {
|
|
|
-// $query = RejectedBill::query()->selectRaw('id');
|
|
|
-// if(is_array($logistic_number)){
|
|
|
-// $query->whereIn('logistic_number_return',$logistic_number);
|
|
|
-// }elseif (is_string($logistic_number)){
|
|
|
-// $query->where('logistic_number_return',$logistic_number);
|
|
|
-// }else return;
|
|
|
-// $items = RejectedBillItem::query()->whereIn('id_rejected_bill',$query);
|
|
|
-// if($items->count() > 0) $this->update(['is_new_rejecting'=>'有']);
|
|
|
-// elseif($items->count() == 0) $this->update(['is_new_rejecting'=>'无']);
|
|
|
-// }
|
|
|
-
|
|
|
-
|
|
|
-// /**
|
|
|
-// * @param array|string $logistic_number
|
|
|
-// * @return array|void
|
|
|
-// */
|
|
|
-// public function joinRejectedBill($logistic_number)
|
|
|
-// {
|
|
|
-// if(!$logistic_number)return null;
|
|
|
-// $this->syncRejected($logistic_number);
|
|
|
-// if(is_array($logistic_number)){
|
|
|
-// return $this->rejectedBills()->sync($logistic_number,false);
|
|
|
-// }
|
|
|
-// return $this->rejectedBills()->attach($logistic_number);
|
|
|
-// }
|
|
|
-//
|
|
|
-// public function unJoinRejectedBill($logistic_number)
|
|
|
-// {
|
|
|
-// return $this->rejectedBills()->detach($logistic_number);
|
|
|
-// }
|
|
|
-//
|
|
|
-// public function reviseJoinRejectedBill($logistic_number,$logistic_number_update)
|
|
|
-// {
|
|
|
-// return $this->rejectedBills()->updateExistingPivot($logistic_number,['logistic_number_return'=>$logistic_number_update]);
|
|
|
-// }
|
|
|
|
|
|
public function scopeFilter($query, $filters)
|
|
|
{
|
|
|
@@ -311,7 +182,9 @@ class OrderIssue extends Model
|
|
|
$query->with(['shop', 'logistic', 'owner', 'packages.commodities.commodity.barcodes']);
|
|
|
},'orderIssueRejectedBills.rejectedBill'=>function($query){
|
|
|
$query->with(['owner','logistic','user','items.quality']);
|
|
|
- },'userWorkgroups','userOwnerGroup','orderDetail']);
|
|
|
+ },'userWorkgroups'=>function($query){
|
|
|
+ $query->onlyTrashed();
|
|
|
+ },'userOwnerGroup','orderDetail']);
|
|
|
|
|
|
}
|
|
|
|