>>> "UB" == Uwe Brauer <o...@mat.ucm.es> writes:

> Hi 

> I am not sure whether this is the right place to ask this, but anyhow.


> Suppose two friends want to buy Christmas presents, but when they have
> finished, they want to have spent the same amount of money. If they
> don't a compensation must be transferred.

> Here is an example

> ** Start

> #+name: presents
> #+begin_src ledger   

> 2010/01/01 * Starting balance
>   assets:bank:savings  0
>   income:starting balances
> 2021/12/01 User1:Jacket
>   expenses:User1:Jacket  80
>   income:User1:creditcard1
> 2010/07/24 User1:Pajama
>   expenses:User1:Pajama  30
>   income:User1:creditcard1
> 2010/07/23 User2:Flowers
>   expenses:User2:Flowers  20
>   income:User2:creditcard2
> 2010/07/23 User2:ChristmasTree
>   expenses:User2:ChristmasTree  40.00
>   income:User2:creditcard2
> #+end_src

> #+RESULTS: presents
> #+begin_example

>                  170  expenses
>                  110    User1
>                   80      Jacket
>                   30      Pajama
>                   60    User2
>                   40      ChristmasTree
>                   20      Flowers
>                 -170  income
>                 -110    User1:creditcard1
>                  -60    User2:creditcard2
> --------------------
>                    0
> #+end_example

> So user1 spent 110, while  user2 spent 60

> ** Compensation manually
> So the compensation is (trivally)

> | User1 | User2 | User2-->Uwer1 |
> |-------+-------+---------------|
> |   110 |    60 |           -25 |

> #+TBLFM: $3=($2-$1)/2;f2

> Leading to 

> #+name: compensated
> #+begin_src ledger   

> 2010/01/01 * Starting balance
>   assets:bank:savings  0
>   income:starting balances
> 2021/12/01 User1:Jacket
>   expenses:User1:Jacket  80
>   income:User1:creditcard1
> 2010/07/24 User1:Pajama
>   expenses:User1:Pajama  30
>   income:User1:creditcard1
> 2010/07/23 User2:Flowers
>   expenses:User2:Flowers  20
>   income:User2:creditcard2
> 2010/07/23 User2:ChristmasTree
>   expenses:User2:ChristmasTree  40.00
>   income:User2:creditcard2
> 2010/07/23 User2:User1-Compensation
>   expenses:User2:User1-Compensation  25.00
>   expenses:User1:User1-Compensation
> #+end_src

> #+RESULTS: compensated
> #+begin_example

>                  170  expenses
>                   85    User1
>                   80      Jacket
>                   30      Pajama
>                  -25      User1-Compensation
>                   85    User2
>                   40      ChristmasTree
>                   20      Flowers
>                   25      User1-Compensation
>                 -170  income
>                 -110    User1:creditcard1
>                  -60    User2:creditcard2
> --------------------
>                    0
> #+end_example




> The question is can this be done automatically?

> By this I mean
> can
> 2010/07/23 User2:User1-Compensation
>   expenses:User2:User1-Compensation  25.00
>   expenses:User1:User1-Compensation

> Somehow be generated automatically?



The solution consists of
#+name: compensated
#+begin_src ledger   
2010/01/01 * Starting balance
  assets:bank:savings  0
  income:starting balances
2021/12/01 User1:Jacket
  expenses:User1:Jacket  80
  income:User1:creditcard1
2010/07/24 User1:Pajama
  expenses:User1:Pajama  30
  income:User1:creditcard1
2010/07/23 User2:Flowers
  expenses:User2:Flowers  20
  income:User2:creditcard2
2010/07/23 User2:ChristmasTree
  expenses:User2:ChristmasTree  40.00
  income:User2:creditcard2
2010/07/23 User2:User1-Compensation
  expenses:User2:User1-Compensation  ((110-60)*0.5)
  expenses:User1:User1-Compensation
#+end_src

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to