barker/barker/views/voucher/merge_move.py

127 lines
3.3 KiB
Python

import uuid
import transaction
from pyramid.view import view_config
from barker.models import Kot, Voucher, Overview
@view_config(
request_method="POST",
route_name="merge_kot",
renderer="json",
permission="Merge Kots",
trans=True,
)
def merge_kot(request):
json = request.json_body
kot_id = uuid.UUID(json["KotID"])
voucher_id = uuid.UUID(json["NewVoucherID"])
request.dbsession.query(Kot).filter(Kot.id == kot_id).update(
{Kot.voucher_id: voucher_id}
)
transaction.commit()
return voucher_id
@view_config(
request_method="POST",
route_name="move_kot",
renderer="json",
permission="Move Kot",
trans=True,
)
def move_kot(request):
json = request.json_body
kot_id = uuid.UUID(json["KotID"])
food_table_id = uuid.UUID(json["FoodTableID"])
kot = request.dbsession.query(Kot).filter(Kot.id == kot_id).first()
item = Voucher(
kot.voucher.pax,
food_table_id,
kot.voucher.customer_id,
False,
kot.voucher.voucher_type,
kot.voucher.user_id,
request.dbsession,
)
request.dbsession.add(item)
item.kots.append(kot)
status = "printed" if item.is_printed else "running"
item.status = Overview(
voucher_id=None, food_table_id=item.food_table_id, status=status
)
request.dbsession.add(item.status)
transaction.commit()
return item.id
@view_config(
request_method="POST",
route_name="v1_vouchers_id",
request_param="m",
renderer="json",
permission="Move Table",
trans=True,
)
def move_table(request):
id_ = uuid.UUID(request.matchdict["id"])
table_id = uuid.UUID(request.GET["m"])
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()
return True
@view_config(
request_method="POST",
route_name="merge_table",
renderer="json",
permission="Merge Tables",
trans=True,
)
def merge_table(request):
json = request.json_body
voucher_id = uuid.UUID(json["VoucherID"])
new_voucher_id = uuid.UUID(json["NewVoucherID"])
request.dbsession.query(Kot).filter(Kot.voucher_id == voucher_id).update(
{Kot.voucher_id: new_voucher_id}
)
request.dbsession.query(Voucher).filter(Voucher.id == voucher_id).delete()
transaction.commit()
return voucher_id
# 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;