diff --git a/app/Classes/Modules/ControllersLogic/Orders/CreateOrderLogic.php b/app/Classes/Modules/ControllersLogic/Orders/CreateOrderLogic.php index 587d609..3c8dea8 100644 --- a/app/Classes/Modules/ControllersLogic/Orders/CreateOrderLogic.php +++ b/app/Classes/Modules/ControllersLogic/Orders/CreateOrderLogic.php @@ -27,7 +27,7 @@ class CreateOrderLogic /** * @param int $companyId * @param Request $request - * @return \App\Models\Order|null + * @return \Illuminate\Http\JsonResponse * @throws InternalServerErrorException */ public function execute(int $companyId, Request $request) { diff --git a/app/Classes/Modules/Orders/Services/CreatesOrder.php b/app/Classes/Modules/Orders/Services/CreatesOrder.php index ddfe089..afbd291 100644 --- a/app/Classes/Modules/Orders/Services/CreatesOrder.php +++ b/app/Classes/Modules/Orders/Services/CreatesOrder.php @@ -6,8 +6,10 @@ namespace App\Classes\Modules\Orders\Services; use App\Classes\Constants; use App\Classes\Modules\Accounts\Exceptions\CannotCreateOrderException; use App\Classes\Modules\Orders\DataTransferObjects\OrderObject; +use App\Classes\ValueObjects\Constants\HttpStatus; use App\Models\AddressBook; use App\Models\Order; +use Illuminate\Http\JsonResponse; class CreatesOrder { @@ -26,15 +28,19 @@ class CreatesOrder /** * @param OrderObject $order - * @return Order + * @return JsonResponse * @throws CannotCreateOrderException */ - public function execute(OrderObject $order): ?Order { + public function execute(OrderObject $order) { try { $address = AddressBook::where('company_id', $order->getCompanyId()) - ->where('default', true)->firstOrFail(); + ->where('default', true)->first(); + + if(!$address){ + return new JsonResponse(['message' => 'Failed to create order because import\'s delivery address wasn\'t found'], HttpStatus::RESOURCE_NOT_FOUND); + } $this->repository->company_id = $order->getCompanyId(); $this->repository->marking = $order->getOrderId(); @@ -43,7 +49,7 @@ class CreatesOrder $this->repository->save(); - return $this->repository; + return new JsonResponse(null, HttpStatus::RESOURCE_CREATED); } catch (\Exception $exception){ throw new CannotCreateOrderException($exception->getMessage()); diff --git a/app/Http/Resources/AddressBook.php b/app/Http/Resources/AddressBook.php index 765c513..f12f8bf 100644 --- a/app/Http/Resources/AddressBook.php +++ b/app/Http/Resources/AddressBook.php @@ -25,7 +25,7 @@ class AddressBook extends JsonResource 'state' => $this->state, 'post_code' => $this->post_code, 'country' => $this->country, - 'default' => $this->default + 'default' => (int)$this->default ]; } } diff --git a/database/migrations/2018_11_30_085832_create_packages.php b/database/migrations/2018_11_30_085832_create_packages.php index 3137562..863a3c6 100644 --- a/database/migrations/2018_11_30_085832_create_packages.php +++ b/database/migrations/2018_11_30_085832_create_packages.php @@ -18,9 +18,9 @@ class CreatePackages extends Migration $table->integer('list_id')->unsigned()->index(); $table->integer('type')->default(0); $table->string('description')->nullable(); - $table->decimal('width', 5, 3); - $table->decimal('length', 5, 3); - $table->decimal('height', 5, 3); + $table->decimal('width', 7, 2); + $table->decimal('length', 7, 2); + $table->decimal('height', 7, 2); $table->integer('weight')->default(0); $table->integer('quantity'); $table->timestamps(); diff --git a/resources/assets/vue/components/order/forms/OrderFormComponent.vue b/resources/assets/vue/components/order/forms/OrderFormComponent.vue index e5ba184..433b397 100644 --- a/resources/assets/vue/components/order/forms/OrderFormComponent.vue +++ b/resources/assets/vue/components/order/forms/OrderFormComponent.vue @@ -11,7 +11,7 @@ -