def transfer_funds(row: TRANSFERFUND, old_row: TRANSFERFUND, logic_row: LogicRow): if logic_row.ins_upd_dlt == "ins" or True: # logic engine fills parents for insert logic_row.log("Transfer from source to target") fromCustNum = row.FromCustNum toCustNum = row.ToCustNum acctNum = row.FromAcct trans_date = datetime.datetime(2020, 10, 1) transferAmt = row.TransferAmt transID = row.TransId # need to lookup the From Acct to see if it is checking or savings - that way we can reverse the flow deposit = models.SAVINGSTRANS(TransId=transID, CustNum=toCustNum, AcctNum=acctNum, DepositAmt=transferAmt, WithdrawlAmt=0, TransDate=trans_date) logic_row.insert("Deposit to savings", deposit) withdrawl = models.CHECKINGTRANS(TransId=transID, CustNum=fromCustNum, AcctNum=acctNum, DepositAmt=0, WithdrawlAmt=transferAmt, TransDate=trans_date) logic_row.insert("Withdraw from CHECKINGTRANS", withdrawl)
from banking.tests import setup_db # careful - this must follow fix-path, above setup_db() import banking.db.models as models # must follow required_path fix from logic_bank.exec_row_logic.logic_row import LogicRow from banking.logic import session # opens db, activates logic listener <-- pre_cust = session.query(models.CUSTOMER).filter(models.CUSTOMER.CustNum == 1).one() session.expunge(pre_cust) """ ********* Customer Account Deposit Checking Setup - Deposit $100 to CHECKINGTRANS ********* """ trans_date = datetime(2020, 10, 1) deposit = models.CHECKINGTRANS(TransId=1, CustNum=1, AcctNum=1, DepositAmt=100, WithdrawlAmt=0, TransDate=trans_date) print("\n\nCustomer Account Deposit Checking Setup - Deposit $100 to CHECKINGTRANS ") session.add(deposit) session.commit() print("") verify_cust = session.query(models.CUSTOMER).filter(models.CUSTOMER.CustNum == 1).one() logic_row = LogicRow(row=verify_cust, old_row=pre_cust, ins_upd_dlt="*", nest_level=0, a_session=session, row_sets=None) if verify_cust.TotalBalance == 100.0: logic_row.log("Customer Account Deposit Checking Setup OK - balance is 100") assert True else: logic_row.log("Customer Account Deposit Checking Setup OK fails - balance not 100") assert False session.expunge(verify_cust)