Skip to content

Commit

Permalink
Merge pull request #4702 from sbpipb/4686_rename_report_diaper_acquis…
Browse files Browse the repository at this point in the history
…ition_to_diaper

Renames diaper acquisition to diapers
  • Loading branch information
cielf authored Oct 14, 2024
2 parents 5fe25bb + 1d02634 commit 2d9f1a0
Show file tree
Hide file tree
Showing 4 changed files with 132 additions and 132 deletions.
2 changes: 1 addition & 1 deletion app/services/reports.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ class << self
# @return [Array<Reports::Report>]
def all_reports(year:, organization:)
[
Reports::AcquisitionReportService.new(year: year, organization: organization).report,
Reports::DiaperReportService.new(year: year, organization: organization).report,
Reports::WarehouseReportService.new(year: year, organization: organization).report,
Reports::AdultIncontinenceReportService.new(year: year, organization: organization).report,
Reports::PeriodSupplyReportService.new(year: year, organization: organization).report,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
module Reports
class AcquisitionReportService
class DiaperReportService
include ActionView::Helpers::NumberHelper
attr_reader :year, :organization

Expand All @@ -12,39 +12,39 @@ def initialize(year:, organization:)

# @return [Hash]
def report
@report ||= { name: 'Diaper Acquisition',
entries: {
'Disposable diapers distributed' => number_with_delimiter(total_disposable_diapers_distributed),
'Cloth diapers distributed' => number_with_delimiter(distributed_cloth_diapers),
'Average monthly disposable diapers distributed' => number_with_delimiter(monthly_disposable_diapers),
'Total product drives' => annual_drives.count,
'Disposable diapers collected from drives' => number_with_delimiter(disposable_diapers_from_drives),
'Cloth diapers collected from drives' => number_with_delimiter(cloth_diapers_from_drives),
'Money raised from product drives' => number_to_currency(money_from_drives),
'Total product drives (virtual)' => virtual_product_drives.count,
'Money raised from product drives (virtual)' => number_to_currency(money_from_virtual_drives),
'Disposable diapers collected from drives (virtual)' => number_with_delimiter(disposable_diapers_from_virtual_drives),
'Cloth diapers collected from drives (virtual)' => number_with_delimiter(cloth_diapers_from_virtual_drives),
'Disposable diapers donated' => number_with_delimiter(donated_disposable_diapers),
'% disposable diapers donated' => "#{percent_disposable_donated.round}%",
'% cloth diapers donated' => "#{percent_cloth_diapers_donated.round}%",
'Disposable diapers purchased' => number_with_delimiter(purchased_loose_disposable_diapers),
'% disposable diapers purchased' => "#{percent_disposable_diapers_purchased.round}%",
'% cloth diapers purchased' => "#{percent_cloth_diapers_purchased.round}%",
'Money spent purchasing diapers' => number_to_currency(money_spent_on_diapers),
'Purchased from' => purchased_from,
'Vendors diapers purchased through' => vendors_purchased_from
} }
@report ||= {name: "Diapers",
entries: {
"Disposable diapers distributed" => number_with_delimiter(total_disposable_diapers_distributed),
"Cloth diapers distributed" => number_with_delimiter(distributed_cloth_diapers),
"Average monthly disposable diapers distributed" => number_with_delimiter(monthly_disposable_diapers),
"Total product drives" => annual_drives.count,
"Disposable diapers collected from drives" => number_with_delimiter(disposable_diapers_from_drives),
"Cloth diapers collected from drives" => number_with_delimiter(cloth_diapers_from_drives),
"Money raised from product drives" => number_to_currency(money_from_drives),
"Total product drives (virtual)" => virtual_product_drives.count,
"Money raised from product drives (virtual)" => number_to_currency(money_from_virtual_drives),
"Disposable diapers collected from drives (virtual)" => number_with_delimiter(disposable_diapers_from_virtual_drives),
"Cloth diapers collected from drives (virtual)" => number_with_delimiter(cloth_diapers_from_virtual_drives),
"Disposable diapers donated" => number_with_delimiter(donated_disposable_diapers),
"% disposable diapers donated" => "#{percent_disposable_donated.round}%",
"% cloth diapers donated" => "#{percent_cloth_diapers_donated.round}%",
"Disposable diapers purchased" => number_with_delimiter(purchased_loose_disposable_diapers),
"% disposable diapers purchased" => "#{percent_disposable_diapers_purchased.round}%",
"% cloth diapers purchased" => "#{percent_cloth_diapers_purchased.round}%",
"Money spent purchasing diapers" => number_to_currency(money_spent_on_diapers),
"Purchased from" => purchased_from,
"Vendors diapers purchased through" => vendors_purchased_from
}}
end

# @return [Integer]
def distributed_loose_disposable_diapers
@distributed_loose_disposable_diapers ||= organization
.distributions
.for_year(year)
.joins(line_items: :item)
.merge(Item.disposable)
.sum('line_items.quantity')
.distributions
.for_year(year)
.joins(line_items: :item)
.merge(Item.disposable)
.sum("line_items.quantity")
end

def distributed_disposable_diapers_from_kits
Expand All @@ -71,7 +71,7 @@ def distributed_disposable_diapers_from_kits

result = ActiveRecord::Base.connection.execute(sanitized_sql)

result.first['sum'].to_i
result.first["sum"].to_i
end

def total_disposable_diapers_distributed
Expand All @@ -80,11 +80,11 @@ def total_disposable_diapers_distributed

def distributed_cloth_diapers
@distributed_cloth_diapers ||= organization
.distributions
.for_year(year)
.joins(line_items: :item)
.merge(Item.cloth_diapers)
.sum('line_items.quantity')
.distributions
.for_year(year)
.joins(line_items: :item)
.merge(Item.cloth_diapers)
.sum("line_items.quantity")
end

# @return [Integer]
Expand All @@ -100,12 +100,12 @@ def annual_drives
# @return [Integer]
def disposable_diapers_from_drives
@disposable_diapers_from_drives ||=
annual_drives.joins(donations: { line_items: :item }).merge(Item.disposable).sum(:quantity)
annual_drives.joins(donations: {line_items: :item}).merge(Item.disposable).sum(:quantity)
end

def cloth_diapers_from_drives
@cloth_diapers_from_drives ||=
annual_drives.joins(donations: { line_items: :item }).merge(Item.cloth_diapers).sum(:quantity)
annual_drives.joins(donations: {line_items: :item}).merge(Item.cloth_diapers).sum(:quantity)
end

# @return [Float]
Expand All @@ -126,17 +126,17 @@ def money_from_virtual_drives
# @return [Integer]
def disposable_diapers_from_virtual_drives
@disposable_diapers_from_virtual_drives ||= virtual_product_drives
.joins(donations: { line_items: :item })
.merge(Item.disposable)
.sum(:quantity)
.joins(donations: {line_items: :item})
.merge(Item.disposable)
.sum(:quantity)
end

# @return [Integer]
def cloth_diapers_from_virtual_drives
@cloth_diapers_from_virtual_drives ||= virtual_product_drives
.joins(donations: { line_items: :item })
.merge(Item.cloth_diapers)
.sum(:quantity)
.joins(donations: {line_items: :item})
.merge(Item.cloth_diapers)
.sum(:quantity)
end

# @return [Float]
Expand Down Expand Up @@ -181,7 +181,7 @@ def purchased_from
.distinct
.pluck(:purchased_from)
.compact
.join(', ')
.join(", ")
end

# @return [String]
Expand All @@ -194,25 +194,25 @@ def vendors_purchased_from
.distinct
.pluck(:business_name)
.compact
.join(', ')
.join(", ")
end

###### HELPER METHODS ######

# @return [Integer]
def purchased_loose_disposable_diapers
@purchased_disposable_diapers ||= LineItem.joins(:item)
.merge(Item.disposable)
.where(itemizable: organization.purchases.for_year(year))
.sum(:quantity)
.merge(Item.disposable)
.where(itemizable: organization.purchases.for_year(year))
.sum(:quantity)
end

# @return [Integer]
def purchased_cloth_diapers
@purchased_cloth_diapers ||= LineItem.joins(:item)
.merge(Item.cloth_diapers)
.where(itemizable: organization.purchases.for_year(year))
.sum(:quantity)
.merge(Item.cloth_diapers)
.where(itemizable: organization.purchases.for_year(year))
.sum(:quantity)
end

# @return [Integer]
Expand All @@ -228,17 +228,17 @@ def total_cloth_diapers_acquired
# @return [Integer]
def donated_disposable_diapers
@donated_diapers ||= LineItem.joins(:item)
.merge(Item.disposable)
.where(itemizable: organization.donations.for_year(year))
.sum(:quantity)
.merge(Item.disposable)
.where(itemizable: organization.donations.for_year(year))
.sum(:quantity)
end

# @return [Integer]
def donated_cloth_diapers
@donated_cloth_diapers ||= LineItem.joins(:item)
.merge(Item.cloth_diapers)
.where(itemizable: organization.donations.for_year(year))
.sum(:quantity)
.merge(Item.cloth_diapers)
.where(itemizable: organization.donations.for_year(year))
.sum(:quantity)
end
end
end
Loading

0 comments on commit 2d9f1a0

Please sign in to comment.