Exemple #1
0
    def setUp(self):
        """Create initial Headers, Accounts, an Entry & Transactions."""
        self.liability_header = create_header('liability', cat_type=2)
        self.trip_advances = create_account(
            "Trip Advances", self.liability_header, 0)
        self.store_account = create_account(
            "Local Store Credit Account", self.liability_header, 0)
        self.store = StoreAccount.objects.create(
            name='Local Store', account=self.store_account)
        self.expense_header = create_header("expenses", None, 6)
        self.expense_account = create_account(
            "expense", self.expense_header, 0, 6)

        entry_date = datetime.date(2015, 6, 11)
        self.entry = TripEntry.objects.create(
            date=entry_date, name='Testeroni', number='42',
            total_trip_advance=100, amount=50)
        self.trans1 = TripTransaction.objects.create(
            trip_entry=self.entry, account=self.expense_account, amount=25)
        self.trans2 = TripTransaction.objects.create(
            trip_entry=self.entry, account=self.expense_account, amount=25)
        self.store_trans = TripStoreTransaction.objects.create(
            trip_entry=self.entry, store=self.store,
            account=self.expense_account, amount=25
        )
Exemple #2
0
 def setUp(self):
     """Create an Asset and Liability account."""
     asset_header = create_header('Asset Header', cat_type=1)
     self.asset_account = create_account('Asset Account', asset_header, 0)
     liability_header = create_header('Liability Header')
     self.liability_account = create_account('Liability Account',
                                             liability_header, 0)
Exemple #3
0
    def test_get_profit_loss_header_totals_flipped(self):
        """
        The totals for Expenses, Cost of Goods Sold and Other Expenses should
        display the value total, not the credit/debit total.
        """
        child_header = create_header("Child Expense", self.expense_header, 6)
        gchild_account = create_account("GrandChild Expense", child_header,
                                        0, 6)
        gchild_header = create_header("Grandchild Expense", child_header, 6)
        ggchild_account = create_account("Great Grandchild Expense",
                                         gchild_header, 0, 6)

        entry = create_entry(datetime.date.today(), "test entry")
        create_transaction(entry, self.expense_account, 25)
        create_transaction(entry, gchild_account, 47)
        create_transaction(entry, ggchild_account, 82)

        start_date = datetime.date(1, 1, 1)
        stop_date = datetime.date.today()

        root_header = _get_profit_loss_header_totals(6, start_date, stop_date)
        child_header_result = root_header.descendants[0]
        gchild_header_result = child_header_result.descendants[0]

        self.assertEqual(root_header.total, -154)
        self.assertSequenceEqual(root_header.descendants, [child_header])
        self.assertEqual(child_header_result.total, -129)
        self.assertSequenceEqual(child_header_result.descendants,
                                 [gchild_header])
        self.assertEqual(gchild_header_result.total, -82)
Exemple #4
0
 def setUp(self):
     """Create an initial Account, CreditCard & some CreditCardEntries."""
     create_and_login_user(self)
     self.liability_header = create_header('liability', cat_type=2)
     self.cc_account = create_account(
         "Credit Card", self.liability_header, 0)
     self.creditcard = CreditCard.objects.create(account=self.cc_account)
     self.expense_header = create_header("expenses", None, 6)
     self.expense_account = create_account(
         "expense", self.expense_header, 0, 6)
     entry_date = datetime.date(2015, 6, 11)
     self.entry = CreditCardEntry.objects.create(
         date=entry_date, card=self.creditcard, name='test anarch',
         merchant='test merch', amount=20,
     )
     self.transaction = CreditCardTransaction.objects.create(
         creditcard_entry=self.entry, account=self.expense_account,
         amount=20,
     )
     self.older_entry = CreditCardEntry.objects.create(
         date=entry_date - datetime.timedelta(days=1), card=self.creditcard,
         name='test anarch', merchant='test merch', amount=20)
     self.older_transaction = CreditCardTransaction.objects.create(
         creditcard_entry=self.older_entry, account=self.expense_account,
         amount=20)
Exemple #5
0
    def test_get_profit_loss_header_totals(self):
        """
        The function should return a root Header with the descendants and
        total attributes.
        """
        child_header = create_header("Child Income", self.income_header, 4)
        gchild_account = create_account("GrandChild Income", child_header,
                                        0, 4)
        gchild_header = create_header("Grandchild Income", child_header, 4)
        ggchild_account = create_account("Great Grandchild Income",
                                         gchild_header, 0, 4)

        entry = create_entry(datetime.date.today(), "test entry")
        create_transaction(entry, self.income_account, 25)
        create_transaction(entry, gchild_account, 47)
        create_transaction(entry, ggchild_account, 82)

        start_date = datetime.date(1, 1, 1)
        stop_date = datetime.date.today()

        root_header = _get_profit_loss_header_totals(4, start_date, stop_date)
        child_header_result = root_header.descendants[0]
        gchild_header_result = child_header_result.descendants[0]

        self.assertEqual(root_header.total, 154)
        self.assertSequenceEqual(root_header.descendants, [child_header])
        self.assertEqual(child_header_result.total, 129)
        self.assertSequenceEqual(child_header_result.descendants,
                                 [gchild_header])
        self.assertEqual(gchild_header_result.total, 82)
Exemple #6
0
 def setUp(self):
     """Create an Asset and Liability account."""
     asset_header = create_header('Asset Header', cat_type=1)
     self.asset_account = create_account('Asset Account', asset_header, 0)
     liability_header = create_header('Liability Header')
     self.liability_account = create_account('Liability Account',
                                             liability_header, 0)
Exemple #7
0
    def test_get_profit_loss_header_totals(self):
        """
        The function should return a root Header with the descendants and
        total attributes.
        """
        child_header = create_header("Child Income", self.income_header, 4)
        gchild_account = create_account("GrandChild Income", child_header, 0,
                                        4)
        gchild_header = create_header("Grandchild Income", child_header, 4)
        ggchild_account = create_account("Great Grandchild Income",
                                         gchild_header, 0, 4)

        entry = create_entry(datetime.date.today(), "test entry")
        create_transaction(entry, self.income_account, 25)
        create_transaction(entry, gchild_account, 47)
        create_transaction(entry, ggchild_account, 82)

        start_date = datetime.date(1, 1, 1)
        stop_date = datetime.date.today()

        root_header = _get_profit_loss_header_totals(4, start_date, stop_date)
        child_header_result = root_header.descendants[0]
        gchild_header_result = child_header_result.descendants[0]

        self.assertEqual(root_header.total, 154)
        self.assertSequenceEqual(root_header.descendants, [child_header])
        self.assertEqual(child_header_result.total, 129)
        self.assertSequenceEqual(child_header_result.descendants,
                                 [gchild_header])
        self.assertEqual(gchild_header_result.total, 82)
Exemple #8
0
    def test_get_profit_loss_header_totals_flipped(self):
        """
        The totals for Expenses, Cost of Goods Sold and Other Expenses should
        display the value total, not the credit/debit total.
        """
        child_header = create_header("Child Expense", self.expense_header, 6)
        gchild_account = create_account("GrandChild Expense", child_header, 0,
                                        6)
        gchild_header = create_header("Grandchild Expense", child_header, 6)
        ggchild_account = create_account("Great Grandchild Expense",
                                         gchild_header, 0, 6)

        entry = create_entry(datetime.date.today(), "test entry")
        create_transaction(entry, self.expense_account, 25)
        create_transaction(entry, gchild_account, 47)
        create_transaction(entry, ggchild_account, 82)

        start_date = datetime.date(1, 1, 1)
        stop_date = datetime.date.today()

        root_header = _get_profit_loss_header_totals(6, start_date, stop_date)
        child_header_result = root_header.descendants[0]
        gchild_header_result = child_header_result.descendants[0]

        self.assertEqual(root_header.total, -154)
        self.assertSequenceEqual(root_header.descendants, [child_header])
        self.assertEqual(child_header_result.total, -129)
        self.assertSequenceEqual(child_header_result.descendants,
                                 [gchild_header])
        self.assertEqual(gchild_header_result.total, -82)
Exemple #9
0
 def setUp(self):
     """Create an initial Account & CreditCard."""
     self.liability_header = create_header('liability', cat_type=2)
     self.cc_account = create_account(
         "Credit Card", self.liability_header, 0)
     self.creditcard = CreditCard.objects.create(account=self.cc_account)
     self.expense_header = create_header("expenses", None, 6)
     self.expense_account = create_account(
         "expense", self.expense_header, 0, 6)
Exemple #10
0
    def test_get_profit_loss_header_totals_max_child_depth(self):
        """
        The function should only nest up to the grandchildren of the root
        header.
        """
        child_header = create_header("Child Income", self.income_header, 4)
        gchild_header = create_header("Grandchild Income", child_header, 4)
        create_header("Great Grandchild Income", gchild_header, 4)
        start_date = datetime.date(1, 1, 1)
        stop_date = datetime.date.today()

        root_header = _get_profit_loss_header_totals(4, start_date, stop_date)
        max_depth_header = root_header.descendants[0].descendants[0]

        self.assertFalse(hasattr(max_depth_header, 'descendants'))
Exemple #11
0
    def test_get_profit_loss_header_totals_max_child_depth(self):
        """
        The function should only nest up to the grandchildren of the root
        header.
        """
        child_header = create_header("Child Income", self.income_header, 4)
        gchild_header = create_header("Grandchild Income", child_header, 4)
        create_header("Great Grandchild Income", gchild_header, 4)
        start_date = datetime.date(1, 1, 1)
        stop_date = datetime.date.today()

        root_header = _get_profit_loss_header_totals(4, start_date, stop_date)
        max_depth_header = root_header.descendants[0].descendants[0]

        self.assertFalse(hasattr(max_depth_header, 'descendants'))
Exemple #12
0
 def test_get_importer_returns_imported_class(self):
     """Test that `get_importer_class` returns the correct class."""
     header = create_header('Assets')
     account = create_account('Account', header, 0, 0, True)
     bank_account = BankAccount.objects.create(
         account=account, bank=BankAccount.VCB_CSV_IMPORTER)
     self.assertEqual(bank_account.get_importer_class(), CSVImporter)
Exemple #13
0
 def setUp(self):
     """Create Headers, Accounts and an Event."""
     self.liability_header = create_header("Liability Account")
     self.liability_account = create_account("Liability Account", self.liability_header, 0)
     self.event = Event.objects.create(
         name="test", abbreviation="T", date=datetime.date.today(), city="Louisa", state="MD"
     )
Exemple #14
0
    def setUp(self):
        """Create Banks and Income/Expense Accounts."""
        create_and_login_user(self)

        self.asset_header = create_header('asset', cat_type=1)
        self.expense_header = create_header('expense', cat_type=6)
        self.income_header = create_header('income', cat_type=4)
        self.asset_account = create_account(
            'asset', self.asset_header, 0, 1, True)
        self.other_asset = create_account(
            'other asset', self.asset_header, 0, 1, True)
        self.expense_account = create_account(
            'expense', self.expense_header, 0, 6)
        self.income_account = create_account(
            'income', self.income_header, 0, 4)
        self.bank_account = BankAccount.objects.create(
            account=self.asset_account, bank=BankAccount.VCB_CSV_IMPORTER)
Exemple #15
0
 def setUp(self):
     """
     Events are tied to Transactions which require an Account.
     """
     self.asset_header = create_header("asset", cat_type=1)
     self.bank_account = create_account("bank", self.asset_header, 0, 1, True)
     self.event = Event.objects.create(
         name="test event", city="mineral", state="VA", date=datetime.date.today(), abbreviation="TE"
     )
Exemple #16
0
 def setUp(self):
     """Create a CreditCardEntry to show."""
     self.liability_header = create_header('liability', cat_type=2)
     self.cc_account = create_account(
         "Credit Card", self.liability_header, 0)
     self.creditcard = CreditCard.objects.create(account=self.cc_account)
     self.expense_header = create_header("expenses", None, 6)
     self.expense_account = create_account(
         "expense", self.expense_header, 0, 6)
     entry_date = datetime.date.today()
     self.entry = CreditCardEntry.objects.create(
         date=entry_date, card=self.creditcard, name='test anarch',
         merchant='test merch', amount=20,
     )
     self.transaction = CreditCardTransaction.objects.create(
         creditcard_entry=self.entry, account=self.expense_account,
         amount=20,
     )
 def setUp(self):
     """Create Headers, Accounts and an Event."""
     self.liability_header = create_header('Liability Account')
     self.liability_account = create_account('Liability Account',
                                             self.liability_header, 0)
     self.event = Event.objects.create(name="test",
                                       abbreviation="T",
                                       date=datetime.date.today(),
                                       city="Louisa",
                                       state="MD")
Exemple #18
0
 def setUp(self):
     """
     The report requires Income, Cost of Sales, Expense, Other Income and
     Other Expense Headers and Accounts.
     """
     self.income_header = create_header('Income Header', cat_type=4)
     self.income_account = create_account('Income Account',
                                          self.income_header, 0, 4)
     self.cos_header = create_header('Cost of Sales Header', cat_type=5)
     self.cos_account = create_account('Cost of Sales Account',
                                       self.cos_header, 0, 5)
     self.expense_header = create_header('Expense Header', cat_type=6)
     self.expense_account = create_account('Expense Account',
                                           self.expense_header, 0, 6)
     self.oincome_header = create_header('Other Income Header', cat_type=7)
     self.oincome_account = create_account('Other Income Account',
                                           self.oincome_header, 0, 7)
     self.oexpense_header = create_header('Other Expense Header',
                                          cat_type=8)
     self.oexpense_account = create_account('Other Expense Account',
                                            self.oexpense_header, 0, 8)
Exemple #19
0
 def setUp(self):
     """
     The report requires Income, Cost of Sales, Expense, Other Income and
     Other Expense Headers and Accounts.
     """
     self.income_header = create_header('Income Header', cat_type=4)
     self.income_account = create_account('Income Account',
                                          self.income_header, 0, 4)
     self.cos_header = create_header('Cost of Sales Header', cat_type=5)
     self.cos_account = create_account('Cost of Sales Account',
                                       self.cos_header, 0, 5)
     self.expense_header = create_header('Expense Header', cat_type=6)
     self.expense_account = create_account('Expense Account',
                                           self.expense_header, 0, 6)
     self.oincome_header = create_header('Other Income Header', cat_type=7)
     self.oincome_account = create_account('Other Income Account',
                                           self.oincome_header, 0, 7)
     self.oexpense_header = create_header('Other Expense Header',
                                          cat_type=8)
     self.oexpense_account = create_account('Other Expense Account',
                                            self.oexpense_header, 0, 8)
 def setUp(self):
     """
     Events are tied to Transactions which require an Account.
     """
     self.asset_header = create_header('asset', cat_type=1)
     self.bank_account = create_account('bank', self.asset_header, 0, 1,
                                        True)
     self.event = Event.objects.create(name='test event',
                                       city='mineral',
                                       state='VA',
                                       date=datetime.date.today(),
                                       abbreviation="TE")
Exemple #21
0
 def setUp(self):
     """Add some accounts and an exisiting BankReceivingEntry."""
     self.header = create_header('Initial')
     self.bank_account = create_account(
         'B Account', self.header, 0, 0, True)
     self.income_account = create_account(
         'I Account', self.header, 0, 4, False)
     self.day = datetime.date(2014, 4, 20)
     self.main_transaction = Transaction.objects.create(
         account=self.bank_account, balance_delta=50)
     self.entry = BankReceivingEntry.objects.create(
         main_transaction=self.main_transaction, date=self.day, memo="test",
         payor="payor")
     Transaction.objects.create(
         bankreceive_entry=self.entry, account=self.income_account,
         balance_delta=-50, detail="")
Exemple #22
0
 def setUp(self):
     """Create some events and transactions."""
     liability_header = create_header('Liability Account')
     liability_account = create_account('Liability Account',
                                        liability_header, 0)
     self.event1 = Event.objects.create(name="test", abbreviation="TBMD",
                                        date=datetime.date.today(),
                                        city="Baltimore", state="MD")
     self.event2 = Event.objects.create(name="test", abbreviation="TRVA",
                                        date=datetime.date.today(),
                                        city="Richmond", state="VA")
     entry = create_entry(datetime.date.today(), 'test memo')
     Transaction.objects.create(journal_entry=entry,
                                account=liability_account,
                                balance_delta=25, event=self.event1)
     Transaction.objects.create(journal_entry=entry,
                                account=liability_account,
                                balance_delta=-15, event=self.event2)
Exemple #23
0
 def setUp(self):
     """Add some accounts and an exisiting BankSpendingEntry."""
     self.header = create_header('Assets')
     self.bank_account = create_account(
         'B Account', self.header, 0, 0, True)
     self.wrapper_account = BankAccount.objects.create(
         account=self.bank_account,
         bank='bank_import.importers.vcb.CSVImporter')
     self.expense_account = create_account(
         'E Account', self.header, 0, 6, False)
     self.day = datetime.date(2014, 4, 20)
     self.main_transaction = Transaction.objects.create(
         account=self.bank_account, balance_delta=-50)
     self.entry = BankSpendingEntry.objects.create(
         main_transaction=self.main_transaction, date=self.day, memo="test",
         payee="payee", ach_payment=True)
     Transaction.objects.create(
         bankspend_entry=self.entry, account=self.expense_account,
         balance_delta=50, detail="")
Exemple #24
0
    def setUp(self):
        """Create an Account and an Entry of each type."""
        self.header = create_header('Assets')
        self.account = create_account('Account', self.header, 0, 0, True)
        self.bank_account = BankAccount.objects.create(account=self.account)
        self.day = datetime.date(2014, 4, 20)

        self.deposit_transfer = Transaction.objects.create(
            account=self.account, balance_delta=-30, date=self.day)
        self.withdrawal_transfer = Transaction.objects.create(
            account=self.account, balance_delta=30, date=self.day)
        self.deposit_transaction = Transaction.objects.create(
            account=self.account, balance_delta=-20)
        self.deposit = BankReceivingEntry.objects.create(
            main_transaction=self.deposit_transaction,
            memo='deposit memo', payor='payor', date=self.day)
        self.withdrawal_transaction = Transaction.objects.create(
            account=self.account, balance_delta=20)
        self.withdrawal = BankSpendingEntry.objects.create(
            main_transaction=self.withdrawal_transaction, date=self.day,
            memo='withdrawal memo', payee='payee', ach_payment=True)
Exemple #25
0
 def setUp(self):
     """Create some events and transactions."""
     liability_header = create_header('Liability Account')
     liability_account = create_account('Liability Account',
                                        liability_header, 0)
     self.event1 = Event.objects.create(name="test",
                                        abbreviation="TBMD",
                                        date=datetime.date.today(),
                                        city="Baltimore",
                                        state="MD")
     self.event2 = Event.objects.create(name="test",
                                        abbreviation="TRVA",
                                        date=datetime.date.today(),
                                        city="Richmond",
                                        state="VA")
     entry = create_entry(datetime.date.today(), 'test memo')
     Transaction.objects.create(journal_entry=entry,
                                account=liability_account,
                                balance_delta=25,
                                event=self.event1)
     Transaction.objects.create(journal_entry=entry,
                                account=liability_account,
                                balance_delta=-15,
                                event=self.event2)
Exemple #26
0
 def setUp(self):
     """Create a bank account."""
     self.header = create_header('Assets')
     self.account = create_account('Account', self.header, 0, 0, True)
     self.day = datetime.date(2014, 4, 20)
 def setUp(self):
     """Create an Entry for the Receipt."""
     self.header = create_header("Expense Header", None, 6)
     self.account = create_account("Darmok's Stipend", self.header, 0, 6)
     self.entry = create_entry(datetime.date.today(), 'Unique New York')
Exemple #28
0
 def setUp(self):
     """Create an initial Account."""
     self.header = create_header("Credit Cards", None, 2)
     self.account = create_account("Darmok's CC", self.header, 0, 2)