diff --git a/engines/dfc_provider/app/controllers/dfc_provider/supplied_products_controller.rb b/engines/dfc_provider/app/controllers/dfc_provider/supplied_products_controller.rb index d68822d6b6..8f7af81e00 100644 --- a/engines/dfc_provider/app/controllers/dfc_provider/supplied_products_controller.rb +++ b/engines/dfc_provider/app/controllers/dfc_provider/supplied_products_controller.rb @@ -34,13 +34,10 @@ module DfcProvider return head :bad_request unless supplied_product - variant.product.update!( - description: supplied_product.description, - ) + SuppliedProductBuilder.apply(supplied_product, variant) - variant.update!( - unit_value: supplied_product.quantity.value, - ) + variant.product.save! + variant.save! end private diff --git a/engines/dfc_provider/app/services/supplied_product_builder.rb b/engines/dfc_provider/app/services/supplied_product_builder.rb index 02c8f3e00a..fe036dcfb1 100644 --- a/engines/dfc_provider/app/services/supplied_product_builder.rb +++ b/engines/dfc_provider/app/services/supplied_product_builder.rb @@ -26,4 +26,14 @@ class SuppliedProductBuilder < DfcBuilder QuantitativeValueBuilder.apply(supplied_product.quantity, product) end end + + def self.apply(supplied_product, variant) + variant.product.assign_attributes( + name: supplied_product.name, + description: supplied_product.description, + ) + + QuantitativeValueBuilder.apply(supplied_product.quantity, variant.product) + variant.unit_value = variant.product.unit_value + end end diff --git a/engines/dfc_provider/spec/requests/supplied_products_spec.rb b/engines/dfc_provider/spec/requests/supplied_products_spec.rb index 23d5a96117..e3dde17838 100644 --- a/engines/dfc_provider/spec/requests/supplied_products_spec.rb +++ b/engines/dfc_provider/spec/requests/supplied_products_spec.rb @@ -148,6 +148,7 @@ describe "SuppliedProducts", type: :request, swagger_doc: "dfc-v1.7/swagger.yaml submit_request(example.metadata) variant.reload }.to change { variant.description }.to("DFC-Pesto updated") + .and change { variant.name }.to("Pesto novo") .and change { variant.unit_value }.to(17) end end