The unified diff between revisions [e486b309..] and [03ca3690..] is displayed below. It can also be downloaded as a raw diff.

#
#
# add_file "LedgerRender.py"
#  content [9bb5e6d1d1ca2220c3a78742fa1ddd6d8d5a41b2]
#
# patch "Chart.py"
#  from [a5bd9d90d2992bfe97ff659060552c03b16a601e]
#    to [f40230407c2d6613ec4ed64e4e1f7b6ed64971c5]
#
# patch "Ledger.py"
#  from [0fcc36eac7feebc59f13145025da178c2651d74a]
#    to [23629828fee27d5f87d85ec77e02d38c953ca73d]
#
# patch "LedgerInterface.py"
#  from [c9b676e23d8228655145ecfd73656a7e6dde34a2]
#    to [0439893104f2227c22efaec01960a16abd409ed1]
#
# patch "SQLTemplates.py"
#  from [0a461ad0a72d4dfa518a60f9e14413741325f344]
#    to [c4dadf9f30344910eb76980de1f5a9ca7f51e1ed]
#
============================================================
--- LedgerRender.py	9bb5e6d1d1ca2220c3a78742fa1ddd6d8d5a41b2
+++ LedgerRender.py	9bb5e6d1d1ca2220c3a78742fa1ddd6d8d5a41b2
@@ -0,0 +1,15 @@
+#!/usr/bin/env python
+
+# LedgerRender.py
+#
+
+class LedgerRender:
+	def __init__(self, ledger):
+		self.ledger = ledger
+
+	#def _render_single_text(self, ledger):
+	#	print self.ledger.details(ledger)
+#
+#	def render(self, format, ledgers):
+#		for l in ledgers:
+#			self._render_single_text(l)
============================================================
--- Chart.py	a5bd9d90d2992bfe97ff659060552c03b16a601e
+++ Chart.py	f40230407c2d6613ec4ed64e4e1f7b6ed64971c5
@@ -12,6 +12,7 @@ class Chart:
 		if not system.connected:
 			raise ConnectionStatusError

+		self.system = system
 		self.store = system.store

 	def create(self, details, debitbalance, info):
============================================================
--- Ledger.py	0fcc36eac7feebc59f13145025da178c2651d74a
+++ Ledger.py	23629828fee27d5f87d85ec77e02d38c953ca73d
@@ -3,7 +3,41 @@
 # ledger.py
 #

+from sqlite3 import dbapi2 as sqlite
+from SQLTemplates import *
+from Error import *
+
 class Ledger:
-	def __init__(self):
-		pass
+	def __init__(self,chart):
+		system = chart.system

+		if not system.connected:
+			raise ConnectionStatusError
+
+		self.store = system.store
+
+	def balance(self, ledgerid):
+		db = self.store.db
+		cursor = db.cursor()
+
+
+		# FIXME for each journal affecting ledgerid
+		# retrieve and sum
+
+		#cursor.execute(chart_sql['ledgerdetails'] % (ledgerid,))
+
+		#return cursor.fetchone()
+		return ledgerid
+
+	def printledger(self, ledgerid):
+		db = self.store.db
+		cursor = db.cursor()
+
+		# FIXME for each journal affecting ledgerid
+		# print ledger line
+
+		#cursor.execute(chart_sql['ledgerdetails'] % (ledgerid,))
+
+		#return cursor.fetchone()
+
+		return ledgerid
============================================================
--- LedgerInterface.py	c9b676e23d8228655145ecfd73656a7e6dde34a2
+++ LedgerInterface.py	0439893104f2227c22efaec01960a16abd409ed1
@@ -5,6 +5,10 @@ import sys
 # Utilities associated with command line UI

 import sys
+from Chart import Chart
+from Ledger import Ledger
+from LedgerRender import LedgerRender
+
 from CLIParser import CLIParser, CLIParserError
 from States import *

@@ -49,13 +53,29 @@ class LedgerInterface:
 		print "3 command not understood: %s" % (self.input,)

 	def balance(self, state, event, params, v, vstatus):
-		print "status!!!!!"
+		args = self.input.split()
+		print "filename is %s" % (args[1],)

+		c = Chart(v)
+		l = Ledger(c)
+
+		r = LedgerRender(l)
+
+		print l.balance(args[1])
+
 		vstatus.change_state(STATE_LEDGER_IDLE, 1)

 	def printledger(self, state, event, params, v, vstatus):
-		print "status!!!!!"
+		args = self.input.split()
+		print "filename is %s" % (args[1],)

+		c = Chart(v)
+		l = Ledger(c)
+
+		r = LedgerRender(l)
+
+		print l.printledger(args[1])
+
 		vstatus.change_state(STATE_LEDGER_IDLE, 1)


============================================================
--- SQLTemplates.py	0a461ad0a72d4dfa518a60f9e14413741325f344
+++ SQLTemplates.py	c4dadf9f30344910eb76980de1f5a9ca7f51e1ed
@@ -6,8 +6,8 @@ create_fourstar_db['CHART'] = "CREATE TA
 create_fourstar_db = {}

 create_fourstar_db['CHART'] = "CREATE TABLE CHART ( accountid integer primary key autoincrement, details text, debitbalance boolean, info text)"
+create_fourstar_db['LEDGER'] = "CREATE TABLE LEDGER ( postid integer primary key autoincrement, accountid integer, date text, explanation text, journalref integer, debit float, credit float, balancedebit float, balancecredit float)"
 create_fourstar_db['JOURNAL'] = "CREATE TABLE JOURNAL ( journalid integer primary key autoincrement, date text explanation text, postref integer, accountid integer, debit float, credit float)"
-create_fourstar_db['LEDGER'] = "CREATE TABLE LEDGER ( postid integer primary key autoincrement, accountid integer, date text, explanation text, journalref integer, debit float, credit float, balancedebit float, balancecredit float)"


 chart_sql = {}