module Magelex::AccountNumber

Public Class Methods

for(bill, tax_kind) click to toggle source

Get account number for :incorrect_tax, :total_0, :total_7 or :total_19

# File lib/magelex/lexware_account.rb, line 19
def self.for(bill, tax_kind)
  if tax_kind == :total_0
    return for_0 bill
  elsif tax_kind == :total_7
    return for_7 bill
  elsif tax_kind == :total_19
    return for_19 bill
  elsif tax_kind == :incorrect_tax
    return for_incorrect_tax bill
  elsif tax_kind == :discount_7
    return for_discount_7 bill
  elsif tax_kind == :discount_19
    return for_discount_19 bill
  else
    # its not a tax kind anymore, its a posten type
    raise "unknown tax_kind (#{tax_kind})"
  end
end
for_0(bill) click to toggle source
# File lib/magelex/lexware_account.rb, line 46
def self.for_0 bill
  '8120'
end
for_19(bill) click to toggle source
# File lib/magelex/lexware_account.rb, line 42
def self.for_19 bill
  bill.in_eu? ? '8315' : '8400'
end
for_7(bill) click to toggle source
# File lib/magelex/lexware_account.rb, line 38
def self.for_7 bill
  bill.in_eu? ? '8310' : '8300'
end
for_customer(bill) click to toggle source
# File lib/magelex/lexware_account.rb, line 5
def self.for_customer bill
  first_letter = bill.customer_lastname[0].upcase
  first_letter.gsub!(/[ÖÜÄ]/, 'Ä' => 'A', 'Ö' => 'O', 'Ü' => 'U')

  return 12300 if first_letter == "Y"
  return 12300 if first_letter == "Z"

  # A is 0
  ord = first_letter.ord - "A".ord# + 1
  10000 + ord * 100
end
for_discount_19(bill) click to toggle source
# File lib/magelex/lexware_account.rb, line 58
def self.for_discount_19 bill
  '8790'
end
for_discount_7(bill) click to toggle source
# File lib/magelex/lexware_account.rb, line 54
def self.for_discount_7 bill
  '8780'
end
for_incorrect_tax(bill) click to toggle source
# File lib/magelex/lexware_account.rb, line 50
def self.for_incorrect_tax bill
  '1783'
end