class TorgApi::Api::Contractor

Контрагент

Constants

DECODE_STATUS_ORDER
STATUS_ORDER

Порядок сортировки по значению поля status enum status: { orig: 0, active: 1, old: 2, inactive: 3 }

STATUS_ORDER_NUMS

Attributes

form[RW]

@return [Integer] Вид контрагента (0-ИП, 1-юр. лицо, 2-иностран., 3-физ. лицо)

fullname[RW]

@return [String] Полное наименование

id[RW]

@return [Integer] id контрагента

inn[RW]

@return [String] ИНН

is_dzo[RW]

@return [Boolean] ДЗО?

is_resident[RW]

@return [Boolean] Резидент?

is_sme[RW]

@return [Boolean] Субъект малого и среднего предпринимательства?

jsc_form_id[RW]

@return [Integer] Форма акционерного общества

kpp[RW]

@return [String] КПП

name[RW]

@return [String] Наименование

ogrn[RW]

@return [String] ОГРН

okpo[RW]

@return [String] ОКПО

oktmo[RW]

@return [String] ОКТМО

ownership[RW]

@return [String] Форма собственности

reg_date[RW]

@return [String] Дата регистрации юр. лица

sme_type_id[RW]

@return [Integer] Малое или среднее предпринимательство

status[RW]

@return [Integer] Статус записи(0-новая, 1-активная, 2-старая, 3-неактивная)

user_id[RW]

@return [Integer] ИД автора

Public Class Methods

create_from_b2b(hash) click to toggle source

Создаёт контрагента @param hash [Hash] хэш ответа веб-сервиса B2B @param user [Integer] id автора @return Contractor

# File lib/torg_api/api/contractor.rb, line 77
def create_from_b2b(hash)
  c = Contractor.new
  c.name = hash[:org_name_short].gsub('"','')
  c.fullname = hash[:org_name]
  c.inn = hash[:bank_inn]
  c.kpp = hash[:bank_kpp]
  c.ogrn = hash[:ogrn]
  c.okpo = hash[:code_okpo]
  c.ownership = extract_ownership(hash[:org_name_short])
  c.status = 0
  c.form = extract_form(hash[:bank_inn])
  c.legal_addr = hash[:jury_address]
  c.user_id = Settings.service_user[:id]
  c.is_resident = extract_resident(hash[:country])
  c.is_dzo = nil
  c.is_sme = hash[:is_smb]
  c.jsc_form_id = nil
  c.sme_type_id = nil
  c.oktmo = 0

  responce = JSON.parse(
    torg_resource["contractors"].post(
      contractor: c.to_h,
      accept: :json,
      content_type: :json,
      format: :json
    ),
    symbolize_names: true
  )
  c.id = responce[:id]
  c
end
extract_form(bank_inn) click to toggle source
# File lib/torg_api/api/contractor.rb, line 114
def extract_form(bank_inn)
  case bank_inn.size
  when 12 then "businessman"
  when 10 then "company"
  else "foreign"
  end
end
extract_ownership(org_name_short) click to toggle source
# File lib/torg_api/api/contractor.rb, line 110
def extract_ownership(org_name_short)
  org_name_short[/^([\w\-]+)/]
end
extract_resident(country) click to toggle source
# File lib/torg_api/api/contractor.rb, line 122
def extract_resident(country)
  country == 643
end
find_by_inn(inn, kpp = nil) click to toggle source

Поиск id контрагентов по ИНН @param inn [String] ИНН @return [Integer Массив id найденных контрагентов отсортированных по статусу и дате изменения

# File lib/torg_api/api/contractor.rb, line 58
def find_by_inn(inn, kpp = nil)
  responce = JSON.parse(
    torg_resource["contractors/find_by_inn"].get(
      params: { inn: inn, kpp: kpp },
      accept: :json,
      content_type: :json,
      format: :json
    ),
    symbolize_names: true,
    quirks_mode: true
  )

  responce && new(responce)
end