-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | A module to manage payroll books for Japanese companies.
--   
--   A module to manage payroll books for Japanese companies. This enable
--   to export data to tax withholding book, etc...
@package ochintin-daicho
@version 0.1.0.1


-- | This module exports core functions and types for payroll books.
module Business.OchintinDaicho

-- | Main data type to represent payroll books for a person.
data Person
Person :: Text -> Text -> (Year -> Payments) -> Person
[name] :: Person -> Text
[sex] :: Person -> Text
[payments] :: Person -> Year -> Payments
data Payment
Payment :: (Year, Month) -> Int -> Hours -> Hours -> Hours -> Hours -> Amount -> (CreditCategory -> DateTransactions) -> (DebitCategory -> Amount -> DateTransactions) -> (DebitCategory -> Amount -> DateTransactions) -> (DebitCategory -> DateTransactions) -> Payment
[_賃金計算期間] :: Payment -> (Year, Month)
[_労働日数] :: Payment -> Int
[_労働時間数] :: Payment -> Hours
[_休日労働時間数] :: Payment -> Hours
[_早出残業時間数] :: Payment -> Hours
[_深夜労働時間数] :: Payment -> Hours
[_課税支給額] :: Payment -> Amount
[_非課税支給額] :: Payment -> CreditCategory -> DateTransactions
[_控除社会保険料] :: Payment -> DebitCategory -> Amount -> DateTransactions
[_所得税額] :: Payment -> DebitCategory -> Amount -> DateTransactions
[_その他控除] :: Payment -> DebitCategory -> DateTransactions

-- | A type for handling <a>Payment</a> values.
type Payments = [((Month, Date), Payment)]
data Hours

-- | A pretty printer for payroll books.
--   
--   <pre>
--   &gt;&gt;&gt; ppr taroYamada 2017
--   氏名: 山田 太郎
--   性別: 男
--   
--   == 2017年支給分 ==
--   
--   支給日: 1月10日
--   賃金計算期間: 2016年12月
--   労働日数: 13日
--   労働時間数: 65時間
--   休日労働時間数: 0時間
--   早出残業時間数: 0時間
--   深夜労働時間数: 0時間
--   課税支給額: 250000円
--   控除社会保険料: 36000円
--   社会保険料等控除の金額: 214000円
--   所得税額: 5000円
--   非課税支給額: 3000円
--   その他控除: 5000円
--   --&gt; 実支払額: 207000円
--   
--   支給日: 2月10日
--   賃金計算期間: 2017年1月
--   労働日数: 12日
--   労働時間数: 60時間
--   休日労働時間数: 0時間
--   早出残業時間数: 0時間
--   深夜労働時間数: 0時間
--   課税支給額: 250000円
--   控除社会保険料: 36000円
--   社会保険料等控除の金額: 214000円
--   所得税額: 5000円
--   非課税支給額: 4000円
--   その他控除: 5000円
--   --&gt; 実支払額: 208000円
--   </pre>
ppr :: Person -> Year -> IO ()

-- | <pre>
--   &gt;&gt;&gt; :{
--   Business.Bookkeeping.ppr $ toBookkeeping taroYamada 2017
--     (DebitCategory $ Category "給与手当" Expenses)
--     (CreditCategory $ Category "普通預金" Liabilities)
--   :}
--   tDay: 2017-01-10
--   tDescription: 12月度
--   tSubDescription: 立替交通費
--   tDebit: 旅費・交通費 (Expenses)
--   tCredit: 普通預金 (Liabilities)
--   tAmount: 3000
--   
--   tDay: 2017-01-10
--   tDescription: 12月度
--   tSubDescription: 健康保険料(社員負担分)
--   tDebit: 給与手当 (Expenses)
--   tCredit: 預り金 (Liabilities)
--   tAmount: 15000
--   
--   tDay: 2017-01-10
--   tDescription: 12月度
--   tSubDescription: 厚生年金(社員負担分)
--   tDebit: 給与手当 (Expenses)
--   tCredit: 預り金 (Liabilities)
--   tAmount: 20000
--   
--   tDay: 2017-01-10
--   tDescription: 12月度
--   tSubDescription: 雇用保険料(社員負担分)
--   tDebit: 給与手当 (Expenses)
--   tCredit: 預り金 (Liabilities)
--   tAmount: 1000
--   
--   tDay: 2017-01-10
--   tDescription: 12月度
--   tSubDescription: 源泉所得税
--   tDebit: 給与手当 (Expenses)
--   tCredit: 預り金 (Liabilities)
--   tAmount: 5000
--   
--   tDay: 2017-01-10
--   tDescription: 12月度
--   tSubDescription: 親睦会費
--   tDebit: 給与手当 (Expenses)
--   tCredit: 預り金 (Liabilities)
--   tAmount: 5000
--   
--   tDay: 2017-01-10
--   tDescription: 12月度
--   tSubDescription: 給与支払い
--   tDebit: 給与手当 (Expenses)
--   tCredit: 普通預金 (Liabilities)
--   tAmount: 207000
--   
--   tDay: 2017-02-10
--   tDescription: 1月度
--   tSubDescription: 立替交通費
--   tDebit: 旅費・交通費 (Expenses)
--   tCredit: 普通預金 (Liabilities)
--   tAmount: 4000
--   
--   tDay: 2017-02-10
--   tDescription: 1月度
--   tSubDescription: 健康保険料(社員負担分)
--   tDebit: 給与手当 (Expenses)
--   tCredit: 預り金 (Liabilities)
--   tAmount: 15000
--   
--   tDay: 2017-02-10
--   tDescription: 1月度
--   tSubDescription: 厚生年金(社員負担分)
--   tDebit: 給与手当 (Expenses)
--   tCredit: 預り金 (Liabilities)
--   tAmount: 20000
--   
--   tDay: 2017-02-10
--   tDescription: 1月度
--   tSubDescription: 雇用保険料(社員負担分)
--   tDebit: 給与手当 (Expenses)
--   tCredit: 預り金 (Liabilities)
--   tAmount: 1000
--   
--   tDay: 2017-02-10
--   tDescription: 1月度
--   tSubDescription: 源泉所得税
--   tDebit: 給与手当 (Expenses)
--   tCredit: 預り金 (Liabilities)
--   tAmount: 5000
--   
--   tDay: 2017-02-10
--   tDescription: 1月度
--   tSubDescription: 親睦会費
--   tDebit: 給与手当 (Expenses)
--   tCredit: 預り金 (Liabilities)
--   tAmount: 5000
--   
--   tDay: 2017-02-10
--   tDescription: 1月度
--   tSubDescription: 給与支払い
--   tDebit: 給与手当 (Expenses)
--   tCredit: 普通預金 (Liabilities)
--   tAmount: 208000
--   </pre>
toBookkeeping :: Person -> Year -> DebitCategory -> CreditCategory -> Transactions

-- | 対象年度内の課税支給額総計
--   
--   <pre>
--   &gt;&gt;&gt; _年度内課税支給金額 taroYamada 2017
--   Amount {unAmount = 500000}
--   </pre>
_年度内課税支給金額 :: Person -> Year -> Amount

-- | 対象年度内の社会保険料等控除額総計
--   
--   <pre>
--   &gt;&gt;&gt; _年度内社会保険控除額 taroYamada 2017
--   Amount {unAmount = 72000}
--   </pre>
_年度内社会保険控除額 :: Person -> Year -> Amount

-- | 対象年度内の所得税控除額総計
--   
--   <pre>
--   &gt;&gt;&gt; _年度内所得税控除額 taroYamada 2017
--   Amount {unAmount = 10000}
--   </pre>
_年度内所得税控除額 :: Person -> Year -> Amount
instance GHC.Real.Real Business.OchintinDaicho.Hours
instance GHC.Real.Integral Business.OchintinDaicho.Hours
instance GHC.Enum.Enum Business.OchintinDaicho.Hours
instance GHC.Num.Num Business.OchintinDaicho.Hours
instance GHC.Classes.Eq Business.OchintinDaicho.Hours
instance GHC.Classes.Ord Business.OchintinDaicho.Hours
instance GHC.Read.Read Business.OchintinDaicho.Hours
instance GHC.Show.Show Business.OchintinDaicho.Hours
