| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- namespace App\Services;
- use App\Http\Controllers\Controller;
- use App\OrderIssue;
- use App\OrderIssueRejectedBill;
- use App\RejectedBill;
- use Illuminate\Database\Eloquent\Builder;
- use Illuminate\Database\Eloquent\Model;
- class OrderIssueRejectedBillService
- {
- private $orderRejectedBillRelationService;
- public function __construct(OrderRejectedBillRelationService $orderRejectedBillRelationService)
- {
- $this->orderRejectedBillRelationService = $orderRejectedBillRelationService;
- }
- /**
- * 添加连接
- * @param OrderIssue $orderIssue
- * @param $logistic_number_return
- * @return Builder|Model|object|null|boolean
- */
- public function joinRejectedBill(OrderIssue $orderIssue, $logistic_number_return)
- {
- OrderIssueRejectedBill::query()->create(
- ['order_id' => $orderIssue->order_id,'order_issue_id' => $orderIssue->id,'logistic_number_return' => $logistic_number_return]
- );
- $this->orderRejectedBillRelationService->orderSyncRejectedBill($orderIssue->order);
- return OrderIssueRejectedBill::query()->with('rejectedBill.items')
- ->where('order_issue_id', $orderIssue->id)
- ->where('logistic_number_return', $logistic_number_return)->first() ?? false;
- }
- /**
- * 删除连接
- * @param OrderIssue $orderIssue
- * @param $logistic_number_return
- * @return boolean
- */
- public function unJoinRejectedBill(OrderIssue $orderIssue, $logistic_number_return): bool
- {
- OrderIssueRejectedBill::query()
- ->where('order_id', $orderIssue->order_id)
- ->where('logistic_number_return', $logistic_number_return)->delete();
- $this->orderRejectedBillRelationService->orderSyncRejectedBill($orderIssue->order);
- if ($orderIssue->rejectedBills()->count() == 0) {
- $orderIssue->update(['is_new_rejecting' => '无']);
- $orderIssue->orderDetail()->update(['is_new_rejecting' => '无']);
- }
- return true;
- }
- /**
- * 修改连接
- * @param OrderIssue $orderIssue
- * @param $logistic_number_return
- * @param $logistic_number_return_update
- * @return null|boolean|Builder|Model|object
- */
- public function reviseJoinRejectedBill(OrderIssue $orderIssue, $logistic_number_return, $logistic_number_return_update)
- {
- OrderIssueRejectedBill::query()->where('logistic_number_return' , $logistic_number_return)
- ->update(['logistic_number_return'=>$logistic_number_return_update]);
- $this->orderRejectedBillRelationService->orderSyncRejectedBill($orderIssue->order);
- return OrderIssueRejectedBill::query()->with('rejectedBill')
- ->where('order_issue_id', $orderIssue->id)
- ->where('logistic_number_return', $logistic_number_return_update)->first() ?? false;
- }
- /**
- * 退回件同步问题件
- * @param RejectedBill|Controller $rejectedBills
- * @return void
- */
- public function syncOrderIssue($rejectedBills)
- {
- if (!$rejectedBills) return;
- if (is_array($rejectedBills)) {
- foreach ($rejectedBills as $rejectedBill) {
- $this->orderRejectedBillRelationService->rejectedBillSyncOrder($rejectedBill);
- }
- return;
- }
- $this->orderRejectedBillRelationService->rejectedBillSyncOrder($rejectedBills);
- }
- }
|