From 61d58df56fc7d88e002e821eca529d9503d5b808 Mon Sep 17 00:00:00 2001 From: Mohamed ABDELLANI Date: Wed, 26 Apr 2023 10:57:57 +0100 Subject: [PATCH] fix linter issues --- app/models/invoice/data_presenter/address.rb | 45 ++++++++++-------- .../invoice/data_presenter/adjustment.rb | 39 ++++++++------- app/models/invoice/data_presenter/base.rb | 17 +++++-- .../invoice/data_presenter/bill_address.rb | 10 +++- .../data_presenter/business_address.rb | 10 +++- app/models/invoice/data_presenter/contact.rb | 10 +++- app/models/invoice/data_presenter/customer.rb | 10 +++- .../invoice/data_presenter/distributor.rb | 16 +++++-- .../invoice/data_presenter/line_item.rb | 39 ++++++++------- .../invoice/data_presenter/order_cycle.rb | 10 +++- app/models/invoice/data_presenter/payment.rb | 34 ++++++++------ .../invoice/data_presenter/payment_method.rb | 12 +++-- app/models/invoice/data_presenter/product.rb | 14 ++++-- .../invoice/data_presenter/ship_address.rb | 10 +++- .../invoice/data_presenter/shipping_method.rb | 12 +++-- app/models/invoice/data_presenter/state.rb | 10 +++- app/models/invoice/data_presenter/supplier.rb | 10 +++- app/models/invoice/data_presenter/variant.rb | 20 +++++--- .../invoice/data_presenter_attributes.rb | 2 +- app/models/spree/order.rb | 6 +-- app/serializers/invoice/address_serializer.rb | 10 ++-- .../invoice/adjustment_serializer.rb | 11 +++-- .../invoice/customer_serializer.rb | 8 +++- .../invoice/enterprise_serializer.rb | 18 ++++--- .../invoice/line_item_serializer.rb | 11 +++-- .../invoice/order_cycle_serializer.rb | 8 +++- app/serializers/invoice/order_serializer.rb | 47 ++++++++++--------- .../invoice/payment_method_serializer.rb | 8 +++- app/serializers/invoice/payment_serializer.rb | 14 ++++-- app/serializers/invoice/product_serializer.rb | 12 +++-- .../invoice/shipping_method_serializer.rb | 8 +++- app/serializers/invoice/state_serializer.rb | 8 +++- app/serializers/invoice/user_serializer.rb | 8 +++- app/serializers/invoice/variant_serializer.rb | 10 ++-- app/services/invoice_data_generator.rb | 2 + spec/factories/invoice_factory.rb | 5 +- spec/services/invoice_data_generator_spec.rb | 4 +- 37 files changed, 350 insertions(+), 178 deletions(-) diff --git a/app/models/invoice/data_presenter/address.rb b/app/models/invoice/data_presenter/address.rb index a3a980270e..c7a08add40 100644 --- a/app/models/invoice/data_presenter/address.rb +++ b/app/models/invoice/data_presenter/address.rb @@ -1,27 +1,34 @@ -class Invoice::DataPresenter::Address < Invoice::DataPresenter::Base - attributes :firstname, :lastname, :address1, :address2, :city, :zipcode, :company, :phone - attributes_with_presenter :state - invoice_generation_attributes :firstname, :lastname, :address1, :address2, :city, :zipcode, :company, :phone +# frozen_string_literal: false - def full_name - "#{firstname} #{lastname}".strip - end +class Invoice + class DataPresenter + class Address < Invoice::DataPresenter::Base + attributes :firstname, :lastname, :address1, :address2, :city, :zipcode, :company, :phone + attributes_with_presenter :state + invoice_generation_attributes :firstname, :lastname, :address1, :address2, :city, :zipcode, + :company, :phone - def address_part1 - render_address([address1, address2]) - end + def full_name + "#{firstname} #{lastname}".strip + end - def address_part2 - render_address([city, zipcode, state&.name]) - end + def address_part1 + render_address([address1, address2]) + end - def full_address - render_address([address1, address2, city, zipcode, state&.name]) - end + def address_part2 + render_address([city, zipcode, state&.name]) + end - private + def full_address + render_address([address1, address2, city, zipcode, state&.name]) + end - def render_address(address_parts) - address_parts.reject(&:blank?).join(', ') + private + + def render_address(address_parts) + address_parts.compact_blank.join(', ') + end + end end end diff --git a/app/models/invoice/data_presenter/adjustment.rb b/app/models/invoice/data_presenter/adjustment.rb index 9d2ef5e21c..245ce7c48d 100644 --- a/app/models/invoice/data_presenter/adjustment.rb +++ b/app/models/invoice/data_presenter/adjustment.rb @@ -1,20 +1,27 @@ -class Invoice::DataPresenter::Adjustment < Invoice::DataPresenter::Base - attributes :additional_tax_total, :adjustable_type, :amount, :currency, :included_tax_total, - :label - invoice_generation_attributes :additional_tax_total, :adjustable_type, :amount, :included_tax_total - invoice_update_attributes :label - def display_amount - Spree::Money.new(amount, currency: currency) - end +# frozen_string_literal: false - def display_taxes(display_zero: false) - if included_tax_total.positive? - amount = Spree::Money.new(included_tax_total, currency: currency) - I18n.t(:tax_amount_included, amount: amount) - elsif additional_tax_total.positive? - Spree::Money.new(additional_tax_total, currency: currency) - elsif display_zero - Spree::Money.new(0.00, currency: currency) +class Invoice + class DataPresenter + class Adjustment < Invoice::DataPresenter::Base + attributes :additional_tax_total, :adjustable_type, :amount, :currency, :included_tax_total, + :label + invoice_generation_attributes :additional_tax_total, :adjustable_type, :amount, + :included_tax_total + invoice_update_attributes :label + def display_amount + Spree::Money.new(amount, currency: currency) + end + + def display_taxes(display_zero: false) + if included_tax_total.positive? + amount = Spree::Money.new(included_tax_total, currency: currency) + I18n.t(:tax_amount_included, amount: amount) + elsif additional_tax_total.positive? + Spree::Money.new(additional_tax_total, currency: currency) + elsif display_zero + Spree::Money.new(0.00, currency: currency) + end + end end end end diff --git a/app/models/invoice/data_presenter/base.rb b/app/models/invoice/data_presenter/base.rb index 9aa2d186e6..83ba80cad5 100644 --- a/app/models/invoice/data_presenter/base.rb +++ b/app/models/invoice/data_presenter/base.rb @@ -1,7 +1,14 @@ -class Invoice::DataPresenter::Base - attr :data - def initialize(data) - @data = data +# frozen_string_literal: false + +class Invoice + class DataPresenter + class Base + attr :data + + def initialize(data) + @data = data + end + extend Invoice::DataPresenterAttributes + end end - extend Invoice::DataPresenterAttributes end diff --git a/app/models/invoice/data_presenter/bill_address.rb b/app/models/invoice/data_presenter/bill_address.rb index 7eb242da79..5a3e15a803 100644 --- a/app/models/invoice/data_presenter/bill_address.rb +++ b/app/models/invoice/data_presenter/bill_address.rb @@ -1,2 +1,8 @@ -class Invoice::DataPresenter::BillAddress < Invoice::DataPresenter::Address -end \ No newline at end of file +# frozen_string_literal: false + +class Invoice + class DataPresenter + class BillAddress < Invoice::DataPresenter::Address + end + end +end diff --git a/app/models/invoice/data_presenter/business_address.rb b/app/models/invoice/data_presenter/business_address.rb index 7561bfe00c..67135aaa10 100644 --- a/app/models/invoice/data_presenter/business_address.rb +++ b/app/models/invoice/data_presenter/business_address.rb @@ -1,2 +1,8 @@ -class Invoice::DataPresenter::BusinessAddress < Invoice::DataPresenter::Address -end \ No newline at end of file +# frozen_string_literal: false + +class Invoice + class DataPresenter + class BusinessAddress < Invoice::DataPresenter::Address + end + end +end diff --git a/app/models/invoice/data_presenter/contact.rb b/app/models/invoice/data_presenter/contact.rb index c239367412..65eeedf64d 100644 --- a/app/models/invoice/data_presenter/contact.rb +++ b/app/models/invoice/data_presenter/contact.rb @@ -1,3 +1,9 @@ -class Invoice::DataPresenter::Contact < Invoice::DataPresenter::Base - attributes :name, :email +# frozen_string_literal: false + +class Invoice + class DataPresenter + class Contact < Invoice::DataPresenter::Base + attributes :name, :email + end + end end diff --git a/app/models/invoice/data_presenter/customer.rb b/app/models/invoice/data_presenter/customer.rb index fbfb50502a..e6a2a0f195 100644 --- a/app/models/invoice/data_presenter/customer.rb +++ b/app/models/invoice/data_presenter/customer.rb @@ -1,3 +1,9 @@ -class Invoice::DataPresenter::Customer < Invoice::DataPresenter::Base - attributes :code, :email +# frozen_string_literal: false + +class Invoice + class DataPresenter + class Customer < Invoice::DataPresenter::Base + attributes :code, :email + end + end end diff --git a/app/models/invoice/data_presenter/distributor.rb b/app/models/invoice/data_presenter/distributor.rb index d9af10520a..a0cc2299d3 100644 --- a/app/models/invoice/data_presenter/distributor.rb +++ b/app/models/invoice/data_presenter/distributor.rb @@ -1,8 +1,14 @@ -class Invoice::DataPresenter::Distributor < Invoice::DataPresenter::Base - attributes :name, :abn, :acn, :logo_url, :display_invoice_logo, :invoice_text, :email_address - attributes_with_presenter :contact, :address, :business_address +# frozen_string_literal: false - def display_invoice_logo? - display_invoice_logo == true +class Invoice + class DataPresenter + class Distributor < Invoice::DataPresenter::Base + attributes :name, :abn, :acn, :logo_url, :display_invoice_logo, :invoice_text, :email_address + attributes_with_presenter :contact, :address, :business_address + + def display_invoice_logo? + display_invoice_logo == true + end + end end end diff --git a/app/models/invoice/data_presenter/line_item.rb b/app/models/invoice/data_presenter/line_item.rb index 778eeedb93..12fd29d0f2 100644 --- a/app/models/invoice/data_presenter/line_item.rb +++ b/app/models/invoice/data_presenter/line_item.rb @@ -1,22 +1,29 @@ -class Invoice::DataPresenter::LineItem < Invoice::DataPresenter::Base - attributes :added_tax, :currency, :included_tax, :price_with_adjustments, :quantity, :variant_id - attributes_with_presenter :variant - invoice_generation_attributes :added_tax, :included_tax, :price_with_adjustments, - :quantity, :variant_id +# frozen_string_literal: false - delegate :name_to_display, :options_text, to: :variant +class Invoice + class DataPresenter + class LineItem < Invoice::DataPresenter::Base + attributes :added_tax, :currency, :included_tax, :price_with_adjustments, :quantity, + :variant_id + attributes_with_presenter :variant + invoice_generation_attributes :added_tax, :included_tax, :price_with_adjustments, + :quantity, :variant_id - def display_amount_with_adjustments - Spree::Money.new(price_with_adjustments, currency: currency) - end + delegate :name_to_display, :options_text, to: :variant - def display_line_items_taxes(display_zero = true) - if included_tax.positive? - Spree::Money.new( included_tax, currency: currency) - elsif added_tax.positive? - Spree::Money.new( added_tax, currency: currency) - elsif display_zero - Spree::Money.new(0.00, currency: currency) + def display_amount_with_adjustments + Spree::Money.new(price_with_adjustments, currency: currency) + end + + def display_line_items_taxes(display_zero: true) + if included_tax.positive? + Spree::Money.new( included_tax, currency: currency) + elsif added_tax.positive? + Spree::Money.new( added_tax, currency: currency) + elsif display_zero + Spree::Money.new(0.00, currency: currency) + end + end end end end diff --git a/app/models/invoice/data_presenter/order_cycle.rb b/app/models/invoice/data_presenter/order_cycle.rb index ac60525547..806117d35f 100644 --- a/app/models/invoice/data_presenter/order_cycle.rb +++ b/app/models/invoice/data_presenter/order_cycle.rb @@ -1,3 +1,9 @@ -class Invoice::DataPresenter::OrderCycle < Invoice::DataPresenter::Base - attributes :name +# frozen_string_literal: false + +class Invoice + class DataPresenter + class OrderCycle < Invoice::DataPresenter::Base + attributes :name + end + end end diff --git a/app/models/invoice/data_presenter/payment.rb b/app/models/invoice/data_presenter/payment.rb index f3125521fe..cbce7dc5cd 100644 --- a/app/models/invoice/data_presenter/payment.rb +++ b/app/models/invoice/data_presenter/payment.rb @@ -1,19 +1,25 @@ -class Invoice::DataPresenter::Payment < Invoice::DataPresenter::Base - attributes :amount, :currency, :state, :payment_method_id - attributes_with_presenter :payment_method - invoice_generation_attributes :amount, :payment_method_id - invoice_update_attributes :state +# frozen_string_literal: false - def created_at - datetime = data&.[](:created_at) - datetime.present? ? Time.zone.parse(datetime) : nil - end +class Invoice + class DataPresenter + class Payment < Invoice::DataPresenter::Base + attributes :amount, :currency, :state, :payment_method_id + attributes_with_presenter :payment_method + invoice_generation_attributes :amount, :payment_method_id + invoice_update_attributes :state - def display_amount - Spree::Money.new(amount, currency: currency) - end + def created_at + datetime = data&.[](:created_at) + datetime.present? ? Time.zone.parse(datetime) : nil + end - def payment_method_name - payment_method&.name + def display_amount + Spree::Money.new(amount, currency: currency) + end + + def payment_method_name + payment_method&.name + end + end end end diff --git a/app/models/invoice/data_presenter/payment_method.rb b/app/models/invoice/data_presenter/payment_method.rb index 2361ea64ef..4eeb014443 100644 --- a/app/models/invoice/data_presenter/payment_method.rb +++ b/app/models/invoice/data_presenter/payment_method.rb @@ -1,4 +1,10 @@ -class Invoice::DataPresenter::PaymentMethod < Invoice::DataPresenter::Base - attributes :id,:name, :description - invoice_generation_attributes :id +# frozen_string_literal: false + +class Invoice + class DataPresenter + class PaymentMethod < Invoice::DataPresenter::Base + attributes :id, :name, :description + invoice_generation_attributes :id + end + end end diff --git a/app/models/invoice/data_presenter/product.rb b/app/models/invoice/data_presenter/product.rb index 008809c885..13efbeacf7 100644 --- a/app/models/invoice/data_presenter/product.rb +++ b/app/models/invoice/data_presenter/product.rb @@ -1,4 +1,10 @@ -class Invoice::DataPresenter::Product < Invoice::DataPresenter::Base - attributes :name - attributes_with_presenter :supplier -end \ No newline at end of file +# frozen_string_literal: false + +class Invoice + class DataPresenter + class Product < Invoice::DataPresenter::Base + attributes :name + attributes_with_presenter :supplier + end + end +end diff --git a/app/models/invoice/data_presenter/ship_address.rb b/app/models/invoice/data_presenter/ship_address.rb index a37fe70222..ba5549b8fe 100644 --- a/app/models/invoice/data_presenter/ship_address.rb +++ b/app/models/invoice/data_presenter/ship_address.rb @@ -1,2 +1,8 @@ -class Invoice::DataPresenter::ShipAddress < Invoice::DataPresenter::Address -end \ No newline at end of file +# frozen_string_literal: false + +class Invoice + class DataPresenter + class ShipAddress < Invoice::DataPresenter::Address + end + end +end diff --git a/app/models/invoice/data_presenter/shipping_method.rb b/app/models/invoice/data_presenter/shipping_method.rb index 8c79cd4f6e..2d9ba86015 100644 --- a/app/models/invoice/data_presenter/shipping_method.rb +++ b/app/models/invoice/data_presenter/shipping_method.rb @@ -1,4 +1,10 @@ -class Invoice::DataPresenter::ShippingMethod < Invoice::DataPresenter::Base - attributes :id, :name, :require_ship_address - invoice_generation_attributes :id +# frozen_string_literal: false + +class Invoice + class DataPresenter + class ShippingMethod < Invoice::DataPresenter::Base + attributes :id, :name, :require_ship_address + invoice_generation_attributes :id + end + end end diff --git a/app/models/invoice/data_presenter/state.rb b/app/models/invoice/data_presenter/state.rb index cdd7edaaa6..da076e9f63 100644 --- a/app/models/invoice/data_presenter/state.rb +++ b/app/models/invoice/data_presenter/state.rb @@ -1,3 +1,9 @@ -class Invoice::DataPresenter::State < Invoice::DataPresenter::Base - attributes :name +# frozen_string_literal: false + +class Invoice + class DataPresenter + class State < Invoice::DataPresenter::Base + attributes :name + end + end end diff --git a/app/models/invoice/data_presenter/supplier.rb b/app/models/invoice/data_presenter/supplier.rb index 15d38d5816..a94b367006 100644 --- a/app/models/invoice/data_presenter/supplier.rb +++ b/app/models/invoice/data_presenter/supplier.rb @@ -1,3 +1,9 @@ -class Invoice::DataPresenter::Supplier < Invoice::DataPresenter::Base - attributes :name +# frozen_string_literal: false + +class Invoice + class DataPresenter + class Supplier < Invoice::DataPresenter::Base + attributes :name + end + end end diff --git a/app/models/invoice/data_presenter/variant.rb b/app/models/invoice/data_presenter/variant.rb index 1ad46bc389..1e55ed57df 100644 --- a/app/models/invoice/data_presenter/variant.rb +++ b/app/models/invoice/data_presenter/variant.rb @@ -1,10 +1,16 @@ -class Invoice::DataPresenter::Variant < Invoice::DataPresenter::Base - attributes :id, :display_name, :options_text - attributes_with_presenter :product +# frozen_string_literal: false - def name_to_display - return product.name if display_name.blank? +class Invoice + class DataPresenter + class Variant < Invoice::DataPresenter::Base + attributes :id, :display_name, :options_text + attributes_with_presenter :product - display_name + def name_to_display + return product.name if display_name.blank? + + display_name + end + end end -end \ No newline at end of file +end diff --git a/app/models/invoice/data_presenter_attributes.rb b/app/models/invoice/data_presenter_attributes.rb index c6ecc38518..476e9dbbf8 100644 --- a/app/models/invoice/data_presenter_attributes.rb +++ b/app/models/invoice/data_presenter_attributes.rb @@ -6,7 +6,7 @@ class Invoice def attributes(*attributes, prefix: nil) attributes.each do |attribute| - define_method([prefix, attribute].reject(&:blank?).join("_")) do + define_method([prefix, attribute].compact_blank.join("_")) do data&.[](attribute) end end diff --git a/app/models/spree/order.rb b/app/models/spree/order.rb index f08ecad087..5ec94ba9cd 100644 --- a/app/models/spree/order.rb +++ b/app/models/spree/order.rb @@ -597,9 +597,9 @@ module Spree def current_state_invoice Invoice.new( - order: self, - data: serialize_for_invoice, - date: Time.now.to_date, + order: self, + data: serialize_for_invoice, + date: Time.zone.today, number: invoices.count + 1 ) end diff --git a/app/serializers/invoice/address_serializer.rb b/app/serializers/invoice/address_serializer.rb index 40653f1b61..3b56477908 100644 --- a/app/serializers/invoice/address_serializer.rb +++ b/app/serializers/invoice/address_serializer.rb @@ -1,4 +1,8 @@ -class Invoice::AddressSerializer < ActiveModel::Serializer - attributes :firstname, :lastname, :address1, :address2, :city, :zipcode, :phone, :company - has_one :state, serializer: Invoice::StateSerializer +# frozen_string_literal: false + +class Invoice + class AddressSerializer < ActiveModel::Serializer + attributes :firstname, :lastname, :address1, :address2, :city, :zipcode, :phone, :company + has_one :state, serializer: Invoice::StateSerializer + end end diff --git a/app/serializers/invoice/adjustment_serializer.rb b/app/serializers/invoice/adjustment_serializer.rb index ba250d474f..4ca16b3c8d 100644 --- a/app/serializers/invoice/adjustment_serializer.rb +++ b/app/serializers/invoice/adjustment_serializer.rb @@ -1,3 +1,8 @@ -class Invoice::AdjustmentSerializer < ActiveModel::Serializer - attributes :adjustable_type, :label, :included_tax_total,:additional_tax_total, :amount, :currency -end \ No newline at end of file +# frozen_string_literal: false + +class Invoice + class AdjustmentSerializer < ActiveModel::Serializer + attributes :adjustable_type, :label, :included_tax_total, :additional_tax_total, :amount, + :currency + end +end diff --git a/app/serializers/invoice/customer_serializer.rb b/app/serializers/invoice/customer_serializer.rb index 1f4062278c..1ec003c40d 100644 --- a/app/serializers/invoice/customer_serializer.rb +++ b/app/serializers/invoice/customer_serializer.rb @@ -1,3 +1,7 @@ -class Invoice::CustomerSerializer < ActiveModel::Serializer - attributes :code, :email +# frozen_string_literal: false + +class Invoice + class CustomerSerializer < ActiveModel::Serializer + attributes :code, :email + end end diff --git a/app/serializers/invoice/enterprise_serializer.rb b/app/serializers/invoice/enterprise_serializer.rb index fc64c8777a..54b064fa7d 100644 --- a/app/serializers/invoice/enterprise_serializer.rb +++ b/app/serializers/invoice/enterprise_serializer.rb @@ -1,9 +1,13 @@ -class Invoice::EnterpriseSerializer < ActiveModel::Serializer - attributes :name, :abn, :acn, :invoice_text, :email_address, :display_invoice_logo, :logo_url - has_one :contact, serializer: Invoice::UserSerializer - has_one :business_address, serializer: Invoice::AddressSerializer - has_one :address, serializer: Invoice::AddressSerializer - def logo_url - object.logo_url(:small) +# frozen_string_literal: false + +class Invoice + class EnterpriseSerializer < ActiveModel::Serializer + attributes :name, :abn, :acn, :invoice_text, :email_address, :display_invoice_logo, :logo_url + has_one :contact, serializer: Invoice::UserSerializer + has_one :business_address, serializer: Invoice::AddressSerializer + has_one :address, serializer: Invoice::AddressSerializer + def logo_url + object.logo_url(:small) + end end end diff --git a/app/serializers/invoice/line_item_serializer.rb b/app/serializers/invoice/line_item_serializer.rb index b69c0df96c..6b215298b8 100644 --- a/app/serializers/invoice/line_item_serializer.rb +++ b/app/serializers/invoice/line_item_serializer.rb @@ -1,4 +1,9 @@ -class Invoice::LineItemSerializer < ActiveModel::Serializer - attributes :id, :added_tax, :currency, :included_tax, :price_with_adjustments, :quantity, :variant_id - has_one :variant, serializer: Invoice::VariantSerializer +# frozen_string_literal: false + +class Invoice + class LineItemSerializer < ActiveModel::Serializer + attributes :id, :added_tax, :currency, :included_tax, :price_with_adjustments, :quantity, + :variant_id + has_one :variant, serializer: Invoice::VariantSerializer + end end diff --git a/app/serializers/invoice/order_cycle_serializer.rb b/app/serializers/invoice/order_cycle_serializer.rb index 71a5e9b953..18a03aaa75 100644 --- a/app/serializers/invoice/order_cycle_serializer.rb +++ b/app/serializers/invoice/order_cycle_serializer.rb @@ -1,3 +1,7 @@ -class Invoice::OrderCycleSerializer < ActiveModel::Serializer - attributes :name +# frozen_string_literal: false + +class Invoice + class OrderCycleSerializer < ActiveModel::Serializer + attributes :name + end end diff --git a/app/serializers/invoice/order_serializer.rb b/app/serializers/invoice/order_serializer.rb index 7e4ae40ac7..e6be725ecd 100644 --- a/app/serializers/invoice/order_serializer.rb +++ b/app/serializers/invoice/order_serializer.rb @@ -1,27 +1,30 @@ -class Invoice::OrderSerializer < ActiveModel::Serializer - attributes :number, :special_instructions, :note, :payment_state, :total, :payment_total, :state, - :currency, :additional_tax_total, :included_tax_total, :completed_at, :has_taxes_included, - :shipping_method_id - has_one :order_cycle, serializer: Invoice::OrderCycleSerializer - has_one :customer, serializer: Invoice::CustomerSerializer - has_one :distributor, serializer: Invoice::EnterpriseSerializer - has_one :bill_address, serializer: Invoice::AddressSerializer - has_one :shipping_method, serializer: Invoice::ShippingMethodSerializer - has_one :ship_address, serializer: Invoice::AddressSerializer - has_many :sorted_line_items, serializer: Invoice::LineItemSerializer - has_many :sorted_line_items, serializer: Invoice::LineItemSerializer - has_many :payments, serializer: Invoice::PaymentSerializer - has_many :all_eligible_adjustments, serializer: Invoice::AdjustmentSerializer +# frozen_string_literal: false - def all_eligible_adjustments - object.all_adjustments.eligible.where.not(originator_type: 'Spree::TaxRate') - end +class Invoice + class OrderSerializer < ActiveModel::Serializer + attributes :number, :special_instructions, :note, :payment_state, :total, :payment_total, + :state, :currency, :additional_tax_total, :included_tax_total, :completed_at, + :has_taxes_included, :shipping_method_id + has_one :order_cycle, serializer: Invoice::OrderCycleSerializer + has_one :customer, serializer: Invoice::CustomerSerializer + has_one :distributor, serializer: Invoice::EnterpriseSerializer + has_one :bill_address, serializer: Invoice::AddressSerializer + has_one :shipping_method, serializer: Invoice::ShippingMethodSerializer + has_one :ship_address, serializer: Invoice::AddressSerializer + has_many :sorted_line_items, serializer: Invoice::LineItemSerializer + has_many :payments, serializer: Invoice::PaymentSerializer + has_many :all_eligible_adjustments, serializer: Invoice::AdjustmentSerializer - def completed_at - object.completed_at.to_s - end + def all_eligible_adjustments + object.all_adjustments.eligible.where.not(originator_type: 'Spree::TaxRate') + end - def shipping_method_id - object.shipping_method&.id + def completed_at + object.completed_at.to_s + end + + def shipping_method_id + object.shipping_method&.id + end end end diff --git a/app/serializers/invoice/payment_method_serializer.rb b/app/serializers/invoice/payment_method_serializer.rb index 8fee4a859e..2af24e0a6e 100644 --- a/app/serializers/invoice/payment_method_serializer.rb +++ b/app/serializers/invoice/payment_method_serializer.rb @@ -1,3 +1,7 @@ -class Invoice::PaymentMethodSerializer < ActiveModel::Serializer - attributes :id, :name, :description +# frozen_string_literal: false + +class Invoice + class PaymentMethodSerializer < ActiveModel::Serializer + attributes :id, :name, :description + end end diff --git a/app/serializers/invoice/payment_serializer.rb b/app/serializers/invoice/payment_serializer.rb index 74ae234f45..b0c9b8f94d 100644 --- a/app/serializers/invoice/payment_serializer.rb +++ b/app/serializers/invoice/payment_serializer.rb @@ -1,8 +1,12 @@ -class Invoice::PaymentSerializer < ActiveModel::Serializer - attributes :state, :created_at, :amount, :currency, :payment_method_id - has_one :payment_method, serializer: Invoice::PaymentMethodSerializer +# frozen_string_literal: false - def created_at - object.created_at.to_s +class Invoice + class PaymentSerializer < ActiveModel::Serializer + attributes :state, :created_at, :amount, :currency, :payment_method_id + has_one :payment_method, serializer: Invoice::PaymentMethodSerializer + + def created_at + object.created_at.to_s + end end end diff --git a/app/serializers/invoice/product_serializer.rb b/app/serializers/invoice/product_serializer.rb index 143467ea96..61f5ecadd0 100644 --- a/app/serializers/invoice/product_serializer.rb +++ b/app/serializers/invoice/product_serializer.rb @@ -1,4 +1,8 @@ -class Invoice::ProductSerializer < ActiveModel::Serializer - attributes :name - has_one :supplier, serializer: Invoice::EnterpriseSerializer -end \ No newline at end of file +# frozen_string_literal: false + +class Invoice + class ProductSerializer < ActiveModel::Serializer + attributes :name + has_one :supplier, serializer: Invoice::EnterpriseSerializer + end +end diff --git a/app/serializers/invoice/shipping_method_serializer.rb b/app/serializers/invoice/shipping_method_serializer.rb index 76cd6684e0..f14555b1eb 100644 --- a/app/serializers/invoice/shipping_method_serializer.rb +++ b/app/serializers/invoice/shipping_method_serializer.rb @@ -1,3 +1,7 @@ -class Invoice::ShippingMethodSerializer < ActiveModel::Serializer - attributes :name, :require_ship_address +# frozen_string_literal: false + +class Invoice + class ShippingMethodSerializer < ActiveModel::Serializer + attributes :name, :require_ship_address + end end diff --git a/app/serializers/invoice/state_serializer.rb b/app/serializers/invoice/state_serializer.rb index 2fc552a7d2..911698eec1 100644 --- a/app/serializers/invoice/state_serializer.rb +++ b/app/serializers/invoice/state_serializer.rb @@ -1,3 +1,7 @@ -class Invoice::StateSerializer < ActiveModel::Serializer - attributes :name +# frozen_string_literal: false + +class Invoice + class StateSerializer < ActiveModel::Serializer + attributes :name + end end diff --git a/app/serializers/invoice/user_serializer.rb b/app/serializers/invoice/user_serializer.rb index a852e6979b..89f0066fa0 100644 --- a/app/serializers/invoice/user_serializer.rb +++ b/app/serializers/invoice/user_serializer.rb @@ -1,3 +1,7 @@ -class Invoice::UserSerializer < ActiveModel::Serializer - attributes :email +# frozen_string_literal: false + +class Invoice + class UserSerializer < ActiveModel::Serializer + attributes :email + end end diff --git a/app/serializers/invoice/variant_serializer.rb b/app/serializers/invoice/variant_serializer.rb index 13d96f5f31..3f0a547b96 100644 --- a/app/serializers/invoice/variant_serializer.rb +++ b/app/serializers/invoice/variant_serializer.rb @@ -1,4 +1,8 @@ -class Invoice::VariantSerializer < ActiveModel::Serializer - attributes :id, :display_name, :options_text - has_one :product, serializer: Invoice::ProductSerializer +# frozen_string_literal: false + +class Invoice + class VariantSerializer < ActiveModel::Serializer + attributes :id, :display_name, :options_text + has_one :product, serializer: Invoice::ProductSerializer + end end diff --git a/app/services/invoice_data_generator.rb b/app/services/invoice_data_generator.rb index dad8bd34d4..74a485d951 100644 --- a/app/services/invoice_data_generator.rb +++ b/app/services/invoice_data_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class InvoiceDataGenerator attr :order diff --git a/spec/factories/invoice_factory.rb b/spec/factories/invoice_factory.rb index 4d4c8bc6f7..323eb3e02c 100644 --- a/spec/factories/invoice_factory.rb +++ b/spec/factories/invoice_factory.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true FactoryBot.define do - factory :invoice, class: Invoice do - end -end \ No newline at end of file + factory :invoice, class: Invoice +end diff --git a/spec/services/invoice_data_generator_spec.rb b/spec/services/invoice_data_generator_spec.rb index 8f7eb24462..71e2abb391 100644 --- a/spec/services/invoice_data_generator_spec.rb +++ b/spec/services/invoice_data_generator_spec.rb @@ -61,7 +61,9 @@ describe InvoiceDataGenerator do old_variant_name = line_item.variant.display_name line_item.variant.update!(display_name: "NEW NAME") - expect(new_invoice_presenter.sorted_line_items.first.variant.display_name).to eq(old_variant_name) + expect( + new_invoice_presenter.sorted_line_items.first.variant.display_name + ).to eq(old_variant_name) end end