示例#1
0
    def get(self):
        """Get reservation by ID."""
        vdm_database = config.setup_mongo()
        cursor = vdm_database.booking.aggregate([
            {
                "$project": {
                    "_id": 1,
                    "Reservation.Spectateur.Civilite": 1,
                }
            },
            {
                "$sort": {
                    "_id": 1
                }
            },
        ])

        data = []
        for reservation in cursor:
            res_str = json.loads(dumps(reservation))
            data.append(res_str)

        response = jsonify(data)
        response.headers.add('Access-Control-Allow-Origin', '*')
        response.status_code = 200
        return response
示例#2
0
    def get(self):
        """Get Daily KPi."""
        now = datetime.now()
        gen_time = datetime(now.year, now.month, now.day)
        dummy_id = ObjectId.from_datetime(gen_time)

        vdm_database = config.setup_mongo()
        cursor = vdm_database.booking.aggregate([
            {
                "$project":
                    {
                        "_id": 1,
                        "NbSpectateur": {"$size": "$Reservation"},
                        "TotalPrice": {"$sum": "$Reservation.prix"}
                    },
            },
            {"$match": {"_id": {"$gte": dummy_id}}},
        ])
        data = []
        for reservation in cursor:
            res_str = json.loads(dumps(reservation))
            data.append(res_str)

        response = jsonify(data)
        response.headers.add('Access-Control-Allow-Origin', '*')
        response.status_code = 200
        return response
示例#3
0
    def post(self):
        """reservation booking data."""
        vdm_database = config.setup_mongo()
        collection = vdm_database["booking"]

        # data = utilities.handle_prices(request.get_json())
        data = utilities.handle_utilities(request.get_json())
        collection.insert_one(data)

        response = jsonify({'message': 'OK'})
        response.status_code = 201
        return response
示例#4
0
    def get(self):
        """Get reservation by ID."""
        vdm_database = config.setup_mongo()
        cursor = vdm_database.booking.find({}, {
            '_id': 0
        }).sort("_id", -1).limit(10)
        data = []
        for reservation in cursor:
            data.append(reservation)

        response = jsonify(data)
        response.headers.add('Access-Control-Allow-Origin', '*')
        response.status_code = 200
        return response
示例#5
0
    def get(self):
        """Get bookinglist information."""
        bookingId = request.args.get('bookingId')
        vdm_database = config.setup_mongo()
        cursor = vdm_database.booking.find({'_id': ObjectId(bookingId)})
        data = []
        for reservation in cursor:
            res_str = json.loads(dumps(reservation))
            data.append(res_str)

        response = jsonify(data)
        response.headers.add('Access-Control-Allow-Origin', '*')
        response.status_code = 200
        return response
示例#6
0
    def get(self):
        """Get Nb Booking and Nb Spect per days."""
        vdm_database = config.setup_mongo()
        cursor = vdm_database.booking.aggregate([
            {
                "$project": {
                    "date": {
                        "$dateToString": {
                            "format": "%d/%m/%Y",
                            "date": "$CreatedAt"
                        }
                    },
                    "Nb_Booking": {
                        "$sum": 1
                    },
                    "Nb_Spec": {
                        "$size": "$Reservation"
                    }
                }
            },
            {
                "$group": {
                    "_id": "$date",
                    "Nb_Booking": {
                        "$sum": "$Nb_Booking"
                    },
                    "Nb_Spec": {
                        "$sum": "$Nb_Spec"
                    }
                }
            },
            {
                "$sort": {
                    "_id": -1
                }
            },
        ])

        data = []
        for reservation in cursor:
            res_str = json.loads(dumps(reservation))
            data.append(res_str)

        response = jsonify(data)
        response.headers.add('Access-Control-Allow-Origin', '*')
        response.status_code = 200
        return response
示例#7
0
    def get(self):
        """Get reservation by ID."""
        vdm_database = config.setup_mongo()
        cursor = vdm_database.booking.aggregate([
            {
                "$project": {
                    "date": {
                        "$dateToString": {
                            "format": "%d/%m/%Y",
                            "date": "$CreatedAt"
                        }
                    },
                    "Acheteur.Civilite": 1,
                    "Nb": {
                        "$sum": 1
                    }
                }
            },
            {
                "$group": {
                    "_id": {
                        "date": "$date",
                        "Civilite": "$Acheteur.Civilite"
                    },
                    "total": {
                        "$sum": "$Nb"
                    }
                }
            },
            {
                "$sort": {
                    "_id": 1
                }
            },
        ])

        data = []
        for reservation in cursor:
            res_str = json.loads(dumps(reservation))
            data.append(res_str)

        response = jsonify(data)
        response.headers.add('Access-Control-Allow-Origin', '*')
        response.status_code = 200
        return response
示例#8
0
    def get(self):
        """Get bookinglist information."""
        start_date_tmp = request.args.get('startDate')
        end_date_tmp = request.args.get('endDate')

        startDate = datetime.strptime(start_date_tmp, '%Y-%m-%d')
        endDate = datetime.strptime(end_date_tmp, '%Y-%m-%d')
        print(startDate)

        start_gen_time = datetime(startDate.year, startDate.month,
                                  startDate.day)
        end_gen_time = datetime(endDate.year, endDate.month, endDate.day)

        start_date = ObjectId.from_datetime(start_gen_time)
        end_date = ObjectId.from_datetime(end_gen_time)

        vdm_database = config.setup_mongo()
        cursor = vdm_database.booking.aggregate([{
            "$match": {
                "_id": {
                    "$gte": start_date
                }
            }
        }, {
            "$match": {
                "_id": {
                    "$lte": end_date
                }
            }
        }, {
            "$sort": {
                "_id": 1
            }
        }])
        data = []
        for reservation in cursor:
            res_str = json.loads(dumps(reservation))
            data.append(res_str)

        response = jsonify(data)
        response.headers.add('Access-Control-Allow-Origin', '*')
        response.status_code = 200
        return response
示例#9
0
    def get(self):
        """Get KPi."""
        vdm_database = config.setup_mongo()
        cursor = vdm_database.booking.aggregate([
            {
                "$project":
                {
                    "_id": 1,
                    "NbSpectateur": {"$size": "$Reservation"},
                    "TotalPrice": {"$sum": "$Reservation.prix"}
                },
            },
        ])
        data = []
        for reservation in cursor:
            res_str = json.loads(dumps(reservation))
            data.append(res_str)

        response = jsonify(data)
        response.headers.add('Access-Control-Allow-Origin', '*')
        response.status_code = 200
        return response
示例#10
0
文件: rooms.py 项目: matteyeux/vdm
    def get(self):
        """Get bookinglist information."""
        vdm_database = config.setup_mongo()
        cursor = vdm_database.booking.aggregate([
            {
                "$project": {
                    "_id": 0,
                    "Game.Nom": 1,
                    "CA": {
                        "$sum": "$Reservation.prix"
                    },
                    "Nb_Spec": {
                        "$size": "$Reservation"
                    }
                }
            },
            {
                "$group": {
                    "_id": {
                        "Rooms": "$Game.Nom"
                    },
                    "CA": {
                        "$sum": "$CA"
                    },
                    "Nb_Spec": {
                        "$sum": "$Nb_Spec"
                    }
                }
            },
        ])
        data = []
        for reservation in cursor:
            res_str = json.loads(dumps(reservation))
            data.append(res_str)

        response = jsonify(data)
        response.headers.add('Access-Control-Allow-Origin', '*')
        response.status_code = 200
        return response
示例#11
0
    def get(self):
        """Get incremental bookinglist information."""
        lastId = request.args.get('lastId')
        vdm_database = config.setup_mongo()
        cursor = vdm_database.booking.aggregate([
            {
                "$project": {
                    "_id": 1,
                    "Acheteur.Nom": 1,
                    "Acheteur.Prenom": 1,
                    "NbSpectateur": {
                        "$size": "$Reservation"
                    },
                    "Game.Nom": 1,
                    "Game.Jour": 1,
                    "TotalPrice": {
                        "$sum": "$Reservation.prix"
                    }
                }
            },
            {
                "$match": {
                    "_id": {
                        "$gt": ObjectId(lastId)
                    }
                }
            },
            # {"$limit": 50}
        ])
        data = []
        for reservation in cursor:
            res_str = json.loads(dumps(reservation))
            data.append(res_str)

        response = jsonify(data)
        response.headers.add('Access-Control-Allow-Origin', '*')
        response.status_code = 200
        return response
示例#12
0
    def get(self):
        """Get reservation by ID."""
        vdm_database = config.setup_mongo()
        cursor = vdm_database.booking.aggregate([
            {
                "$project": {
                    "Game.Horaire": 1,
                    "Nb": {
                        "$size": "$Reservation"
                    }
                }
            },
            {
                "$group": {
                    "_id": "$Game.Horaire",
                    "total": {
                        "$sum": "$Nb"
                    }
                }
            },
            {
                "$sort": {
                    "_id": 1
                }
            },
        ])

        data = []
        for reservation in cursor:
            res_str = json.loads(dumps(reservation))
            data.append(res_str)

        response = jsonify(data)
        response.headers.add('Access-Control-Allow-Origin', '*')
        response.status_code = 200
        return response
示例#13
0
    def get(self):
        """Get reservation by ID."""
        vdm_database = config.setup_mongo()
        cursor = vdm_database.booking.aggregate([
            {
                "$project": {
                    "Acheteur.Age": 1,
                    "Nb": {
                        "$sum": 1
                    }
                }
            },
            # {"$limit": 3},
            {
                "$group": {
                    "_id": '',
                    "[0-18[": {
                        "$sum": {
                            "$cond": [{
                                "$and": [
                                    {
                                        "$gte": ["$Acheteur.Age", 0]
                                    },
                                    {
                                        "$lt": ["$Acheteur.Age", 18]
                                    },
                                ]
                            }, 1, 0],
                        }
                    },
                    "[18-25[": {
                        "$sum": {
                            "$cond": [{
                                "$and": [
                                    {
                                        "$gte": ["$Acheteur.Age", 18]
                                    },
                                    {
                                        "$lt": ["$Acheteur.Age", 25]
                                    },
                                ]
                            }, 1, 0],
                        }
                    },
                    "[25-39]": {
                        "$sum": {
                            "$cond": [{
                                "$and": [
                                    {
                                        "$gte": ["$Acheteur.Age", 25]
                                    },
                                    {
                                        "$lte": ["$Acheteur.Age", 39]
                                    },
                                ]
                            }, 1, 0],
                        }
                    },
                    "[40-54]": {
                        "$sum": {
                            "$cond": [{
                                "$and": [
                                    {
                                        "$gte": ["$Acheteur.Age", 40]
                                    },
                                    {
                                        "$lte": ["$Acheteur.Age", 54]
                                    },
                                ]
                            }, 1, 0],
                        }
                    },
                    "[55 et plus": {
                        "$sum": {
                            "$cond": [{
                                "$and": [
                                    {
                                        "$gte": ["$Acheteur.Age", 55]
                                    },
                                ]
                            }, 1, 0],
                        }
                    },
                }
            }
        ])

        data = []
        for reservation in cursor:
            res_str = json.loads(dumps(reservation))
            data.append(res_str)

        response = jsonify(data)
        response.headers.add('Access-Control-Allow-Origin', '*')
        response.status_code = 200
        return response
示例#14
0
文件: extract.py 项目: matteyeux/vdm
    def get(self):
        """Get Hitoric KPI to extract with cronjob."""
        now = datetime.now()
        gen_time = datetime(now.year, now.month, now.day)
        dummy_id = ObjectId.from_datetime(gen_time)

        vdm_database = config.setup_mongo()
        cursor = vdm_database.booking.aggregate([{
            "$project": {
                "_id": 1,
                "date": {
                    "$dateToString": {
                        "format": "%d/%m/%Y",
                        "date": "$CreatedAt"
                    }
                },
                "CA": {
                    "$sum": "$Reservation.prix"
                },
                "NbBooking": {
                    "$sum": 1
                },
                "NbSpect": {
                    "$size": "$Reservation"
                },
            },
        }, {
            "$match": {
                "_id": {
                    "$lt": dummy_id
                }
            }
        }, {
            "$sort": {
                "_id": 1
            }
        }, {
            "$group": {
                "_id": "$date",
                "CA": {
                    "$sum": "$CA"
                },
                "Nb Reservations": {
                    "$sum": "$NbBooking"
                },
                "Nb Spectateurs": {
                    "$sum": "$NbSpect"
                },
            }
        }, {
            "$project": {
                "Date": "$_id",
                "_id": 0,
                "CA": 1,
                "Nb Reservations": 1,
                "Nb Spectateurs": 1,
                "Prix Moyen Reservation (€)": {
                    "$round": [{
                        "$divide": ["$CA", {
                            "$sum": "$Nb Reservations"
                        }]
                    }, 2]
                },
                "Ticket Moyen Spectateur (€)": {
                    "$round": [{
                        "$divide": ["$CA", {
                            "$sum": "$Nb Spectateurs"
                        }]
                    }, 2]
                },
            }
        }])
        data = []
        for reservation in cursor:
            res_str = json.loads(dumps(reservation))
            data.append(res_str)

        response = jsonify(data)
        response.headers.add('Access-Control-Allow-Origin', '*')
        response.status_code = 200
        return response