module PickpointApi::ApiActions
Public Instance Methods
Получение списка городов
# File lib/pickpoint_api/api_actions.rb, line 188 def city_list parameterless_request(:city_list) end
Вызов курьера
# 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
Отмена вызова курьера
# 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
Регистрация одноместных отправлений
# File lib/pickpoint_api/api_actions.rb, line 39 def create_sending(data) sendings_request(:create_sending, data) end
Регистрация многоместных отправлений
# File lib/pickpoint_api/api_actions.rb, line 44 def create_shipment(data) sendings_request(:create_shipment, data) end
Получение информации по вложимому
# 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
Получение стоимости доставки
# 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
Получение списка отправлений, прошедших этап (статус)
# 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
Получение акта возврата денег
# 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
Получение акта возврата товара
# 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
Получение созданного реестра в 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
Получение списка возвратных отправлений
# 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
Получение справочника статусов отправления
# File lib/pickpoint_api/api_actions.rb, line 236 def get_states parameterless_request(:get_states) end
Получение информации по зонам
# 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
Начало сессии
# 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
Завершение сессии
# 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
Формирование этикеток в PDF
# File lib/pickpoint_api/api_actions.rb, line 178 def make_label(invoice_id) request_by_invoice_ids(invoice_id, :make_label) end
Формирование реестра по списку отправлений в PDF
# File lib/pickpoint_api/api_actions.rb, line 147 def make_reestr(invoice_id) request_by_invoice_ids(invoice_id, :make_reestr) end
Формирование реестра (по списку отправлений)
# 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
Создание отправления клиентского возврата
# 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
Формирование этикеток в 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
Получение списка терминалов
# File lib/pickpoint_api/api_actions.rb, line 193 def postamat_list parameterless_request(:postamat_list) end
Получение информации по отправлению
# 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
Мониторинг отправления
# 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
Получение истории по списку отправлений
# File lib/pickpoint_api/api_actions.rb, line 231 def track_sendings(invoice_id) request_by_invoice_ids(invoice_id, :track_sendings) end