I take it you're using types for this? Should be quite straight forward, if so - assuming I'm understanding what you want, exactly. :)
Create a GIVE type and a TAKE type with the required fields, then have a linked list of GIVE/TAKE types in your main object type(s), as required.
For the logic condition checks of the TAKE type, have a field in the type that specifies the condition needed - 1 for =, 2 for <, 3 for > etc. Then you can apply the required condition test using a simple Select statement.
Create a GIVE type and a TAKE type with the required fields, then have a linked list of GIVE/TAKE types in your main object type(s), as required.
For the logic condition checks of the TAKE type, have a field in the type that specifies the condition needed - 1 for =, 2 for <, 3 for > etc. Then you can apply the required condition test using a simple Select statement.