#? @rf
Как вы менеджите мелкооптовые закупки расходников? Нужно какое-то решение которое будет пинать меня когда у меня будут подходить к концу вещи типа витаминок, которые расходуются абсолютно предсказуемо, но заказывать нужно сильно заранее их исчерпания чтобы не возникло проблем из-за тормознутого магазина/почты/таможни/контрабандиста. Такое можно наговнякать за полчаса на любимом ЯП, но вдруг уже что-то готовое есть? Бонусные очки если оно умеет из истории реального расхода предсказывать когда запас иссякнет.

@rf Наговнякал по-быстрому:

#!/usr/bin/runhaskell
import Data.Maybe
import Data.Time.Calendar.OrdinalDate
import Data.Time.Format.ISO8601

data Stock = Stock
{ name :: String
, perDay :: Double
, startingDay :: Day
, stockItems :: Word
} deriving (Show)

dayOut :: Stock -> Day
dayOut s = toEnum (fromEnum (startingDay s) + floor ((fromIntegral $ stockItems s) / (perDay s)))

runsOut :: Stock -> String
runsOut s = name s ++ " runs out at " ++ show (dayOut s)

vitA = Stock
"Vitamin A"
(1 / 3.5) -- twice a week (10kIU capsules)
(fromJust $ iso8601ParseM "2025-12-22")
(floor $ 81 / 0.6) -- 600mg brutto per capsule

vitB = Stock
"Vitamin B"
(1 / 3.5)
(fromJust $ iso8601ParseM "2025-12-22")
73

vitK = Stock
"Vitamin K"
(4 / 7) -- about once every two days (200μg tablets MK-7)
(fromJust $ iso8601ParseM "2025-12-24")
(floor $ 27 / 0.108)

main = putStr $ unlines $ map runsOut [vitA, vitB, vitK]

@L29Ah @rf Уже Hledger замечательно справляется с этим учётом, можно ему функцию для записи проводки пополнения написать, и будет отлично. С уведами в заметках будет хорошо работать

Follow

@akamar @rf Как в hledger сделать прогноз срока исчерпания запасов?

@L29Ah @rf hledger balance --budget

Указываешь в файле периодическую проводку типа

~ daily
Потребление:Витамины:B6 400 мг
Потребление:Элементы:Магний 1200 мг
Доступные -1600 мг

И тебе пишется таблица с нужными временными рамками до исчерпания остатков

@L29Ah @rf Там мануал слегка беспорядочный, но описан подробно

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.