diff --git a/app/exceptions/cannot_delete_product_error.rb b/app/exceptions/cannot_delete_product_error.rb index f4e2eec80..85135513f 100644 --- a/app/exceptions/cannot_delete_product_error.rb +++ b/app/exceptions/cannot_delete_product_error.rb @@ -1,3 +1,5 @@ -# Raised when delete a product if this product has used in order +# frozen_string_literal: true + +# Raised when deleting a product, if this product is used in orders class CannotDeleteProductError < StandardError end diff --git a/app/services/product_service.rb b/app/services/product_service.rb index 0b702d189..a9ff0dba4 100644 --- a/app/services/product_service.rb +++ b/app/services/product_service.rb @@ -69,7 +69,7 @@ class ProductService def destroy(product) used_in_order = OrderItem.joins(:order).where.not('orders.state' => 'cart') .exists?(orderable: product) - raise CannotDeleteProductError if used_in_order + raise CannotDeleteProductError, I18n.t('errors.messages.product_in_use') if used_in_order ActiveRecord::Base.transaction do orders_with_product = Order.joins(:order_items).where(state: 'cart').where('order_items.orderable': product) diff --git a/config/locales/en.yml b/config/locales/en.yml index 179d88766..5871674c1 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -46,6 +46,7 @@ en: gateway_error: "Payement gateway error: %{MESSAGE}" gateway_amount_too_small: "Payments under %{AMOUNT} are not supported. Please order directly at the reception." gateway_amount_too_large: "Payments above %{AMOUNT} are not supported. Please order directly at the reception." + product_in_use: "This product have already been ordered" apipie: api_documentation: "API Documentation" code: "HTTP code"