module PickpointApi::ApiActions

Public Instance Methods

city_list() click to toggle source

Получение списка городов

# File lib/pickpoint_api/api_actions.rb, line 188
def city_list
  parameterless_request(:city_list)
end
courier(data) click to toggle source

Вызов курьера

# File lib/pickpoint_api/api_actions.rb, line 130
def courier(data)
  ensure_session_state
  data = data.clone
  data['SessionId'] = @session_id
  res = json_request(:courier, data)
  check_for_error(res, 'ErrorMessage', CourierError)
end
courier_cancel(courier_order_number) click to toggle source

Отмена вызова курьера

# File lib/pickpoint_api/api_actions.rb, line 139
def courier_cancel(courier_order_number)
  ensure_session_state
  data = attach_session_id('OrderNumber', courier_order_number)
  res = json_request(:courier_cancel, data)
  res['Canceled']
end
create_sending(data) click to toggle source

Регистрация одноместных отправлений

# File lib/pickpoint_api/api_actions.rb, line 39
def create_sending(data)
  sendings_request(:create_sending, data)
end
create_shipment(data) click to toggle source

Регистрация многоместных отправлений

# File lib/pickpoint_api/api_actions.rb, line 44
def create_shipment(data)
  sendings_request(:create_shipment, data)
end
enclose_info(barcode) click to toggle source

Получение информации по вложимому

# File lib/pickpoint_api/api_actions.rb, line 223
def enclose_info(barcode)
  ensure_session_state
  data = attach_session_id('Barcode', barcode)
  res = json_request(:enclose_info, data)
  check_for_error(res, 'Error')
end
get_delivery_cost(options) click to toggle source

Получение стоимости доставки

# File lib/pickpoint_api/api_actions.rb, line 106
def get_delivery_cost(options)
  ensure_session_state

  if !options[:invoice_ids].nil? && !options[:sender_invoice_numbers].nil?
    raise ApiError 'Only :invoice_ids or :sender_invoice_numbers parameter should be specified'
  end

  data = if !options[:invoice_ids].nil?
    options[:invoice_ids].map do |invoice_id|
      {'InvoiceNumber' => invoice_id}
    end
  elsif !options[:sender_invoice_numbers].nil?
    options[:invoice_ids].map do |invoice_id|
      {'SenderInvoiceNumber' => invoice_id}
    end
  else
    raise ApiError 'Either :invoice_ids or :sender_invoice_numbers parameter should be specified'
  end

  data = attach_session_id('Sendings', data)
  json_request(:get_delivery_cost, data)
end
get_invoices_change_state(state, date_from, date_to = DateTime.now) click to toggle source

Получение списка отправлений, прошедших этап (статус)

# File lib/pickpoint_api/api_actions.rb, line 241
def get_invoices_change_state(state, date_from, date_to = DateTime.now)
  ensure_session_state
  data = {
    'SessionId' => @session_id,
    'DateFrom' => date_from.strftime(DATE_FORMAT),
    'DateTo' => date_to.strftime(DATE_FORMAT),
    'State' => state
  }
  json_request(:get_invoices_change_state, data)
end
get_money_return_order(ikn, document_number, date_from, date_to = DateTime.now) click to toggle source

Получение акта возврата денег

# File lib/pickpoint_api/api_actions.rb, line 213
def get_money_return_order(ikn, document_number, date_from, date_to = DateTime.now)
  return_request(:get_money_return_order, ikn, document_number, date_from, date_to)
end
get_product_return_order(ikn, document_number, date_from, date_to = DateTime.now) click to toggle source

Получение акта возврата товара

# File lib/pickpoint_api/api_actions.rb, line 218
def get_product_return_order(ikn, document_number, date_from, date_to = DateTime.now)
  return_request(:get_product_return_order, ikn, document_number, date_from, date_to)
end
get_reestr(invoice_id = nil, reestr_number = nil) click to toggle source

Получение созданного реестра в PDF

# File lib/pickpoint_api/api_actions.rb, line 161
def get_reestr(invoice_id = nil, reestr_number = nil)
  ensure_session_state
  data = {
    'SessionId' => @session_id
  }
  data['InvoiceNumber'] = invoice_id if !invoice_id.nil?
  data['ReestrNumber'] = reestr_number if !reestr_number.nil?
  response = execute_action(:get_reestr, data)

  if response.start_with?('Error')
    raise ApiError, response
  else
    return response
  end
end
get_return_invoices_list(date_from, date_to = DateTime.now) click to toggle source

Получение списка возвратных отправлений

# File lib/pickpoint_api/api_actions.rb, line 84
def get_return_invoices_list(date_from, date_to = DateTime.now)
  ensure_session_state
  data = {
    'SessionId' => @session_id,
    'DateFrom' => date_from.strftime(DATE_FORMAT),
    'DateTo' => date_to.strftime(DATE_FORMAT)
  }
  res = json_request(:get_return_invoice_list, data)
  check_for_error(res, 'Error')
end
get_states() click to toggle source

Получение справочника статусов отправления

# File lib/pickpoint_api/api_actions.rb, line 236
def get_states
  parameterless_request(:get_states)
end
get_zone(city, pt = nil) click to toggle source

Получение информации по зонам

# File lib/pickpoint_api/api_actions.rb, line 198
def get_zone(city, pt = nil)
  ensure_session_state
  data = {
    'SessionId' => @session_id,
    'FromCity' => city
  }

  if !pt.nil?
    data['ToPT'] = pt
  end

  json_request(:get_zone, data)
end
login(login, password) click to toggle source

Начало сессии

# File lib/pickpoint_api/api_actions.rb, line 10
def login(login, password)
  ensure_session_state(:new)
  data = {'Login' => login, 'Password' => password}
  response = json_request(:login, data)
  check_for_error(response, 'ErrorMessage', LoginError) do
    @state = :error
  end

  @session_id = response['SessionId']
  @state = :started
  nil
end
logout() click to toggle source

Завершение сессии

# File lib/pickpoint_api/api_actions.rb, line 24
def logout
  ensure_session_state
  data = {'SessionId' => @session_id}
  response = json_request(:logout, data)

  if response['Success'] == true
    @state = :closed
    @session_id = nil
  else
    @state = :error
    raise LogoutError
  end
end
make_label(invoice_id) click to toggle source

Формирование этикеток в PDF

# File lib/pickpoint_api/api_actions.rb, line 178
def make_label(invoice_id)
  request_by_invoice_ids(invoice_id, :make_label)
end
make_reestr(invoice_id) click to toggle source

Формирование реестра по списку отправлений в PDF

# File lib/pickpoint_api/api_actions.rb, line 147
def make_reestr(invoice_id)
  request_by_invoice_ids(invoice_id, :make_reestr)
end
make_reestr_number(invoice_ids) click to toggle source

Формирование реестра (по списку отправлений)

# File lib/pickpoint_api/api_actions.rb, line 152
def make_reestr_number(invoice_ids)
  ensure_session_state
  response = request_by_invoice_ids(invoice_ids, :make_reestr_number)
  res = JSON.parse(response)
  check_for_error(res, 'ErrorMessage')
  res['Numbers']
end
make_return(options) click to toggle source

Создание отправления клиентского возврата

# File lib/pickpoint_api/api_actions.rb, line 49
def make_return(options)
  ensure_session_state

  if !options[:invoice_id].nil? && !options[:sender_invoice_number].nil?
    raise ApiError 'Only :invoice_id or :sender_invoice_number parameter should be specified'
  end

  data = {
    'SessionId' => @session_id
  }

  if !options[:invoice_id].nil?
    data['InvoiceNumber'] = options[:invoice_id]
  elsif !options[:sender_invoice_number].nil?
    data['GCInvoiceNumber'] = options[:sender_invoice_number]
  else
    raise ApiError 'Either :invoice_id or :sender_invoice_number parameter should be specified'
  end

  response = json_request(:make_return, data)

  errors = res.select do |x|
    !x['Error'].nil? && !x['Error'].empty?
  end.map do |x|
    x['Error']
  end

  if !errors.empty
    raise ApiError errors.join(';')
  end

  res
end
make_zlabel(invoice_id) click to toggle source

Формирование этикеток в PDF для принтера Zebra

# File lib/pickpoint_api/api_actions.rb, line 183
def make_zlabel(invoice_id)
  request_by_invoice_ids(invoice_id, :make_zlabel)
end
postamat_list() click to toggle source

Получение списка терминалов

# File lib/pickpoint_api/api_actions.rb, line 193
def postamat_list
  parameterless_request(:postamat_list)
end
sending_info(invoice_id = nil, sender_invoice_number = nil) click to toggle source

Получение информации по отправлению

# File lib/pickpoint_api/api_actions.rb, line 101
def sending_info(invoice_id = nil, sender_invoice_number = nil)
  request_by_invoice_id(:sending_info, invoice_id, sender_invoice_number)
end
track_sending(invoice_id = nil, sender_invoice_number = nil) click to toggle source

Мониторинг отправления

# File lib/pickpoint_api/api_actions.rb, line 96
def track_sending(invoice_id = nil, sender_invoice_number = nil)
  request_by_invoice_id(:track_sending, invoice_id, sender_invoice_number)
end
track_sendings(invoice_id) click to toggle source

Получение истории по списку отправлений

# File lib/pickpoint_api/api_actions.rb, line 231
def track_sendings(invoice_id)
  request_by_invoice_ids(invoice_id, :track_sendings)
end