lib/polish_invoicer/validator.rb in polish_invoicer-0.0.17 vs lib/polish_invoicer/validator.rb in polish_invoicer-0.0.18
- old
+ new
@@ -15,10 +15,11 @@
check_arrays
check_booleans
check_price
check_vat
check_proforma
+ check_create_and_payment_date
@errors.empty?
end
private
@@ -69,30 +70,37 @@
@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
- unless @invoice.price.is_a?(Numeric)
- @errors[:price] = 'Cena musi być liczbą'
- else
+ if @invoice.price.is_a?(Numeric)
@errors[:price] = 'Cena musi być liczbą dodatnią' unless @invoice.price > 0
+ else
+ @errors[:price] = 'Cena musi być liczbą'
end
end
def check_vat
- unless Vat.valid?(@invoice.vat)
- @errors[:vat] = 'Stawka VAT spoza listy dopuszczalnych wartości'
- else
+ if Vat.valid?(@invoice.vat)
if Vat.zw?(@invoice.vat) && blank?(@invoice.no_vat_reason)
@errors[:no_vat_reason] = 'Konieczne jest podanie podstawy prawnej zwolnienia z podatku VAT'
end
+ else
+ @errors[:vat] = 'Stawka VAT spoza listy dopuszczalnych wartości'
end
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 musi być wcześniejszy niż data wystawienia'
end
def blank?(value)
value.to_s.strip == ''
end