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="move-table", renderer="json", permission="Move Table", trans=True, ) def move_table(request): id_ = uuid.UUID(request.matchdict["id"]) 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() 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().Where(x => x.Name == tableName).SingleOrDefault(); # var newVoucher = _session.Get(newTable.VoucherID); # var oldVoucher = _session.Get(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;