|
|
@@ -3,6 +3,7 @@
|
|
|
namespace App\Services;
|
|
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
+use App\OracleDOCASNHeader;
|
|
|
use App\OracleDOCOrderHeader;
|
|
|
use App\OrderIssue;
|
|
|
use App\OrderIssueProcessLog;
|
|
|
@@ -118,32 +119,39 @@ class OrderIssueService
|
|
|
$query = $this->getQuery($arr, $condition);
|
|
|
$query = $this->getOrderQuery($condition ?? $arr, $query);
|
|
|
$query = $this->getRejectedBillQuery($condition ?? $arr, $query);
|
|
|
+
|
|
|
if (!isset($condition)) {
|
|
|
$condition = $arr;
|
|
|
}
|
|
|
- $params = [
|
|
|
- 'created_at_start' => $condition['created_at_start'] ?? '',
|
|
|
- 'final_status' => $condition['final_status'] ?? '',
|
|
|
- 'order_issue_type_id' => $condition['order_issue_type_id'] ?? '',
|
|
|
- 'logistic_indemnity_money' => $condition['logistic_indemnity_money'] ?? '',
|
|
|
- 'baoshi_indemnity_money' => $condition['baoshi_indemnity_money'] ?? '',
|
|
|
- 'order_issues.id' => $condition['order_issue_ids'] ?? '',
|
|
|
- ];
|
|
|
- $columnQueryRules = [
|
|
|
- 'order_issues.id' => ['alias' => 'order_issues.id', 'multi' => ','],
|
|
|
- 'created_at_start' => ['alias' => 'order_issues.created_at', 'startDate' => ' 00:00:00'],
|
|
|
- ];
|
|
|
- $query = app(QueryService::class)->query($params, $query, $columnQueryRules);
|
|
|
-
|
|
|
+ if (isset($condition['created_at_start'])) {
|
|
|
+ $query->where('order_issues.created_at', '>=', $condition['created_at_start'] . " 00:00:00");
|
|
|
+ }
|
|
|
+ if (isset($condition['created_at_end'])) {
|
|
|
+ $query->where('order_issues.created_at', '<=', $condition['created_at_end'] . " 23:59:59");
|
|
|
+ }
|
|
|
+ if (isset($condition['final_status'])) {
|
|
|
+ $query->where('final_status', $condition['final_status']);
|
|
|
+ }
|
|
|
+ if (isset($condition['order_issue_type_id'])) {
|
|
|
+ $query->where('order_issue_type_id', $condition['order_issue_type_id']);
|
|
|
+ }
|
|
|
if (!($condition['is_handle'] ?? false) && !($condition['final_status'] ?? false)) {
|
|
|
$query->where(function ($query) {
|
|
|
$query->where('final_status', '<>', '已解决')->orWhereNull('final_status');
|
|
|
});
|
|
|
}
|
|
|
- if ($condition['created_at_end'] ?? false) {
|
|
|
- $query->whereHas('logs', function ($query) use ($condition) {
|
|
|
- $query->where('created_at', $condition['created_at_end'])->where('type', '结束');
|
|
|
- });
|
|
|
+ if (isset($condition['logistic_indemnity_money'])) {
|
|
|
+ $query->where('logistic_indemnity_money', $condition['logistic_indemnity_money']);
|
|
|
+ }
|
|
|
+ if (isset($condition['baoshi_indemnity_money'])) {
|
|
|
+ $query->where('baoshi_indemnity_money', $condition['baoshi_indemnity_money']);
|
|
|
+ }
|
|
|
+ if (isset($condition['order_issue_ids'])) {
|
|
|
+ $orderIssuesId = $condition['order_issue_ids'];
|
|
|
+ if (is_string($orderIssuesId)) {
|
|
|
+ $orderIssuesId = explode(',', $orderIssuesId);
|
|
|
+ }
|
|
|
+ $query->whereIn('order_issues.id', $orderIssuesId);
|
|
|
}
|
|
|
|
|
|
return $query;
|
|
|
@@ -275,12 +283,17 @@ class OrderIssueService
|
|
|
public function createOrFind($clientCode)
|
|
|
{
|
|
|
$orderService = app('orderService');
|
|
|
- $orderHeader = OracleDOCOrderHeader::query()->where('SOREFERENCE1', $clientCode)->first();
|
|
|
+ $orderHeader = OracleDOCOrderHeader::query()->where('SOReference1', $clientCode)->first();
|
|
|
if (!$orderHeader) {
|
|
|
return null;
|
|
|
}
|
|
|
$order = $orderService->findOrCreateByClientCode($clientCode);
|
|
|
$rejectedBill = RejectedBill::query()->where('order_number', $orderHeader['soreference1'])->first();
|
|
|
+ if(!($rejectedBill ?? false)){
|
|
|
+ $asnHeader = OracleDOCASNHeader::query()->where('ASNReference2', $orderHeader['soreference1'])->first();
|
|
|
+ if($asnHeader['asnreference3'] ?? false)
|
|
|
+ $rejectedBill = RejectedBill::query()->where('logistic_number_return',$asnHeader['asnreference3'])->first();
|
|
|
+ }
|
|
|
$arr = [
|
|
|
'order_id' => $order['id'],
|
|
|
'rejected_bill_id' => $rejectedBill['id'] ?? '',
|
|
|
@@ -384,7 +397,7 @@ class OrderIssueService
|
|
|
$rejectedBill->同步问题件();
|
|
|
$rejectedBill->同步问题件退件状态();
|
|
|
|
|
|
- } else if ($arr['rejectedBill']['id_logistic_return'] ?? false && $arr['rejectedBill']['logistic_number_return'] ?? false) {
|
|
|
+ } /*else if ($arr['rejectedBill']['id_logistic_return'] ?? false && $arr['rejectedBill']['logistic_number_return'] ?? false) {
|
|
|
$owner_id = $orderIssue['order']['owner_id'];
|
|
|
$rejectedBill = RejectedBill::query()->firstOrCreate([
|
|
|
'id_logistic_return' => $arr['rejectedBill']['id_logistic_return'] ?? '',
|
|
|
@@ -394,10 +407,9 @@ class OrderIssueService
|
|
|
$rejectedBill->save();
|
|
|
$rejectedBill->同步问题件();
|
|
|
$rejectedBill->同步问题件退件状态();
|
|
|
-
|
|
|
$arr['orderIssues']['rejected_bill_id'] = $rejectedBill['id'];
|
|
|
$arr['orderIssues']['is_new_rejecting'] = '有';
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
if ($arr['order'] ?? false) {
|
|
|
$order = Order::query()->where('id', $arr['order']['id'])->first();
|