mirror of
https://github.com/Bigherollc/wticreatorstudio.git
synced 2026-09-29 21:13:05 -04:00
88 lines
2.8 KiB
PHP
88 lines
2.8 KiB
PHP
<?php
|
|
|
|
namespace Modules\WTIJobBoard\Repositories;
|
|
|
|
use Carbon\Carbon;
|
|
use Modules\WTIJobBoard\Entities\JobRequest;
|
|
use Modules\WTIJobBoard\Entities\JobRequestShipment;
|
|
use Modules\WTIJobBoard\Entities\JobRequestStatus;
|
|
use Modules\WTIJobBoard\Entities\JobRequestTrack;
|
|
use Modules\WTIJobBoard\Entities\JobRequestTrackMeta;
|
|
use Modules\WTIJobBoard\Repositories\JobRequestsRepository;
|
|
|
|
class JobRequestShipmentsRepository
|
|
{
|
|
public function ship($data)
|
|
{
|
|
$job_request = JobRequest::find($data['job_request_id']);
|
|
if ($job_request) {
|
|
|
|
$shipment = JobRequestShipment::updateOrCreate(
|
|
['job_request_id' => $job_request->id],
|
|
[
|
|
'courier' => $data['courier'],
|
|
'tracking_number' => $data['tracking_number']
|
|
]
|
|
);
|
|
|
|
$shipped_status = JobRequestStatus::where('name', 'shipped')->first();
|
|
$track_exist = JobRequestTrack::where('job_request_id',$job_request->id)->where('status_id',$shipped_status->id)->first();
|
|
if(!$track_exist) {
|
|
$track = new JobRequestTrack();
|
|
$track->job_request_id = $data['job_request_id'];
|
|
$track->status_id = $shipped_status->id;
|
|
$track->save();
|
|
}
|
|
|
|
$job_request->job_status = 'In Progress';
|
|
$job_request->track_package_status = 'Shipped';
|
|
$job_request->save();
|
|
|
|
if($job_request->category->name == 'giveaway'){
|
|
$data['id'] = $data['job_request_id'];
|
|
|
|
$job_request->job_status = 'Completed';
|
|
$job_request->save();
|
|
|
|
(new JobRequestsRepository())->fulfilled($data);
|
|
}
|
|
return $shipment;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public function received($data)
|
|
{
|
|
$received_status = JobRequestStatus::where('name', 'received')->first();
|
|
$track = new JobRequestTrack();
|
|
$track->job_request_id = $data['id'];
|
|
$track->status_id = $received_status->id;
|
|
$track->save();
|
|
|
|
$meta = new JobRequestTrackMeta();
|
|
$meta->track_id = $track->id;
|
|
$meta->name = 'received_at';
|
|
$meta->value = $data['received_at'];
|
|
$meta->save();
|
|
|
|
$job_request = JobRequest::find($data['id']);
|
|
$job_request->job_status = 'In Progress';
|
|
$job_request->track_package_status = 'Received';
|
|
$job_request->save();
|
|
return true;
|
|
}
|
|
|
|
public function receivedUpdate($data)
|
|
{
|
|
$meta = JobRequestTrackMeta::where('track_id', $data['track_id'])->first();
|
|
if($meta){
|
|
$meta->value = $data['received_at'];
|
|
$meta->update();
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|