Class: Gentle::Documents::Request::RMADocument

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Document
Defined in:
lib/gentle/documents/request/rma_document.rb

Defined Under Namespace

Classes: MissingClientError, MissingOrderError

Constant Summary collapse

NAMESPACE =
"http://schemas.quietlogistics.com/V2/RMADocument.xsd"
DATEFORMAT =
"%Y%m%d_%H%M%S"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ RMADocument

Returns a new instance of RMADocument.



18
19
20
21
22
23
# File 'lib/gentle/documents/request/rma_document.rb', line 18

def initialize(options = {})
  @config          = options.fetch(:config).symbolize_keys
  @rma             = options.fetch(:rma)
  @order           = @rma.order
  @name            = "RMA_#{@rma.number}_#{date_stamp}.xml"
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



16
17
18
# File 'lib/gentle/documents/request/rma_document.rb', line 16

def config
  @config
end

#nameObject (readonly)

Returns the value of attribute name.



16
17
18
# File 'lib/gentle/documents/request/rma_document.rb', line 16

def name
  @name
end

#rmaObject (readonly)

Returns the value of attribute rma.



16
17
18
# File 'lib/gentle/documents/request/rma_document.rb', line 16

def rma
  @rma
end

Instance Method Details

#business_unitObject



58
59
60
# File 'lib/gentle/documents/request/rma_document.rb', line 58

def business_unit
  @config[:business_unit]
end

#dateObject



74
75
76
# File 'lib/gentle/documents/request/rma_document.rb', line 74

def date
  @rma.created_at
end

#date_stampObject



54
55
56
# File 'lib/gentle/documents/request/rma_document.rb', line 54

def date_stamp
  Time.now.strftime('%Y%m%d_%H%M%3N')
end

#document_numberObject



66
67
68
# File 'lib/gentle/documents/request/rma_document.rb', line 66

def document_number
  @rma.number
end

#filenameObject



78
79
80
# File 'lib/gentle/documents/request/rma_document.rb', line 78

def filename
  "#{business_unit}_#{type}_#{document_number}_#{date.strftime(DATEFORMAT)}.xml"
end

#messageObject



50
51
52
# File 'lib/gentle/documents/request/rma_document.rb', line 50

def message
  "Sent RMA #{@number} to QL"
end

#to_xmlObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/gentle/documents/request/rma_document.rb', line 25

def to_xml
  builder = Nokogiri::XML::Builder.new do |xml|
    xml.RMADocument('xmlns' => 'http://schemas.quietlogistics.com/V2/RMADocument.xsd') do
      xml.RMA('ClientID'       => @config[:client_id],
              'BusinessUnit'   => @config[:business_unit],
              'RMANumber'      => @rma.number,
              'Warehouse'      => warehouse,
              'TrackingNumber' => @rma.tracking_number) do

        @rma.returned_items.each_with_index do |returned_item, line_number|
          xml.Line('LineNo'          => line_number + 1,
                   'OrderNumber'     => @order.number,
                   'ItemNumber'      => returned_item.sku,
                   'Quantity'        => 1,
                   'SaleUOM'         => 'EA', #Each
                   'ReturnReason'    => @rma.reason.name,
                   'CustomerComment' => ''
          )
        end
      end
    end
  end
  builder.to_xml
end

#typeObject



62
63
64
# File 'lib/gentle/documents/request/rma_document.rb', line 62

def type
  'RMADocument'
end

#warehouseObject



70
71
72
# File 'lib/gentle/documents/request/rma_document.rb', line 70

def warehouse
  'Default'
end