From 06ccc38b65f0f4da2046ac97de447cd1ad061425 Mon Sep 17 00:00:00 2001 From: Joris Date: Fri, 8 Apr 2016 09:46:34 +0200 Subject: Add total payment partition --- src/client/elm/LoggedIn/Income/View.elm | 2 +- src/client/elm/LoggedIn/Stat/View.elm | 37 ++++++++++++++++++++++----------- src/client/elm/Model/Payer.elm | 13 ++++++------ 3 files changed, 32 insertions(+), 20 deletions(-) (limited to 'src/client') diff --git a/src/client/elm/LoggedIn/Income/View.elm b/src/client/elm/LoggedIn/Income/View.elm index 9e77fde..0d6e02d 100644 --- a/src/client/elm/LoggedIn/Income/View.elm +++ b/src/client/elm/LoggedIn/Income/View.elm @@ -64,7 +64,7 @@ cumulativeIncomesView loggedData since = li [] [ text userName - , text ": " + , text " − " , text <| Format.price loggedData.conf cumulativeIncome ] ) diff --git a/src/client/elm/LoggedIn/Stat/View.elm b/src/client/elm/LoggedIn/Stat/View.elm index 6661a75..573d5bc 100644 --- a/src/client/elm/LoggedIn/Stat/View.elm +++ b/src/client/elm/LoggedIn/Stat/View.elm @@ -3,6 +3,8 @@ module LoggedIn.Stat.View ) where import Date exposing (Month) +import Dict +import String import Html exposing (..) import Html.Attributes exposing (..) @@ -17,6 +19,9 @@ import LoggedIn.View.Format as Format import LoggedIn.View.Date as Date import View.Plural exposing (plural) +import LoggedIn.View.Format as Format + +import Utils.Tuple as Tuple view : LoggedData -> Html view loggedData = @@ -40,22 +45,30 @@ paymentsDetail loggedData payments = ] , li [] - [ text (paymentsSum loggedData.conf payments) ] - , li - [] - [ text "Par utilisateur:" - , totalPayments loggedData + [ text (paymentsSum loggedData.conf payments) + , text " − " + , text <| totalPayments loggedData ] ] -totalPayments : LoggedData -> Html +totalPayments : LoggedData -> String totalPayments loggedData = - ul - [] - [ li [] [ text "Jacques: 1 300€" ] - , li [] [ text "Anne: 2 500 €" ] - ] - + String.join + ", " + ( loggedData.users + |> Dict.toList + |> List.map (Tuple.mapFst (\userId -> Payment.totalPayments (always True) userId loggedData.payments)) + |> List.sortBy fst + |> List.map (\(sum, user) -> + String.concat + [ Format.price loggedData.conf sum + , " " + , getMessage "By" loggedData.translations + , " " + , user.name + ] + ) + ) monthsDetail : LoggedData -> Html monthsDetail loggedData = diff --git a/src/client/elm/Model/Payer.elm b/src/client/elm/Model/Payer.elm index a7ce5fa..72f13b1 100644 --- a/src/client/elm/Model/Payer.elm +++ b/src/client/elm/Model/Payer.elm @@ -4,7 +4,6 @@ module Model.Payer , ExceedingPayer , getOrderedExceedingPayers , useIncomesFrom - , getPostPaymentPayer ) where import Json.Decode as Json exposing (..) @@ -29,6 +28,12 @@ type alias Payer = , incomes : List Income } +type alias PostPaymentPayer = + { preIncomePaymentSum : Int + , cumulativeIncome : Int + , ratio : Float + } + type alias ExceedingPayer = { userId : UserId , amount : Int @@ -118,12 +123,6 @@ exceedingPayersFromAmounts userAmounts = ) |> List.filter (\payer -> payer.amount > 0) -type alias PostPaymentPayer = - { preIncomePaymentSum : Int - , cumulativeIncome : Int - , ratio : Float - } - getPostPaymentPayer : Time -> Time -> Payer -> PostPaymentPayer getPostPaymentPayer currentTime since payer = let cumulativeIncome = cumulativeIncomesSince currentTime since payer.incomes -- cgit v1.2.3