lib/polish_invoicer/validator.rb in polish_invoicer-0.0.26 vs lib/polish_invoicer/validator.rb in polish_invoicer-0.0.28

- old
+ new

@@ -1,5 +1,7 @@ +# frozen_string_literal: true + module PolishInvoicer class Validator attr_reader :errors def initialize(invoice) @@ -39,11 +41,14 @@ check_blank(:payment_date, 'Termin płatności nie może być pusty') check_blank(:seller_nip, 'NIP sprzedawcy nie może być pusty') end def check_not_nil - @errors[:gross_price] = 'Konieczne jest ustawienie znacznika rodzaju ceny (netto/brutto)' if @invoice.gross_price.nil? + if @invoice.gross_price.nil? + @errors[:gross_price] = + 'Konieczne jest ustawienie znacznika rodzaju ceny (netto/brutto)' + end @errors[:paid] = 'Konieczne jest ustawienie znacznika opłacenia faktury' if @invoice.paid.nil? @errors[:currency] = 'Konieczne jest ustawienie waluty rozliczeniowej' if @invoice.currency.nil? @errors[:exchange_rate] = 'Konieczne jest podanie kursu waluty rozliczeniowej' if @invoice.exchange_rate.nil? end @@ -54,33 +59,32 @@ def check_booleans unless [true, false].include?(@invoice.gross_price) @errors[:gross_price] = 'Znacznik rodzaju ceny musi być podany jako boolean' end - unless [true, false].include?(@invoice.paid) - @errors[:paid] = 'Znacznik opłacenia faktury musi być podany jako boolean' - end + @errors[:paid] = 'Znacznik opłacenia faktury musi być podany jako boolean' unless [true, + false].include?(@invoice.paid) unless [true, false].include?(@invoice.proforma) @errors[:proforma] = 'Znacznik faktury pro-forma musi być podany jako boolean' end unless [true, false].include?(@invoice.foreign_buyer) @errors[:foreign_buyer] = 'Znacznik zagranicznego nabywcy musi być podany jako boolean' end - unless [true, false].include?(@invoice.reverse_charge) - @errors[:reverse_charge] = 'Znacznik odwrotnego obciążenia VAT musi być podany jako boolean' - end + return if [true, false].include?(@invoice.reverse_charge) + + @errors[:reverse_charge] = 'Znacznik odwrotnego obciążenia VAT musi być podany jako boolean' end def check_dates @errors[:create_date] = 'Data wystawienia musi być typu Date' unless @invoice.create_date.is_a?(Date) @errors[:trade_date] = 'Data sprzedaży musi być typu Date' unless @invoice.trade_date.is_a?(Date) @errors[:payment_date] = 'Termin płatności musi być typu Date' unless @invoice.payment_date.is_a?(Date) end def check_price if @invoice.price.is_a?(Numeric) - @errors[:price] = 'Cena musi być liczbą dodatnią' unless @invoice.price > 0 + @errors[:price] = 'Cena musi być liczbą dodatnią' unless @invoice.price.positive? else @errors[:price] = 'Cena musi być liczbą' end end @@ -88,11 +92,14 @@ return if @invoice.price_paid.nil? return if @invoice.price.nil? if @invoice.price_paid.is_a?(Numeric) @errors[:price_paid] = 'Kwota zapłacona musi być liczbą dodatnią' unless @invoice.price_paid >= 0 - @errors[:price_paid] = 'Kwota zapłacona musi być mniejsza lub równa cenie' unless @invoice.price_paid <= @invoice.price + unless @invoice.price_paid <= @invoice.price + @errors[:price_paid] = + 'Kwota zapłacona musi być mniejsza lub równa cenie' + end else @errors[:price_paid] = 'Kwota zapłacona musi być liczbą' end end @@ -107,28 +114,31 @@ end def check_proforma return unless @invoice.proforma return unless @invoice.paid + @errors[:paid] = 'Proforma nie może być opłacona' end def check_create_and_payment_date return if @errors[:create_date] return if @errors[:payment_date] return if @invoice.create_date <= @invoice.payment_date + @errors[:payment_date] = 'Termin płatności nie może być wcześniejszy niż data wystawienia' end def check_currency return if @errors[:currency] return if %w[PLN EUR USD GBP].include?(@invoice.currency) + @errors[:currency] = 'Nieznana waluta' end def check_lang return if blank?(@invoice.lang) - return if %w[pl pl_en en].include?(@invoice.lang) + return if %w[pl pl_en en es].include?(@invoice.lang) @errors[:lang] = 'Nieznany język' end def blank?(value)