Class: Shipping::SpeedeeManifestGenerator

Inherits:
BaseService
  • Object
show all
Defined in:
app/services/shipping/speedee_manifest_generator.rb

Defined Under Namespace

Classes: Result

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from BaseService

#log_debug, #log_error, #log_info, #log_warning, #logger, #options, #tagged_logger

Constructor Details

#initialize(options = {}) ⇒ SpeedeeManifestGenerator

Returns a new instance of SpeedeeManifestGenerator.



9
10
11
# File 'app/services/shipping/speedee_manifest_generator.rb', line 9

def initialize(options={})
  @renderer = PdfRenderer.new
end

Instance Attribute Details

#rendererObject (readonly)

Returns the value of attribute renderer.



7
8
9
# File 'app/services/shipping/speedee_manifest_generator.rb', line 7

def renderer
  @renderer
end

Instance Method Details

#process(store, options = {}) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/services/shipping/speedee_manifest_generator.rb', line 13

def process(store, options = {})
  success = false
  pdf = nil
  pdf_file_name = nil
  csv = nil
  csv_file_name = nil
  shipments = Shipment.where(delivery_id: Delivery.with_shipment_carrier("SpeedeeDelivery").pending_manifest_completion.by_store_id(store.id).pluck(:id)).label_complete.order(:id)
  res = SpeedeeManifestShipment.create_entries_from_shipments_and_transmit_csv(shipments)
  message = res[:message]
  if res[:success]
    success = true
    speedee_manifest = res[:speedee_manifest]
    summary_result = Pdf::Document::SpeedeeSummary.call(store, speedee_manifest)
    summary_pdf_upload = Upload.uploadify_from_data(file_name: summary_result.pdf_file_name, data: summary_result.pdf, category: 'summary_pdf', resource: speedee_manifest)
    Result.new(success: success, message: message, pdf: summary_result.pdf, pdf_file_name: summary_result.pdf_file_name, csv: csv, csv_file_name: csv_file_name, summary_pdf_upload: summary_pdf_upload)
  else
    Result.new(success: success, message: message, pdf: nil, pdf_file_name: nil, csv: csv, csv_file_name: csv_file_name, summary_pdf_upload: nil)
  end
end