Excel export functionality for yields

This commit is contained in:
2024-05-18 23:00:40 +03:00
parent 94c2da00ac
commit 34f6d44b98
7 changed files with 80 additions and 2 deletions

View File

@@ -31,7 +31,7 @@ defmodule OsuuspuutarhaWeb.Exports.OrderView do
def report_generator(orders) do
rows = orders |> Enum.map(&row(&1))
%Workbook{sheets: [%Sheet{name: "Orders", rows: [@header] ++ rows}]}
%Workbook{sheets: [%Sheet{name: "Tilaukset", rows: [@header] ++ rows}]}
end
def row(order) do

View File

@@ -0,0 +1,34 @@
defmodule OsuuspuutarhaWeb.Exports.YieldView do
use OsuuspuutarhaWeb, :view
alias Elixlsx.{Workbook, Sheet}
alias Osuuspuutarha.Harvest.Parser
@header [
"Määrä",
"Päivämäärä",
"Kasvi",
"Yksikkö"
]
def render("korjuut.xlsx", %{yields: yields}) do
report_generator(yields)
|> Elixlsx.write_to_memory("korjuut.xlsx")
|> elem(1)
|> elem(1)
end
def report_generator(yields) do
rows = yields |> Enum.map(&row(&1))
%Workbook{sheets: [%Sheet{name: "Korjuut", rows: [@header] ++ rows}]}
end
def row(yield) do
[
Decimal.to_string(yield.amount),
Parser.parse_date(yield.date),
Parser.parse_plant(yield.plant),
Parser.parse_unit(yield.unit)
]
end
end