2014-04-29 10:08:44 +00:00
|
|
|
import pkg_resources
|
|
|
|
from pyramid.response import FileResponse
|
2012-05-01 21:40:01 +00:00
|
|
|
from pyramid.view import view_config
|
2018-05-25 13:49:00 +00:00
|
|
|
from sqlalchemy.orm import joinedload_all
|
2012-05-01 21:40:01 +00:00
|
|
|
|
|
|
|
from brewman.models.voucher import Voucher, Journal, VoucherType
|
2012-11-28 07:58:16 +00:00
|
|
|
from brewman.views.services.voucher import get_edit_url
|
2012-05-01 21:40:01 +00:00
|
|
|
|
2016-12-24 11:41:01 +00:00
|
|
|
|
2019-04-06 04:13:12 +00:00
|
|
|
@view_config(request_method="GET", route_name="unposted", permission="Post Vouchers")
|
2012-10-26 17:14:58 +00:00
|
|
|
def html(request):
|
2019-04-06 04:13:12 +00:00
|
|
|
package, resource = "brewman:static/index.html".split(":", 1)
|
2014-04-29 10:08:44 +00:00
|
|
|
file = pkg_resources.resource_filename(package, resource)
|
|
|
|
return FileResponse(file, request=request)
|
2012-05-01 21:40:01 +00:00
|
|
|
|
|
|
|
|
2019-04-06 04:13:12 +00:00
|
|
|
@view_config(
|
|
|
|
request_method="GET",
|
|
|
|
route_name="api_unposted",
|
|
|
|
renderer="json",
|
|
|
|
permission="Post Vouchers",
|
|
|
|
)
|
2012-10-26 17:14:58 +00:00
|
|
|
def report_data(request):
|
2012-10-16 20:02:01 +00:00
|
|
|
return build_report(request)
|
2012-05-01 21:40:01 +00:00
|
|
|
|
2016-12-24 11:41:01 +00:00
|
|
|
|
2012-05-01 21:40:01 +00:00
|
|
|
def build_report(request):
|
2012-10-16 20:02:01 +00:00
|
|
|
body = []
|
2012-05-01 21:40:01 +00:00
|
|
|
|
2019-04-06 04:13:12 +00:00
|
|
|
query = (
|
|
|
|
request.dbsession.query(Voucher)
|
|
|
|
.options(joinedload_all(Voucher.journals, Journal.account, 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()
|
|
|
|
)
|
2012-05-01 21:40:01 +00:00
|
|
|
|
|
|
|
for voucher in query:
|
|
|
|
debit = 0
|
|
|
|
credit = 0
|
2016-12-24 11:41:01 +00:00
|
|
|
name_debit = ""
|
|
|
|
name_credit = ""
|
2012-05-01 21:40:01 +00:00
|
|
|
for journal in voucher.journals:
|
|
|
|
if journal.debit == 1:
|
|
|
|
debit += journal.amount
|
2018-07-07 11:01:44 +00:00
|
|
|
name_debit += "{0} / ".format(journal.account.name)
|
2012-05-01 21:40:01 +00:00
|
|
|
else:
|
|
|
|
credit += journal.amount
|
2018-07-07 11:01:44 +00:00
|
|
|
name_credit += "{0} / ".format(journal.account.name)
|
2016-12-24 11:41:01 +00:00
|
|
|
name_debit = name_debit[:-3]
|
|
|
|
name_credit = name_credit[:-3]
|
2012-05-01 21:40:01 +00:00
|
|
|
|
2019-04-06 04:13:12 +00:00
|
|
|
body.append(
|
|
|
|
{
|
|
|
|
"date": voucher.date.strftime("%d-%b-%Y"),
|
2019-05-10 03:49:53 +00:00
|
|
|
"Url": get_edit_url(voucher, request),
|
2019-04-06 04:13:12 +00:00
|
|
|
"voucherType": VoucherType.by_id(voucher.type).name,
|
|
|
|
"narration": voucher.narration,
|
|
|
|
"isPosted": voucher.posted,
|
|
|
|
"debitName": name_debit,
|
|
|
|
"debitAmount": debit,
|
|
|
|
"creditName": name_credit,
|
|
|
|
"creditAmount": credit,
|
|
|
|
}
|
|
|
|
)
|
2012-05-01 21:40:01 +00:00
|
|
|
|
2016-12-24 11:41:01 +00:00
|
|
|
return body
|