Renamed Report permissions to make more sense
Removed the void and reprints report and added it to the bill settlement report updated the import to add a new sql to be executed later to update the settlements and report permission names Export works on all reports
This commit is contained in:
@ -369,38 +369,36 @@ def includeme(config):
|
||||
config.add_route("v1_move_kot", "/v1/move-kot")
|
||||
|
||||
config.add_route("v1_active_cashiers", "/v1/active-cashiers")
|
||||
config.add_route("v1_checkout_id", "/v1/checkout/{id}")
|
||||
config.add_route("checkout_id", "/checkout/{id}")
|
||||
config.add_route("v1_cashier_report_id", "/v1/cashier-report/{id}")
|
||||
config.add_route("cashier_report_id", "/cashier-report/{id}")
|
||||
config.add_view(
|
||||
"barker.views.home",
|
||||
route_name="checkout_id",
|
||||
route_name="cashier_report_id",
|
||||
request_method="GET",
|
||||
permission="Cashier Checkout",
|
||||
)
|
||||
config.add_route("v1_checkout_blank", "/v1/checkout")
|
||||
config.add_route("checkout_blank", "/checkout")
|
||||
config.add_route("v1_cashier_report", "/v1/cashier-report")
|
||||
config.add_route("cashier_report", "/cashier-report")
|
||||
config.add_view(
|
||||
"barker.views.home",
|
||||
route_name="checkout_blank",
|
||||
route_name="cashier_report",
|
||||
request_method="GET",
|
||||
permission="Cashier Checkout",
|
||||
)
|
||||
|
||||
config.add_route("v1_sa_sale", "/v1/sale-analysis/sale")
|
||||
config.add_route("v1_sa_settlements", "/v1/sale-analysis/settlements")
|
||||
config.add_route("v1_sa_tax", "/v1/sale-analysis/tax")
|
||||
config.add_route("v1_sale_analysis", "/v1/sale-analysis")
|
||||
config.add_route("sale_analysis", "/sale-analysis")
|
||||
config.add_route("v1_sale_report", "/v1/sale-report")
|
||||
config.add_route("sale_report", "/sale-report")
|
||||
config.add_view(
|
||||
"barker.views.home",
|
||||
route_name="sale_analysis",
|
||||
route_name="sale_report",
|
||||
request_method="GET",
|
||||
permission="Sales Analysis",
|
||||
)
|
||||
config.add_route("tax_analysis", "/tax-analysis")
|
||||
config.add_route("v1_tax_report", "/v1/tax-report")
|
||||
config.add_route("tax_report", "/tax-report")
|
||||
config.add_view(
|
||||
"barker.views.home",
|
||||
route_name="tax_analysis",
|
||||
route_name="tax_report",
|
||||
request_method="GET",
|
||||
permission="Tax Analysis",
|
||||
)
|
||||
@ -440,14 +438,6 @@ def includeme(config):
|
||||
permission="Discount Report",
|
||||
)
|
||||
|
||||
config.add_route("v1_voids_reprints_report", "/v1/voids-reprints-report")
|
||||
config.add_route("voids_reprints_report", "/voids-reprints-report")
|
||||
config.add_view(
|
||||
"barker.views.home",
|
||||
route_name="voids_reprints_report",
|
||||
request_method="GET",
|
||||
permission="Void or Reprinted Bill Report",
|
||||
)
|
||||
# config.add_route("v1_bills_new", "/v1/bills/new")
|
||||
# config.add_route("v1_bills_id", "/v1/bills/{id}")
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ from barker.views.reports import get_start_date, get_finish_date
|
||||
request_method="GET",
|
||||
route_name="v1_beer_consumption_report",
|
||||
renderer="json",
|
||||
permission="Beer Consumption",
|
||||
permission="Beer Consumption Report",
|
||||
)
|
||||
def beer_consumption(request):
|
||||
start_date = get_start_date(request.GET.get("s", None)) - timedelta(hours=7)
|
||||
@ -2,7 +2,7 @@ from datetime import datetime, timedelta
|
||||
|
||||
from pyramid.view import view_config
|
||||
|
||||
from barker.models import Settlement, SettleOption, Voucher, VoucherType
|
||||
from barker.models import Settlement, SettleOption, Voucher, VoucherType, Reprint
|
||||
from barker.models.validation_exception import ValidationError
|
||||
from barker.views.reports import get_start_date, get_finish_date
|
||||
|
||||
@ -11,7 +11,7 @@ from barker.views.reports import get_start_date, get_finish_date
|
||||
request_method="GET",
|
||||
route_name="v1_bill_settlement_report",
|
||||
renderer="json",
|
||||
permission="Bill Details",
|
||||
permission="Bill Settlement Report",
|
||||
)
|
||||
def bill_details(request):
|
||||
start_date = get_start_date(request.GET.get("s", None))
|
||||
@ -22,8 +22,17 @@ def bill_details(request):
|
||||
).days > 5 and "Accounts Audit" not in request.effective_principals:
|
||||
raise ValidationError("Accounts Audit")
|
||||
|
||||
return {
|
||||
"startDate": start_date.date().strftime("%d-%b-%Y"),
|
||||
"finishDate": (finish_date - timedelta(days=1)).date().strftime("%d-%b-%Y"),
|
||||
"amounts": settlements(start_date, finish_date, request.dbsession)
|
||||
+ reprints(start_date, finish_date, request.dbsession),
|
||||
}
|
||||
|
||||
|
||||
def settlements(start_date, finish_date, dbsession):
|
||||
vouchers = (
|
||||
request.dbsession.query(Voucher)
|
||||
dbsession.query(Voucher)
|
||||
.join(Voucher.settlements)
|
||||
.join(Settlement.settle_option)
|
||||
.filter(Voucher.date >= start_date, Voucher.date <= finish_date)
|
||||
@ -34,37 +43,43 @@ def bill_details(request):
|
||||
|
||||
report = []
|
||||
for item in vouchers:
|
||||
if item.voucher_type == VoucherType.VOID:
|
||||
amount = (
|
||||
next(
|
||||
s.amount
|
||||
for s in item.settlements
|
||||
if s.settled == SettleOption.AMOUNT()
|
||||
)
|
||||
* -1
|
||||
)
|
||||
for so in (so for so in item.settlements if so.settle_option.show_in_choices):
|
||||
if item.voucher_type == VoucherType.VOID:
|
||||
details = f"Void: {item.reason}"
|
||||
elif item.voucher_type == VoucherType.STAFF:
|
||||
details = f"Staff: {item.reason}"
|
||||
elif item.voucher_type == VoucherType.NO_CHARGE:
|
||||
details = f"NC: {item.reason}"
|
||||
else:
|
||||
details = so.settle_option.name
|
||||
report.append(
|
||||
{
|
||||
"date": item.date.strftime("%d-%b-%Y %H:%M:%S"),
|
||||
"billId": item.full_bill_id,
|
||||
"settlement": "Void: {0}".format(item.void_reason),
|
||||
"amount": round(amount, 2),
|
||||
"settlement": details,
|
||||
"amount": round(so.amount, 2),
|
||||
}
|
||||
)
|
||||
else:
|
||||
for so in (
|
||||
so for so in item.settlements if so.settle_option.show_in_choices
|
||||
):
|
||||
report.append(
|
||||
{
|
||||
"date": item.date.strftime("%d-%b-%Y %H:%M:%S"),
|
||||
"billId": item.full_bill_id,
|
||||
"settlement": so.settle_option.name,
|
||||
"amount": round(so.amount, 2),
|
||||
}
|
||||
return report
|
||||
|
||||
|
||||
def reprints(start_date, finish_date, dbsession):
|
||||
return [
|
||||
{
|
||||
"date": item.date.strftime("%d-%b-%Y %H:%M:%S"),
|
||||
"billId": item.voucher.full_bill_id,
|
||||
"settlement": f"Reprinted by {item.user.name}",
|
||||
"Amount": round(
|
||||
next(
|
||||
s.amount
|
||||
for s in item.voucher.settlements
|
||||
if s.settled == SettleOption.AMOUNT()
|
||||
)
|
||||
return {
|
||||
"startDate": start_date.date().strftime("%d-%b-%Y"),
|
||||
"finishDate": (finish_date - timedelta(days=1)).date().strftime("%d-%b-%Y"),
|
||||
"amounts": report,
|
||||
}
|
||||
* -1,
|
||||
2,
|
||||
),
|
||||
}
|
||||
for item in dbsession.query(Reprint)
|
||||
.filter(Reprint.date >= start_date, Reprint.date <= finish_date)
|
||||
.all()
|
||||
]
|
||||
|
||||
@ -14,7 +14,7 @@ __author__ = "tanshu"
|
||||
request_method="GET",
|
||||
route_name="v1_active_cashiers",
|
||||
renderer="json",
|
||||
permission="Cashier Checkout",
|
||||
permission="Cashier Report",
|
||||
)
|
||||
def active_cashiers(request):
|
||||
start_date = get_start_date(request.GET.get("s", None))
|
||||
@ -38,9 +38,9 @@ def active_cashiers(request):
|
||||
|
||||
@view_config(
|
||||
request_method="GET",
|
||||
route_name="v1_checkout_blank",
|
||||
route_name="v1_cashier_report",
|
||||
renderer="json",
|
||||
permission="Cashier Checkout",
|
||||
permission="Cashier Report",
|
||||
)
|
||||
def blank_out(request):
|
||||
start_date = request.GET.get("s", datetime.today().strftime("%d-%b-%Y"))
|
||||
@ -57,9 +57,9 @@ def blank_out(request):
|
||||
|
||||
@view_config(
|
||||
request_method="GET",
|
||||
route_name="v1_checkout_id",
|
||||
route_name="v1_cashier_report_id",
|
||||
renderer="json",
|
||||
permission="Cashier Checkout",
|
||||
permission="Cashier Report",
|
||||
request_param=("s", "f"),
|
||||
)
|
||||
def check_me_out(request):
|
||||
@ -19,7 +19,7 @@ from barker.views.reports import get_start_date, get_finish_date
|
||||
request_method="GET",
|
||||
route_name="v1_product_sale_report",
|
||||
renderer="json",
|
||||
permission="Sales Detail",
|
||||
permission="Product Sale Report",
|
||||
)
|
||||
def product_sale_report_view(request):
|
||||
start_date = get_start_date(request.GET.get("s", None))
|
||||
|
||||
@ -19,9 +19,9 @@ from barker.views.reports import get_start_date, get_finish_date
|
||||
|
||||
@view_config(
|
||||
request_method="GET",
|
||||
route_name="v1_sale_analysis",
|
||||
route_name="v1_sale_report",
|
||||
renderer="json",
|
||||
permission="Sales Analysis",
|
||||
permission="Sale Report",
|
||||
)
|
||||
def get_sale_analysis(request):
|
||||
start_date = get_start_date(request.GET.get("s", None))
|
||||
@ -45,28 +45,6 @@ def get_sale_analysis(request):
|
||||
}
|
||||
|
||||
|
||||
@view_config(
|
||||
request_method="GET",
|
||||
route_name="v1_sa_sale",
|
||||
renderer="json",
|
||||
permission="Sales Analysis",
|
||||
)
|
||||
def get_sale_view(request):
|
||||
start_date = get_start_date(request.GET.get("s", None))
|
||||
finish_date = get_finish_date(request.GET.get("f", None))
|
||||
|
||||
if (
|
||||
datetime.today() - start_date.replace(hour=0)
|
||||
).days > 5 and "Accounts Audit" not in request.effective_principals:
|
||||
raise ValidationError("Accounts Audit")
|
||||
|
||||
return {
|
||||
"startDate": start_date.date().strftime("%d-%b-%Y"),
|
||||
"finishDate": (finish_date - timedelta(days=1)).date().strftime("%d-%b-%Y"),
|
||||
"amounts": get_sale(start_date, finish_date, request.dbsession),
|
||||
}
|
||||
|
||||
|
||||
def get_sale(start_date, finish_date, dbsession):
|
||||
list_ = (
|
||||
dbsession.query(SaleCategory.name, func.sum(Inventory.net))
|
||||
@ -91,28 +69,6 @@ def get_sale(start_date, finish_date, dbsession):
|
||||
return info + [{"name": "Total Settled", "amount": total}]
|
||||
|
||||
|
||||
@view_config(
|
||||
request_method="GET",
|
||||
route_name="v1_sa_settlements",
|
||||
renderer="json",
|
||||
permission="Sales Analysis",
|
||||
)
|
||||
def get_settlements_view(request):
|
||||
start_date = get_start_date(request.GET.get("s", None))
|
||||
finish_date = get_finish_date(request.GET.get("f", None))
|
||||
|
||||
if (
|
||||
datetime.today() - start_date.replace(hour=0)
|
||||
).days > 5 and "Accounts Audit" not in request.effective_principals:
|
||||
raise ValidationError("Accounts Audit")
|
||||
|
||||
return {
|
||||
"startDate": start_date.date().strftime("%d-%b-%Y"),
|
||||
"finishDate": (finish_date - timedelta(days=1)).date().strftime("%d-%b-%Y"),
|
||||
"amounts": get_settlements(start_date, finish_date, request.dbsession),
|
||||
}
|
||||
|
||||
|
||||
def get_settlements(start_date, finish_date, dbsession):
|
||||
list_ = (
|
||||
dbsession.query(SettleOption.name, func.sum(Settlement.amount))
|
||||
@ -133,9 +89,9 @@ def get_settlements(start_date, finish_date, dbsession):
|
||||
|
||||
@view_config(
|
||||
request_method="GET",
|
||||
route_name="v1_sa_tax",
|
||||
route_name="v1_tax_report",
|
||||
renderer="json",
|
||||
permission=("Tax Analysis", "Sales Analysis"),
|
||||
permission="Tax Report",
|
||||
)
|
||||
def get_tax_view(request):
|
||||
start_date = get_start_date(request.GET.get("s", None))
|
||||
@ -1,65 +0,0 @@
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from pyramid.view import view_config
|
||||
|
||||
from barker.models import Settlement, SettleOption, Voucher, VoucherType, Reprint
|
||||
from barker.models.validation_exception import ValidationError
|
||||
from barker.views.reports import get_start_date, get_finish_date
|
||||
|
||||
|
||||
@view_config(
|
||||
request_method="GET",
|
||||
route_name="v1_voids_reprints_report",
|
||||
renderer="json",
|
||||
permission="Void or Reprinted Bill Report",
|
||||
)
|
||||
def voids_reprints_report_view(request):
|
||||
start_date = get_start_date(request.GET.get("s", None))
|
||||
finish_date = get_finish_date(request.GET.get("f", None))
|
||||
|
||||
if (
|
||||
datetime.today() - start_date.replace(hour=0)
|
||||
).days > 5 and "Accounts Audit" not in request.effective_principals:
|
||||
raise ValidationError("Accounts Audit")
|
||||
|
||||
return {
|
||||
"startDate": start_date.date().strftime("%d-%b-%Y"),
|
||||
"finishDate": (finish_date - timedelta(days=1)).date().strftime("%d-%b-%Y"),
|
||||
"amounts": voids_reprints_report(start_date, finish_date, request.dbsession),
|
||||
}
|
||||
|
||||
|
||||
def voids_reprints_report(start_date, finish_date, dbsession):
|
||||
vouchers = (
|
||||
dbsession.query(Voucher, Settlement.amount * -1)
|
||||
.join(Voucher.settlements)
|
||||
.filter(Voucher.date >= start_date, Voucher.date <= finish_date, Voucher.voucher_type == VoucherType.VOID.value, Settlement.settled == SettleOption.AMOUNT())
|
||||
.order_by(Voucher.date)
|
||||
.all()
|
||||
)
|
||||
print(str(vouchers))
|
||||
report = []
|
||||
for item, amount in vouchers:
|
||||
report.append(
|
||||
{
|
||||
"date": item.date.strftime("%d-%b-%Y %H:%M:%S"),
|
||||
"billId": item.full_bill_id,
|
||||
"settlement": f"Void: {item.void_reason}",
|
||||
"amount": round(amount, 2),
|
||||
}
|
||||
)
|
||||
reprints = dbsession.query(Reprint).filter(
|
||||
Reprint.date >= start_date,
|
||||
Reprint.date <= finish_date
|
||||
).all()
|
||||
|
||||
for item in reprints:
|
||||
report.append({
|
||||
'date': item.date.strftime('%d-%b-%Y %H:%M:%S'),
|
||||
'billId': item.voucher.full_bill_id,
|
||||
'settlement': f"Reprinted by {item.user.name}",
|
||||
'Amount': round(next(
|
||||
s.amount for s in item.voucher.settlements if s.settled == SettleOption.AMOUNT()
|
||||
) * -1, 2)
|
||||
})
|
||||
return report
|
||||
Reference in New Issue
Block a user