barker/barker/routers/voucher/merge_move.py

128 lines
3.7 KiB
Python
Raw Normal View History

import uuid
import transaction
from datetime import datetime
from pyramid.view import view_config
from sqlalchemy import func
from barker.models import Kot, Voucher, Overview
from barker.views.voucher import get_bill_id, do_update_table
2019-08-10 08:51:40 +00:00
@view_config(
request_method="POST",
route_name="v1_move_kot",
2019-08-10 08:51:40 +00:00
renderer="json",
request_param="merge",
2019-08-10 08:51:40 +00:00
permission="Merge Kots",
trans=True,
)
def merge_kot(request):
json = request.json_body
kot_id = uuid.UUID(json["kot"]["id"])
new_voucher_id = uuid.UUID(json["newVoucher"]["id"])
request.dbsession.query(Kot).filter(Kot.id == kot_id).update({Kot.voucher_id: new_voucher_id})
transaction.commit()
return True
2019-08-10 08:51:40 +00:00
@view_config(
request_method="POST",
route_name="v1_move_kot",
2019-08-10 08:51:40 +00:00
renderer="json",
request_param="move",
permission="Move Kot to New Table",
2019-08-10 08:51:40 +00:00
trans=True,
)
def move_kot(request):
json = request.json_body
now = datetime.now()
kot_id = uuid.UUID(json["kot"]["id"])
table_id = uuid.UUID(json["table"]["id"])
kot = request.dbsession.query(Kot).filter(Kot.id == kot_id).first()
bill_id = get_bill_id(kot.voucher.voucher_type, request.dbsession)
kot_id = request.dbsession.query(func.coalesce(func.max(Voucher.kot_id), 0) + 1).scalar()
2019-08-10 08:51:40 +00:00
item = Voucher(
now,
2019-08-10 08:51:40 +00:00
kot.voucher.pax,
bill_id,
kot_id,
table_id,
2019-08-10 08:51:40 +00:00
kot.voucher.customer_id,
kot.voucher.voucher_type,
uuid.UUID(request.authenticated_userid),
2019-08-10 08:51:40 +00:00
)
request.dbsession.add(item)
item.kots.append(kot)
do_update_table(item, None, request.dbsession)
request.dbsession.add(item.status)
transaction.commit()
return True
2019-08-10 08:51:40 +00:00
@view_config(
request_method="POST",
route_name="v1_move_table",
request_param="move",
2019-08-10 08:51:40 +00:00
renderer="json",
permission="Move Table",
trans=True,
)
def move_table(request):
id_ = uuid.UUID(request.json_body["voucher"]["id"])
2019-08-10 14:13:35 +00:00
table_id = uuid.UUID(request.json_body["table"]["id"])
request.dbsession.query(Overview).filter(Overview.voucher_id == id_).update({Overview.food_table_id: table_id})
request.dbsession.query(Voucher).filter(Voucher.id == id_).update({Voucher.food_table_id: table_id})
transaction.commit()
2019-08-10 08:51:40 +00:00
return True
2019-08-10 08:51:40 +00:00
@view_config(
request_method="POST",
route_name="v1_move_table",
request_param="merge",
2019-08-10 08:51:40 +00:00
renderer="json",
permission="Merge Tables",
trans=True,
)
def merge_table(request):
json = request.json_body
id_ = uuid.UUID(json["oldVoucher"]["id"])
# table_id = uuid.UUID(json["table"]["id"])
new_voucher_id = uuid.UUID(json["newVoucher"]["id"])
request.dbsession.query(Kot).filter(Kot.voucher_id == id_).update({Kot.voucher_id: new_voucher_id})
request.dbsession.query(Voucher).filter(Voucher.id == id_).delete()
transaction.commit()
return True
# VoucherBI.UpdateTable(x => x.FoodTableID == _voucher.Table.FoodTableID && x.VoucherID == _voucher.VoucherID, null, null);
# throw new NotImplementedException();
# var newTable = _session.QueryOver<FoodTable>().Where(x => x.Name == tableName).SingleOrDefault();
# var newVoucher = _session.Get<Voucher>(newTable.VoucherID);
# var oldVoucher = _session.Get<Voucher>(voucherID);
# for (var i = oldVoucher.Kots.Count - 1; i >= 0; i--)
# {
# var kot = oldVoucher.Kots[i];
# oldVoucher.Kots.Remove(kot);
# kot.Voucher = newVoucher;
# newVoucher.Kots.Add(kot);
# _session.Update(kot);
# }
# _session.Update(newVoucher);
#
#
# foreach (var item in oldVoucher.Settlements)
# {
# _session.Delete(item);
# }
# _session.Delete(oldVoucher);
# return newVoucher.VoucherID;