def aggregate(cls): banktranlist = models.BANKTRANLIST( models.STMTTRN(trntype="CHECK", dtposted=datetime(2005, 10, 4, tzinfo=UTC), trnamt=Decimal("-200.00"), fitid="00002", checknum="1000"), models.STMTTRN(trntype="ATM", dtposted=datetime(2005, 10, 20, tzinfo=UTC), dtuser=datetime(2005, 10, 20, tzinfo=UTC), trnamt=Decimal("-300.00"), fitid="00003"), dtstart=datetime(2005, 10, 1, tzinfo=UTC), dtend=datetime(2005, 10, 28, tzinfo=UTC)) balargs = { "balamt": Decimal("200.29"), "dtasof": datetime(2005, 10, 29, 11, 20, tzinfo=UTC) } stmttrnrs = models.STMTTRNRS(trnuid="1001", status=STATUS, stmtrs=models.STMTRS( curdef="USD", bankacctfrom=BANKACCTFROM, banktranlist=banktranlist, ledgerbal=models.LEDGERBAL(**balargs), availbal=models.AVAILBAL(**balargs))) return models.OFX(signonmsgsrsv1=SIGNONMSGSRSV1, bankmsgsrsv1=models.BANKMSGSRSV1(stmttrnrs))
def aggregate(cls): invtranlist = models.INVTRANLIST( models.BUYSTOCK( invbuy=models.INVBUY( invtran=models.INVTRAN( fitid="23321", dttrade=datetime(2005, 8, 25, tzinfo=UTC), dtsettle=datetime(2005, 8, 28, tzinfo=UTC), ), secid=STOCK_SECID, units=Decimal("100"), unitprice=Decimal("50.00"), commission=Decimal("25.00"), total=Decimal("-5025.00"), subacctsec="CASH", subacctfund="CASH", ), buytype="BUY", ), models.INVBANKTRAN( stmttrn=models.STMTTRN( trntype="CREDIT", dtposted=datetime(2005, 8, 25, tzinfo=UTC), dtuser=datetime(2005, 8, 25, tzinfo=UTC), trnamt=Decimal("1000.00"), fitid="12345", name="Customer deposit", memo="Your check #1034", ), subacctfund="CASH", ), dtstart=datetime(2005, 8, 24, 13, 1, 5, tzinfo=UTC), dtend=datetime(2005, 8, 28, 10, 10, tzinfo=UTC), ) invposlist = models.INVPOSLIST( models.POSSTOCK( invpos=models.INVPOS( secid=STOCK_SECID, heldinacct="CASH", postype="LONG", units=Decimal("200"), unitprice=Decimal("49.50"), mktval=Decimal("9900.00"), dtpriceasof=datetime(2005, 8, 27, 1, tzinfo=UTC), memo="Next dividend payable Sept 1", ) ), models.POSOPT( invpos=models.INVPOS( secid=OPT_SECID, heldinacct="CASH", postype="LONG", units=Decimal("1"), unitprice=Decimal("5"), mktval=Decimal("500"), dtpriceasof=datetime(2005, 8, 27, 1, tzinfo=UTC), memo="Option is in the money", ) ), ) invbal = models.INVBAL( availcash=Decimal("200.00"), marginbalance=Decimal("-50.00"), shortbalance=Decimal("0"), ballist=models.BALLIST( models.BAL( name="Margin Interest Rate", desc="Current interest rate on margin balances", baltype="PERCENT", value=Decimal("7.85"), dtasof=datetime(2005, 8, 27, 1, tzinfo=UTC), ) ), ) invoolist = models.INVOOLIST( models.OOBUYSTOCK( oo=models.OO( fitid="23321", secid=models.SECID(uniqueid="666678578", uniqueidtype="CUSIP"), dtplaced=datetime(2005, 6, 24, 3, 15, 5, tzinfo=UTC), units=Decimal("100"), subacct="CASH", duration="GOODTILCANCEL", restriction="NONE", limitprice=Decimal("50.00"), ), buytype="BUY", ) ) rs = models.INVSTMTRS( dtasof=datetime(2005, 8, 27, 1, tzinfo=UTC), curdef="USD", invacctfrom=INVACCTFROM, invtranlist=invtranlist, invposlist=invposlist, invbal=invbal, invoolist=invoolist, ) seclist = models.SECLIST( models.STOCKINFO( secinfo=models.SECINFO( secid=STOCK_SECID, secname="Acme Development, Inc.", ticker="ACME", fiid="1024", ), yld=Decimal("10"), assetclass="SMALLSTOCK", ), models.STOCKINFO( secinfo=models.SECINFO( secid=models.SECID(uniqueid="666678578", uniqueidtype="CUSIP"), secname="Hackson Unlimited, Inc.", ticker="HACK", fiid="1027", ), yld=Decimal("17"), assetclass="SMALLSTOCK", ), models.OPTINFO( secinfo=models.SECINFO( secid=OPT_SECID, secname="Lucky Airlines Jan 97 Put", ticker="LUAXX", fiid="0013", ), opttype="PUT", strikeprice=Decimal("35.00"), dtexpire=datetime(2005, 1, 21, tzinfo=UTC), shperctrct=Decimal("100"), secid=models.SECID(uniqueid="000342200", uniqueidtype="CUSIP"), assetclass="LARGESTOCK", ), ) return models.OFX( signonmsgsrsv1=SIGNONMSGSRSV1, invstmtmsgsrsv1=models.INVSTMTMSGSRSV1( models.INVSTMTTRNRS(trnuid="1001", status=STATUS, invstmtrs=rs) ), seclistmsgsrsv1=models.SECLISTMSGSRSV1(seclist), )