bookkeeping 0.1.0.1 → 0.2.0.0
raw patch · 3 files changed
+34/−13 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Business.Bookkeeping: [tSubDescription] :: Transaction -> SubDescription
+ Business.Bookkeeping: instance Data.String.IsString Business.Bookkeeping.SubDescription
+ Business.Bookkeeping: instance GHC.Base.Monoid Business.Bookkeeping.SubDescription
+ Business.Bookkeeping: instance GHC.Classes.Eq Business.Bookkeeping.SubDescription
+ Business.Bookkeeping: instance GHC.Classes.Ord Business.Bookkeeping.SubDescription
+ Business.Bookkeeping: instance GHC.Read.Read Business.Bookkeeping.SubDescription
+ Business.Bookkeeping: instance GHC.Show.Show Business.Bookkeeping.SubDescription
- Business.Bookkeeping: Transaction :: Day -> Description -> DebitCategory -> CreditCategory -> Amount -> Transaction
+ Business.Bookkeeping: Transaction :: Day -> Description -> SubDescription -> DebitCategory -> CreditCategory -> Amount -> Transaction
- Business.Bookkeeping: dateTrans :: DebitCategory -> CreditCategory -> Description -> Amount -> DateTransactions
+ Business.Bookkeeping: dateTrans :: DebitCategory -> CreditCategory -> SubDescription -> Amount -> DateTransactions
Files
- README.md +3/−0
- bookkeeping.cabal +1/−1
- src/Business/Bookkeeping.hs +30/−12
README.md view
@@ -1,4 +1,7 @@ [](https://travis-ci.org/arowM/heterocephalus)+[](https://hackage.haskell.org/package/bookkeeping)+[](http://stackage.org/lts/package/bookkeeping)+[](http://stackage.org/nightly/package/bookkeeping) # Haskell-bookkeeping
bookkeeping.cabal view
@@ -1,5 +1,5 @@ name: bookkeeping-version: 0.1.0.1+version: 0.2.0.0 synopsis: A module for bookkeeping by double entry. description: A module for bookkeeping by double entry. This module provides a way to do bookkeeping programmatically.
src/Business/Bookkeeping.hs view
@@ -59,20 +59,20 @@ {- $setup >>> :{ let- advance :: CategoryName -> Description -> Amount -> DateTransactions+ advance :: CategoryName -> SubDescription -> Amount -> DateTransactions advance name = dateTrans (DebitCategory $ Category name Expenses) (CreditCategory $ Category "Deposit" Assets) sample = year 2015 $ do month 1 $ do- activity 1 "Constant expenses --" $+ activity 1 "Constant expenses" $ advance "Communication" "Mobile phone" 3000- activity 3 "Mail a contract --" $ do+ activity 3 "Mail a contract" $ do advance "Communication" "Stamp" 50 advance "Office supplies" "Envelope" 100 month 2 $- activity 1 "Constant expenses --" $+ activity 1 "Constant expenses" $ advance "Communication" "Mobile phone" 3000 :} -}@@ -96,14 +96,15 @@ dateTrans :: DebitCategory -> CreditCategory- -> Description+ -> SubDescription -> Amount -> DateTransactions-dateTrans debit credit desc amount =- modify . flip mappend . DList.singleton $ \d desc' m y ->+dateTrans debit credit subdesc amount =+ modify . flip mappend . DList.singleton $ \d desc m y -> Transaction { tDay = fromGregorian (unYear y) (unMonth m) (unDate d)- , tDescription = desc' <> " " <> desc+ , tDescription = desc+ , tSubDescription = subdesc , tDebit = debit , tCredit = credit , tAmount = amount@@ -121,25 +122,29 @@ >>> ppr sample tDay: 2015-01-01-tDescription: Constant expenses -- Mobile phone+tDescription: Constant expenses+tSubDescription: Mobile phone tDebit: Communication (Expenses) tCredit: Deposit (Assets) tAmount: 3000 <BLANKLINE> tDay: 2015-01-03-tDescription: Mail a contract -- Stamp+tDescription: Mail a contract+tSubDescription: Stamp tDebit: Communication (Expenses) tCredit: Deposit (Assets) tAmount: 50 <BLANKLINE> tDay: 2015-01-03-tDescription: Mail a contract -- Envelope+tDescription: Mail a contract+tSubDescription: Envelope tDebit: Office supplies (Expenses) tCredit: Deposit (Assets) tAmount: 100 <BLANKLINE> tDay: 2015-02-01-tDescription: Constant expenses -- Mobile phone+tDescription: Constant expenses+tSubDescription: Mobile phone tDebit: Communication (Expenses) tCredit: Deposit (Assets) tAmount: 3000@@ -153,6 +158,7 @@ T.unlines [ "tDay: " <> (T.pack . show) tDay , "tDescription: " <> unDescription tDescription+ , "tSubDescription: " <> unSubDescription tSubDescription , "tDebit: " <> (unCategoryName . cName . unDebitCategory) tDebit <> " (" <> (T.pack . show . cType . unDebitCategory) tDebit <>@@ -186,6 +192,7 @@ data Transaction = Transaction { tDay :: Day , tDescription :: Description+ , tSubDescription :: SubDescription , tDebit :: DebitCategory , tCredit :: CreditCategory , tAmount :: Amount@@ -213,6 +220,17 @@ instance Monoid Description where mempty = Description mempty mappend (Description a) (Description b) = Description $ mappend a b++newtype SubDescription = SubDescription+ { unSubDescription :: Text+ } deriving (Show, Read, Ord, Eq)++instance IsString SubDescription where+ fromString = SubDescription . fromString++instance Monoid SubDescription where+ mempty = SubDescription mempty+ mappend (SubDescription a) (SubDescription b) = SubDescription $ mappend a b newtype Amount = Amount { unAmount :: Int