brewman/brewman/brewman/views/reports/unposted.py

53 lines
2.1 KiB
Python
Raw Normal View History

import datetime
from sqlalchemy.orm import joinedload_all
from pyramid.view import view_config
from brewman.helpers import Literal
from brewman.models.voucher import Voucher, Journal, VoucherType
from brewman.views.transactions import get_edit_url
@view_config(request_method='GET', route_name='unposted', renderer='brewman:templates/reports/unposted.pt')
def unposted(request):
body = Literal(build_report(request))
return {'title': 'Day Book - Hops n Grains',
'pageclass': "page-blogpost page-sidebar-right",
'pagecontentclass': "page-content grid_12",
'page_header': '',
'body': body}
def build_report(request):
editUrl = ''
body = ''
query = Voucher.query().options(joinedload_all(Voucher.journals, Journal.ledger, innerjoin=True))\
.filter(Voucher.posted == False)\
.filter(Voucher.type != VoucherType.by_name('Issue').id)\
.order_by(Voucher.date).order_by(Voucher.last_edit_date).all()
for voucher in query:
debit = 0
credit = 0
nameDebit = ""
nameCredit = ""
for journal in voucher.journals:
if journal.debit == 1:
debit += journal.amount
nameDebit += "{0} / ".format(journal.ledger.name)
else:
credit += journal.amount
nameCredit += "{0} / ".format(journal.ledger.name)
nameDebit = nameDebit[:-3]
nameCredit = nameCredit[:-3]
nameDebit = '<a href="' + get_edit_url(request, voucher) + '">' + nameDebit + '</a>'
nameCredit = '<a href="' + get_edit_url(request, voucher) + '">' + nameCredit + '</a>'
body += '<tr class="Voucher" id="{0}"><td class="Date">{1}</td><td class="VoucherType">{2}</td>'\
'<td class="NameDebit">{3}</td><td class="Debit right">\u20B9 {4:.2f}</td><td class="NameCredit">{5}'\
'</td><td class="Credit right">\u20B9 {6:.2f}</td><td class="Narration">{7}</td></tr>'.format(
str(voucher.id), voucher.date.strftime('%d-%b-%Y'), VoucherType.by_id(voucher.type).name, nameDebit, debit,
nameCredit, credit, voucher.narration)
return body