Class: Menard::InventorySpreadsheetGenerator
- Inherits:
-
Object
- Object
- Menard::InventorySpreadsheetGenerator
- Defined in:
- app/services/menard/inventory_spreadsheet_generator.rb
Overview
Service object: inventory spreadsheet generator.
Defined Under Namespace
Classes: Result
Constant Summary collapse
- CATALOG_ID =
Catalog id.
192- VENDOR_NUMBER =
Vendor number.
'WARML001'- HEADER_ROW =
Header row.
2- DATA_START_ROW =
Data start row.
3- DEFAULT_RESTOCK_LEAD_TIME =
Default restock lead time.
3.months
- HEADERS =
Headers.
[ 'Sku#', 'Menard Inc. Sales Unit', 'Model#', 'Item Description', 'Qty on Hand', 'Date when back in stock (YYYY/MM/DD)', 'QTY to be available when back in stock', 'Status', 'Discontinued Date (YYYY/MM/DD)' ].freeze
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(catalog: nil, output_path: nil) ⇒ InventorySpreadsheetGenerator
constructor
A new instance of InventorySpreadsheetGenerator.
Constructor Details
#initialize(catalog: nil, output_path: nil) ⇒ InventorySpreadsheetGenerator
Returns a new instance of InventorySpreadsheetGenerator.
38 39 40 41 |
# File 'app/services/menard/inventory_spreadsheet_generator.rb', line 38 def initialize(catalog: nil, output_path: nil) @catalog = catalog || Catalog.find(CATALOG_ID) @output_path = output_path || default_output_path end |
Instance Method Details
#call ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'app/services/menard/inventory_spreadsheet_generator.rb', line 43 def call catalog_items = eligible_catalog_items.to_a workbook = build_workbook(catalog_items) workbook.write(@output_path) Result.new( file_path: @output_path, catalog_items_count: catalog_items.size, messages: (catalog_items) ) rescue StandardError => e Rails.logger.error("[Menard::InventorySpreadsheetGenerator] #{e.class}: #{e.}") Result.new(file_path: nil, catalog_items_count: 0, messages: [e.]) end |