cvsimport
[hcoop/zz_old/portal.git] / money.sig
CommitLineData
8d347a33 1signature MONEY =
2sig
3 type transaction = {id :int, descr : string, amount : real, d : string, stamp : Init.C.timestamp}
4
5 val addTransaction : string * real * string -> int
6 val lookupTransaction : int -> transaction
7 val modTransaction : transaction -> unit
8 val deleteTransaction : int -> unit
9 val listTransactions : unit -> transaction list
10 val listTransactionsLimit : int -> transaction list
11 val listUserTransactions : int -> (real * transaction) list
12 val listUserTransactionsLimit : int * int -> (real * transaction) list
13 (* Returns list of (your part, overall) pairs *)
14 val listUsers : int -> (bool * Init.user) list
15 (* List users and indicate whether they participated in a transaction *)
16
31b85852 17 val lookupHostingUsage : int -> string option
18
8d347a33 19 type charge = {trn : int, usr : int, amount : real}
20
21 val addCharge : charge -> unit
22 val listCharges : int -> charge list
23 val listChargesWithNames : int -> (string * charge) list
24
25 val clearCharges : int -> unit
f1ea3762 26 val applyCharges : int -> unit
8d347a33 27
28 val addEvenCharges : int * int list -> unit
29
30 type hosting = {trn : int, cutoff : int, cost : real, usage : string}
31 val addHostingCharges : hosting -> unit
f9d08b8c 32
33 val equalizeBalances : unit -> unit
892e3ea1 34
35 val costBase : real -> real
31b85852 36end