public void transferMoneyBetweenAccounts(String tranferMoneyToAccount, Account moneyFromAccount, Money transferValue) {
try {
Account accountToTransferMoney = (Account) system.query(new GetAccountByName(tranferMoneyToAccount));
system.executeAndQuery(new AddAndReturnOperation(accountToTransferMoney, ((BillCategory) system.query(new GetBillCategory("Transfer�ncia entre contas"))).getId(), new GDDate(), "Tranfer�ncia da conta: "+ moneyFromAccount.getName(), transferValue.getFloatValue(), new PaymentMoney()));
system.execute(new AccountAmountControl(accountToTransferMoney, transferValue, new Money(0)));
system.executeAndQuery(new AddAndReturnOperation(moneyFromAccount, ((BillCategory) system.query(new GetBillCategory("Transfer�ncia entre contas "))).getId(), new GDDate(), "Tranfer�ncia para conta: "+ accountToTransferMoney.getName(), transferValue.getFloatValue(), new PaymentMoney()));
system.execute(new AccountAmountControl(moneyFromAccount, new Money(0), transferValue));
} catch (TransactionDateException e) {
MessageBox box = new MessageBox(GDWindowControl.getInstance().getMainScreen().getShell(), IMessageProvider.INFORMATION);
box.setText("Data Inv�lida");
box.setMessage(MessageConstants.TRANSACTION_DATE_EXCEPTION);
box.open();