module FakeBsmobil::Generator

Public Instance Methods

account(override = {}) click to toggle source
# File lib/fake_bsmobil/generator.rb, line 76
def account(override = {})
  {
      alias: '',
      description: 'CUENTA EXPANSIÓN',
      availability: '',
      owner: name,
      product: '',
      productType: '',
      entityCode: '',
      contractCode: '',
      bic: 'BSAB ESBB',
      number: account_number,
      iban: iban,
      amount: amount,
      numOwners: 0,
      isOwner: false,
      isSBPManaged: false,
      isIberSecurities: false,
      joint: '',
      mobileWarning: ''
  }.merge(override)
end
account_number() click to toggle source
# File lib/fake_bsmobil/generator.rb, line 68
def account_number
  [4, 4, 2, 10].map(&Faker::Number.method(:number)).join('-')
end
amount(amount = rand(1_000.0..10_000.0)) click to toggle source
# File lib/fake_bsmobil/generator.rb, line 54
def amount(amount = rand(1_000.0..10_000.0))
  num = ''

  thousands = amount / 1000
  if thousands > 0
    num += "#{rand(thousands)}."
  end

  num +=  '%03d' % [amount, 999].min
  num += '.' << ('%0.2f' % amount).split('.').last

  { value: num, currency: 'EUR' }
end
card_id() click to toggle source
# File lib/fake_bsmobil/generator.rb, line 46
def card_id
  "#{Faker::Number.number(7)}"
end
confirmed_card_movement() click to toggle source
# File lib/fake_bsmobil/generator.rb, line 177
def confirmed_card_movement
  city = Faker::Address.city

  concept = case %w(cajero company).sample
    when 'cajero'
      "CAJERO #{Faker::Company.name[0, 10].ljust(10, ' ')} OF.#{number(4)}".upcase
    when 'company'
      company = Faker::Company.name
      rand > 0.7 ? company.upcase : company
  end
  {
      movementNumber: number(4),
      concept: concept,
      date: Faker::Date.backward.strftime('%d-%m-%Y'),
      city: city = rand > 0.7 ? city.upcase : city,
      canSplit: false,
      amount: a = amount(rand(1..300)),
      indFracEnabled: true,
      indMov: "1",
      isTraspasable: false,
      commission: {:value => "0,00", :currency => "EUR"},
      originAmount: a,
      address: city,
      point: nil
  }
end
confirmed_card_movements(n = 10) click to toggle source
# File lib/fake_bsmobil/generator.rb, line 208
def confirmed_card_movements(n = 10)
  n.times.map { confirmed_card_movement }
end
contract_name() click to toggle source
# File lib/fake_bsmobil/generator.rb, line 19
def contract_name
  [
      Faker::Name.last_name,
      Faker::Name.first_name
  ].join(' ,').upcase
end
contract_number(length: 10) click to toggle source
# File lib/fake_bsmobil/generator.rb, line 38
def contract_number(length: 10)
  "#{Faker::Number.number(length)}"
end
debit_card(override = {}) click to toggle source
# File lib/fake_bsmobil/generator.rb, line 114
def debit_card(override = {})
  {
      bsprotect: "S",
      description: "BSCARD MASTERCARD BS",
      isMarsans: "false",
      name: name,
      productType: "TD",
      reference: "0",
      type: "OPERAC.",
      shortDescription: "BSCARD MASTERCARD BS",
      number: "5402________#{card_tail = number(4)}",
      realNumber: "5402#{number(8)}#{card_tail}",
      numcard: "TA #{number(5)}",
      isOwner: true,
      activatedLE: "P",
      codret: "",
      contractCCC: number(20),
      operativeCode: "4",
      cvv2: "   ",
      dni: "",
      entity: "",
      mail: "",
      mailChecked: "",
      phoneNumber: "",
      phoneNumberChecked: "",
      alias: "",
      expirationDate: "",
      balance: {value: "", currency: ""},
      availableBalance: {value: "", currency: ""},
      dms: "",
      indAlert: "",
      selectableIndex: "",
      canActivate: false,
      cardType: {
          background: "1",
          type: "mastercard",
          subtype: "debit",
          textColor: "#ffffff",
          iconColor: "#ffffff",
          logo: "mastercard1"
      },
      status: "active",
      availableOperations: [],
      isInternational: true,
      isInternet: true,
      isSticker: true,
      stickerCard: false,
      nfcCard: {
          isNfc: true,
          isActive: false,
          expirationDate: Faker::Date.forward.strftime('%d-%m-%y')
      },
      stickerPan: "",
      deteriorationLock: false,
      isPrepaidAnonymous: false
  }.merge(override)
end
dni() click to toggle source
# File lib/fake_bsmobil/generator.rb, line 9
def dni
  letters = ['' , 'N', 'Y']
  "#{letters.sample}#{Faker::Number.number(7)}#{letters.sample}"
end
email(name: self.name, domain: Faker::Internet.domain_name) click to toggle source
# File lib/fake_bsmobil/generator.rb, line 34
def email(name: self.name, domain: Faker::Internet.domain_name)
  [ Faker::Internet.user_name(name), domain].join('@')
end
full_account(override = {}) click to toggle source
# File lib/fake_bsmobil/generator.rb, line 99
def full_account(override = {})
  account(override).merge(
      availability: 'TOTAL',
      product: 'DV00083',
      productType: '',
      entityCode: '',
      contractCode: '',
      numOwners: 1,
      isOwner: true,
      isSBPManaged: false,
      isIberSecurities: false,
      joint: 'I',
      mobileWarning: 'A')
end
iban() click to toggle source
# File lib/fake_bsmobil/generator.rb, line 72
def iban
  "ES#{Faker::Number.number(22)}"
end
movement() click to toggle source
# File lib/fake_bsmobil/generator.rb, line 173
def movement
  Movements.send(Movements.random)
end
movements(account) click to toggle source
# File lib/fake_bsmobil/generator.rb, line 216
def movements(account)
  {account: full_account(account),
   accountMovements: 10.times.map { movement },
   moreElements: true}
end
name() click to toggle source
# File lib/fake_bsmobil/generator.rb, line 14
def name
  [ Faker::Name.first_name,
    Faker::Name.last_name ].join(' ').upcase
end
number(value) click to toggle source
# File lib/fake_bsmobil/generator.rb, line 50
def number(value)
  Faker::Number.number(value)
end
person_number() click to toggle source
# File lib/fake_bsmobil/generator.rb, line 42
def person_number
  "#{Faker::Number.number(7)}"
end
phone_number(prefix: '+34') click to toggle source
# File lib/fake_bsmobil/generator.rb, line 26
def phone_number(prefix: '+34')
  "#{prefix}#{Faker::Number.number(9)}"
end
sex() click to toggle source
# File lib/fake_bsmobil/generator.rb, line 30
def sex
  %w(H M).sample
end
unconfirmed_card_movement() click to toggle source
# File lib/fake_bsmobil/generator.rb, line 204
def unconfirmed_card_movement
  confirmed_card_movement.merge(movementNumber: '')
end
unconfirmed_card_movements(n = 10) click to toggle source
# File lib/fake_bsmobil/generator.rb, line 212
def unconfirmed_card_movements(n = 10)
  n.times.map { unconfirmed_card_movement }
end