34 lines
844 B
Haskell
34 lines
844 B
Haskell
|
module Handler.Payout where
|
||
|
|
||
|
import Import
|
||
|
import Handler.Common
|
||
|
import qualified Data.Text as T
|
||
|
|
||
|
data Payment = Payment
|
||
|
{ paymentAmount :: Int
|
||
|
, paymentDesc :: T.Text
|
||
|
}
|
||
|
|
||
|
getPayoutR :: Handler Html
|
||
|
getPayoutR = do
|
||
|
(payoutWidget, enctype) <- generateFormPost payoutForm
|
||
|
defaultLayout $ do
|
||
|
$(widgetFile "payout")
|
||
|
|
||
|
postPayoutR :: Handler Html
|
||
|
postPayoutR = do
|
||
|
((res, _), _) <- runFormPost payoutForm
|
||
|
case res of
|
||
|
FormSuccess payment -> do
|
||
|
updateCashier (- (paymentAmount payment)) ("Auszahlung: " `T.append` paymentDesc payment)
|
||
|
setMessage "Betrag ausgezahlt"
|
||
|
redirect $ HomeR
|
||
|
_ -> do
|
||
|
setMessage "Auszahlung nicht möglich"
|
||
|
redirect $ JournalR
|
||
|
|
||
|
payoutForm :: Form Payment
|
||
|
payoutForm = renderDivs $ Payment
|
||
|
<$> areq currencyField "Betrag" Nothing
|
||
|
<*> areq textField "Beschreibung" Nothing
|