On 7/14/09, Richard Sherman <
rsherman315@hotmail.com> wrote:
> First I'm new to drools and secondly where I'm working we're using version
> 4.0.7.
>
> I have a list of accounts and each account contains a list of transactions.
> I wish to accumulate charge transactions and compare them to an accumulation
> of payment transactions for a given time period (such as the last month).
> And it gets slightly more awkward in that if a payment transaction is of a
> certain type it needs to be converted from a 4 weekly figure to a monthly
> figure ( using / 4 / 7 * 365 / 12). I've tried to use structures as follows
> but they are causing the then part of the rule never to fire.
>
> rule "Account in arrears"
> salience 10
> no-loop
> when
> $acc : Account( // balance between £500 and £1000
> accountBalanceInPence >= 50000 &&
> accountBalanceInPence <= 100000
> )
>
> $s : MessageInfo( accountNumber == $acc.accountNumber )
>
> Number($charges : intValue) from
> accumulate(
> (Transaction(
> transactionDate > oneMonthAgo &&
> amountInPence > 0 &&
> $value : amountInPence)
> from $acc.transactions),
> sum($value)
> )
>
> Number($adjustment : intValue) from
> accumulate(
> (Transaction(
> transactionDate > oneMonthAgo &&
> amountInPence < 0 &&
> transactionCode == "Type 1" &&
> $value : amountInPence)
> from $acc.transactions),
> sum(($value / 4 / 7 * 365 / 12) - $value)
> )
>
>
> Number( intValue > ($charges + $adjustment)) from
> accumulate(
> (RentTransaction
> (transactionDate > oneMonthAgo
> $value : amountInPence)
> from $acc.transactions),
> sum($value)
> )
>
> then
> $s.setMessage( "Account in arrears" );
> update($s); // flag update
> end
>
> Thanks
> Richard
>
> ________________________________
> Beyond Hotmail - see what else you can do with Windows Live. Find out more.