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)