ReceivingTaskController.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\DeliveryAppointment;
  4. use App\Http\Requests\Api\ReceivingTaskRequest;
  5. use App\ReceivingTask;
  6. use App\Services\OwnerService;
  7. use App\Services\ReceivingTaskService;
  8. use App\Warehouse;
  9. use Illuminate\Http\Request;
  10. class ReceivingTaskController extends Controller
  11. {
  12. /**
  13. * @var ReceivingTaskService $service
  14. * @var OwnerService $ownerService
  15. */
  16. private $service;
  17. private $ownerService;
  18. public function __construct()
  19. {
  20. $this->service = app(ReceivingTaskService::class);
  21. $this->ownerService = app(OwnerService::class);
  22. }
  23. public function index()
  24. {
  25. $wareHouse = Warehouse::query()->get();
  26. $owners = $this->ownerService->getQuery()->select("id","code","name")->get();
  27. return view("store.receivingTasks.create",compact('wareHouse','owners'));
  28. }
  29. public function create()
  30. {
  31. }
  32. public function storeApi(ReceivingTaskRequest $request): array
  33. {
  34. $delivery_appointment_number = $request->input('delivery_appointment_number',null);
  35. $delivery_appointment = DeliveryAppointment::query()->where('procurement_number',$delivery_appointment_number)->first();
  36. if (!$delivery_appointment) return ['success' => false, 'message' => '预约号未找到'];
  37. if (ReceivingTask::query()->where('delivery_appointment_id',$delivery_appointment->id)->exists())
  38. return ['success' => false, 'message' => '预约号已有对应的任务'];
  39. try {
  40. $receiving_task = $this->service->createReceivingTask($delivery_appointment, $request->all());
  41. $receiving_task->loadMissing("deliveryAppointment");
  42. return ['success' => true, 'data' => $receiving_task];
  43. } catch (\Exception $e) {
  44. return ['success' => false, 'message' => '生成入库单任务失败,请重新尝试'];
  45. }
  46. }
  47. }