Example #1
0
    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))
Example #2
0
    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),
        )