@@ -138,13 +138,31 @@ func runAdd(cmd *cobra.Command, args []string) error {
138138 bill .PaymentModeID = methodID
139139 }
140140
141- // Resolve optional currency
141+ // Fetch user info for locale-aware formatting
142+ locale := "en_US"
143+ userInfo , ok := cache .LoadUserInfo ()
144+ if ! ok {
145+ userInfo , err = client .GetUserInfo ()
146+ if err == nil {
147+ _ = cache .SaveUserInfo (userInfo )
148+ }
149+ }
150+ if userInfo != nil && userInfo .Locale != "" {
151+ locale = userInfo .Locale
152+ } else if userInfo != nil && userInfo .Language != "" {
153+ locale = userInfo .Language
154+ }
155+
156+ // Resolve optional currency and convert amount
142157 if convertTo != "" {
143- currencyID , err := cache .ResolveCurrency (project , convertTo )
158+ currency , err := cache .ResolveCurrency (project , convertTo )
144159 if err != nil {
145160 return fmt .Errorf ("resolving currency: %w" , err )
146161 }
147- bill .OriginalCurrencyID = currencyID
162+ bill .OriginalCurrencyID = currency .ID
163+ bill .Amount = amount * currency .ExchangeRate
164+ origFormatter := format .NewAmountFormatter (locale , currency .Name )
165+ bill .What = fmt .Sprintf ("%s (%s)" , expenseName , origFormatter .Format (amount ))
148166 }
149167
150168 // Add optional comment
@@ -157,22 +175,7 @@ func runAdd(cmd *cobra.Command, args []string) error {
157175 return fmt .Errorf ("creating bill: %w" , err )
158176 }
159177
160- // Fetch user info for locale-aware formatting
161- locale := "en_US"
162- userInfo , ok := cache .LoadUserInfo ()
163- if ! ok {
164- userInfo , err = client .GetUserInfo ()
165- if err == nil {
166- _ = cache .SaveUserInfo (userInfo )
167- }
168- }
169- if userInfo != nil && userInfo .Locale != "" {
170- locale = userInfo .Locale
171- } else if userInfo != nil && userInfo .Language != "" {
172- locale = userInfo .Language
173- }
174-
175178 formatter := format .NewAmountFormatter (locale , project .CurrencyName )
176- _ , _ = fmt .Fprintf (cmd .OutOrStdout (), "Successfully added expense: %s (%s)\n " , expenseName , formatter .Format (amount ))
179+ _ , _ = fmt .Fprintf (cmd .OutOrStdout (), "Successfully added expense: %s (%s)\n " , expenseName , formatter .Format (bill . Amount ))
177180 return nil
178181}
0 commit comments