module Correios::Sigep

Public Class Methods

calculate_label_number_check_digit(data = {}) click to toggle source
# File lib/correios_gem.rb, line 130
def self.calculate_label_number_check_digit(data = {})
  CalculateLabelNumberCheckDigit.new(data).request
end
cancel_shipping(data = {}) click to toggle source
# File lib/correios_gem.rb, line 134
def self.cancel_shipping(data = {})
  CancelShipping.new(data).request
end
check_card_status(data = {}) click to toggle source
# File lib/correios_gem.rb, line 138
def self.check_card_status(data = {})
  CheckCardStatus.new(data).request
end
check_service_availability(data = {}) click to toggle source
# File lib/correios_gem.rb, line 142
def self.check_service_availability(data = {})
  CheckServiceAvailability.new(data).request
end
client() click to toggle source
# File lib/auxiliars/environments.rb, line 45
def self.client
  base_client(wsdl: wsdl)
end
create_shippings(data = {}) click to toggle source
# File lib/correios_gem.rb, line 146
def self.create_shippings(data = {})
  CreateShippings.new(data).request
end
namespaces() click to toggle source
# File lib/auxiliars/environments.rb, line 49
def self.namespaces
  {
    'xmlns:soap' => 'http://schemas.xmlsoap.org/soap/envelope/',
    'xmlns:ns1' => 'http://cliente.bean.master.sigep.bsb.correios.com.br/'
  }
end
request_label_numbers(data = {}) click to toggle source
# File lib/correios_gem.rb, line 150
def self.request_label_numbers(data = {})
  RequestLabelNumbers.new(data).request
end
request_shippings_xml(data = {}) click to toggle source
# File lib/correios_gem.rb, line 154
def self.request_shippings_xml(data = {})
  RequestShippingsXML.new(data).request
end
search_available_additional_services(data = {}) click to toggle source
# File lib/correios_gem.rb, line 158
def self.search_available_additional_services(data = {})
  SearchAvailableAdditionalServices.new(data).request
end
search_customer(data = {}) click to toggle source
# File lib/correios_gem.rb, line 162
def self.search_customer(data = {})
  SearchCustomer.new(data).request
end
search_zip_code(data = {}) click to toggle source
# File lib/correios_gem.rb, line 166
def self.search_zip_code(data = {})
  SearchZipCode.new(data).request
end
shipping_xml(data) click to toggle source
# File lib/sigep/auxiliars/shipping_xml.rb, line 3
def self.shipping_xml(data)
  helper = Helper.new
  credentials = Correios.credentials
  sender = data[:sender]
  sender_address = sender[:address]
  shippings = data[:shippings]

  Nokogiri::XML::Builder.new(encoding: 'ISO-8859-1') do |xml|
    xml.correioslog do
      xml.tipo_arquivo 'Postagem'
      xml.versao_arquivo '2.3'
      xml.plp do
        xml.id_plp
        xml.valor_global
        xml.mcu_unidade_postagem
        xml.nome_unidade_postagem
        xml.cartao_postagem credentials.card
      end
      xml.remetente do
        xml.numero_contrato credentials.contract
        xml.numero_diretoria sender[:board_id]
        xml.codigo_administrativo credentials.administrative_code
        xml.nome_remetente sender[:name]
        xml.logradouro_remetente sender_address[:street]
        xml.numero_remetente sender_address[:number]
        xml.complemento_remetente sender_address[:additional]
        xml.bairro_remetente sender_address[:neighborhood]
        xml.cep_remetente sender_address[:zip_code]
        xml.cidade_remetente sender_address[:city]
        xml.uf_remetente sender_address[:state]
        xml.telefone_remetente sender[:phone]
        xml.fax_remetente sender[:fax]
        xml.email_remetente sender[:email]
      end
      xml.forma_pagamento helper.payment_method(data[:payment_method])
      shippings.each do |shipping|
        receiver = shipping[:receiver]
        receiver_address = receiver[:address]
        object = shipping[:object]
        invoice = shipping[:invoice] || {}
        additional_services = shipping[:additional_services] || []
        notes = shipping[:notes] || []

        xml.objeto_postal do
          xml.numero_etiqueta shipping[:label_number]
          xml.codigo_objeto_cliente shipping[:code]
          xml.codigo_servico_postagem shipping[:service_code]
          xml.cubagem 0
          xml.peso object[:weight]
          xml.rt1 notes[0]
          xml.rt2 notes[1]
          xml.destinatario do
            xml.nome_destinatario receiver[:name]
            xml.telefone_destinatario receiver[:phone]
            xml.celular_destinatario receiver[:cellphone]
            xml.email_destinatario receiver[:email]
            xml.logradouro_destinatario receiver_address[:street]
            xml.complemento_destinatario receiver_address[:additional]
            xml.numero_end_destinatario receiver_address[:number]
          end
          xml.nacional do
            xml.bairro_destinatario receiver_address[:neighborhood]
            xml.cidade_destinatario receiver_address[:city]
            xml.uf_destinatario receiver_address[:state]
            xml.cep_destinatario receiver_address[:zip_code]
            xml.codigo_usuario_postal
            xml.centro_custo_cliente shipping[:cost_center]
            xml.numero_nota_fiscal invoice[:number]
            xml.serie_nota_fiscal invoice[:serie]
            xml.valor_nota_fiscal invoice[:value]
            xml.natureza_nota_fiscal invoice[:kind]
            xml.descricao_objeto shipping[:description]
            xml.valor_a_cobrar shipping[:additional_value]
          end
          xml.servico_adicional do
            additional_services.each do |additional_service|
              xml.codigo_servico_adicional additional_service
            end
            xml.valor_declarado shipping[:declared_value]
          end
          xml.dimensao_objeto do
            xml.tipo_objeto helper.object_type(object[:type])
            xml.dimensao_altura object[:height] || 0
            xml.dimensao_largura object[:width] || 0
            xml.dimensao_comprimento object[:length] || 0
            xml.dimensao_diametro object[:diameter] || 0
          end
          xml.data_postagem_sara
          xml.status_processamento 0
          xml.numero_comprovante_postagem
          xml.valor_cobrado
        end
      end
    end
  end.to_xml.encode(Encoding::UTF_8)
end
track_shippings(data = {}) click to toggle source
# File lib/correios_gem.rb, line 170
def self.track_shippings(data = {})
  TrackShippings.new(data).request
end
wsdl() click to toggle source
# File lib/auxiliars/environments.rb, line 56
def self.wsdl
  if production_env?
    'https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl'
  else
    'https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl'
  end
end