| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- namespace App\Services;
- use App\Http\Controllers\api\thirdPart\syrius\beans\Task;
- use App\Http\Controllers\api\thirdPart\syrius\beans\TaskItem;
- use App\Order;
- use Illuminate\Database\Eloquent\Model;
- class SyriusTaskService
- {
- const STORAGE_TYPE = "1A_container";
- const SERIAL_NO = "1635055429594424";
- const WAREHOUSE = "101";
- public function formatTask(Model $model):Task
- {
- $task = new Task();
- $task->warehouseId = self::WAREHOUSE;
- switch ($model->getMorphClass()){
- case Order::class:
- $model->loadMissing(["owner:id,name","batch:id,code","orderCommodities.commodity.barcodes"]);
- $task->id = $model->code;
- $task->batchId = $model->batch->code ?? 'SYSTEM';
- $task->attributes = [
- "customer" => $model->owner->name,
- ];
- $task->type = Task::TOTAL_PICKING;
- $task->storages = [["type"=>self::STORAGE_TYPE]];
- $task->items = [];
- foreach ($model->orderCommodities as $commodity){
- $taskItem = new TaskItem();
- $taskItem->name = $commodity->commodity->name ?? "";
- $taskItem->barcode = $commodity->commodity->barcodes[0]->code ?? "";
- $taskItem->quantity = (int)$commodity->amount;
- $taskItem->binLocations = [
- $commodity->location
- ];
- $taskItem->attributes = [
- "sku" => $commodity->commodity->sku ?? "",
- ];
- $task->items[] = (array)$taskItem->get();
- }
- break;
- }
- return $task->get();
- }
- }
|