コード例 #1
0
ファイル: transaction.py プロジェクト: sSlotty/ResortAPI
 def get(self) -> Response:
     transaction = Transactions.objects()
     if len(transaction) > 0:
         res = jsonify({
             "data": transaction,
             "message": "success",
             "status": 200
         })
         res.status_code = 200
         return res
     else:
         res = jsonify({"data": "null", "message": "error", "status": 204})
         res.status_code = 204
         return res
コード例 #2
0
ファイル: transaction.py プロジェクト: sSlotty/ResortAPI
 def get(self) -> Response:
     id = request.args.get('id')
     transac = Transactions.objects(transactionID=id)
     if len(transac) > 0:
         res = jsonify({
             "data": transac,
             "message": "success",
             "status": 200
         })
         res.status_code = 200
         return res
     else:
         res = jsonify({"data": "null", "message": "error", "status": 204})
         res.status_code = 204
         return res
コード例 #3
0
ファイル: transaction.py プロジェクト: sSlotty/ResortAPI
 def get(self) -> Response:
     transaction = Transactions.objects().all().values_list(
         'transactionID', 'guestID', 'roomID', 'check_in', 'status',
         'check_out', 'total_bill')
     if len(transaction) > 0:
         res = jsonify({
             "data": transaction,
             "message": "success",
             "status": 200
         })
         res.status_code = 200
         return res
     else:
         res = jsonify({"data": "null", "message": "error", "status": 204})
         res.status_code = 204
         return res
コード例 #4
0
ファイル: transaction.py プロジェクト: sSlotty/ResortAPI
    def get(self) -> Response:

        transactionID = request.args.get('transactionID')

        transaction = Transactions.objects(transactionID=transactionID)
        print(len(transaction))
        if len(transaction) > 0:
            pipline = [{
                "$match": {
                    "_id": transactionID
                }
            }, {
                "$lookup": {
                    'from': 'guests',
                    'localField': 'guestID',
                    'foreignField': '_id',
                    'as': 'guest'
                }
            }, {
                "$lookup": {
                    'from': 'rooms',
                    'localField': 'roomID',
                    'foreignField': '_id',
                    'as': 'room'
                }
            }]

            cursor = Transactions.objects.aggregate(pipline)
            cursor_list = list(cursor)
            guest = list(cursor_list[0]['guest'])
            room = list(cursor_list[0]['room'])

            data = {
                'transactionID': cursor_list[0]['_id'],
                'check_in': cursor_list[0]['check_in'],
                'check_out': cursor_list[0]['check_out'],
                'total_bill': cursor_list[0]['total_bill'],
                'roomNum': room[0]['_id'],
                'roomType': room[0]['roomType'],
                'roomPrice': room[0]['price'],
                'guestID': guest[0]['_id'],
                'guestName': guest[0]['name'],
                'guestTel': guest[0]['tel'],
            }
            print(data)

            res = jsonify({
                "data": [data],
                "message": "success",
                "status": 200
            })
            res.status_code = 200
            return res
        else:
            res = jsonify({
                "data": "null",
                "message": "no have guestID",
                "status": 204
            })
            res.status_code = 204
            return res
コード例 #5
0
ファイル: transaction.py プロジェクト: sSlotty/ResortAPI
    def post(self) -> Response:
        body = request.get_json()
        transaction = body['transactionID']
        pipline = [{
            "$match": {
                "_id": transaction
            }
        }, {
            "$lookup": {
                'from': 'guests',
                'localField': 'guestID',
                'foreignField': '_id',
                'as': 'guest'
            }
        }, {
            "$lookup": {
                'from': 'rooms',
                'localField': 'roomID',
                'foreignField': '_id',
                'as': 'room'
            }
        }]
        x = Transactions.objects.aggregate(pipline)
        y = list(x)
        local = list(y)

        if local[0]['status'] == 'False':
            guest = local[0]['guest']
            room = local[0]['room']

            key = uuid.uuid4().int
            checkIN = str(local[0]['check_in']).format("%Y-%m-%d")
            checkOUT = body['check_out']
            days = days_between(checkIN, checkOUT)

            price = days * int(room[0]['price'])

            data = {
                'transactionID': transaction,
                'room': room[0],
                'roomID': room[0]["_id"],
                'roomType': room[0]["_id"],
                'roomID': room[0]["_id"],
                'roomID': room[0]["_id"],
                'price': price,
                'guest': {
                    'name': guest[0]['name'],
                    'tel': guest[0]['tel']
                },
                'check_in': checkIN,
                'check_out': checkOUT
            }

            Transactions.objects(transactionID=transaction).update(
                set__status="True",
                set__check_out=checkOUT,
                set__total_bill=str(price),
            )
            data_payment = {
                'paymentID': str(key)[0:5],
                'transactionID': transaction,
                'guestID': guest[0]['_id'],
                'room_price': room[0]['price'],
                'total_bill': price,
                'status': 'False'
            }

            try:
                payment = Payments(**data_payment)
                payment.save()

                Rooms.objects(roomID=room[0]['_id']).update(
                    set__room_status='True')

                res = jsonify({
                    "data": [None],
                    "message": "success",
                    "status": 200
                })
                res.status_code = 200
                return res
            except NotUniqueError:
                res = jsonify({
                    "data": "null",
                    "message": "error",
                    "status": 400
                })
                res.status_code = 400
                return res
        else:
            res = jsonify({"data": "null", "message": "error", "status": 400})
            res.status_code = 400
            return res