コード例 #1
0
 def updateOrder(self, oid, form):
     dao = OrderDAO()
     if not dao.getOrderById(oid):
         return jsonify(Error="Order not found."), 404
     else:
         print(len(form))
         if len(form) != 5:
             return jsonify(Error="Malformed update request"), 400
         else:
             rname = form['rname']
             cid = form['cid']
             ammountReserved = form['ammountReserved']
             ammountBought = form['ammountBought']
             date = form['date']
             if rname and cid and ammountReserved and ammountBought and date:
                 r = dao.update(oid, cid, rname, ammountReserved,
                                ammountBought, date)
                 if not r:
                     return jsonify(Error="Invalid costumer"), 404
                 else:
                     result = self.build_order_attributes(
                         oid, cid, rname, ammountReserved, ammountBought,
                         date)
                     return jsonify(Order=result), 200
             else:
                 return jsonify(
                     Error="Unexpected attributes in update request"), 400
コード例 #2
0
def get_order_statistic(handler: str = None, source: int = None):
    try:
        today = datetime_utils.utc8now().date()

        periods = [
            TodayPeriod(today=today),
            ThisWeekPeriod(today=today),
            ThisMonthPeriod(today=today),
            ThisSeasonPeriod(today=today),
            HalfyearPeriod(today=today),
            ThisYearPeriod(today=today)
        ]

        statistic = {
            p.name: OrderDAO.count(handler=handler,
                                   source=source,
                                   startdate=p.startdate.strftime('%Y-%m-%d'),
                                   enddate=p.enddate.strftime('%Y-%m-%d'))
            for p in periods
        }

        for status in [
                OrderStatus.WAITING, OrderStatus.WORKING, OrderStatus.DONE
        ]:
            statistic[status.name.lower()] = OrderDAO.count(
                handler=handler, source=source, status=status.value)

        return ujson.dumps(statistic)

    except Exception as e:
        raise RuntimeException('获取订单统计异常',
                               extra={'handler': handler,
                                      'source': source}) \
            from e
コード例 #3
0
def _closeorder(order, **kwargs):
    if order['status'] in [OrderStatus.DONE.value, OrderStatus.CLOSED.value]:
        return '状态过期,请刷新页面', 412

    user = kwargs.get('user')

    # 更新状态
    OrderDAO.update({'status': OrderStatus.CLOSED.value}, id=order['id'])

    # 添加操作记录
    OrderRecordDAO.insert({
        'orderid': order['id'],
        'operation': OrderOperation.CLOSE.value,
        'opname': user['name']
    })

    # 发送通知
    order_utils.send_order_notify_message(
        title='订单完成通知',
        message='%s关闭了订单' % user['name'],
        tousers=_get_notify_users_when_finish_or_close(order),
        orderid=order['id'],
        realname=order['realname'],
        mobile=order['mobile'],
        address=order['address'],
        operatorname=order['operatorname'],
        bizname=order['bizname'])

    return '', 201
コード例 #4
0
 def deleteOrder(self, oid):
     dao = OrderDAO()
     if not dao.getOrderById(oid):
         return jsonify(Error="Order not found."), 404
     else:
         dao.deleteOrder(oid)
         return jsonify(DeleteStatus="OK"), 200
コード例 #5
0
    def insertOrder(self, json):
        customer_id = json['customer_id']
        payment_id = json['payment_id']
        request_id = json['request_id']
        order_date = json['order_date']
        order_price = json['order_price']
        order_status = json['order_status']
        resources = json['resources']

        if customer_id and payment_id and order_date and order_price and order_status and resources:
            order_dao = OrderDAO()
            resourceOrders_dao = ResourceOrdersDAO()
            order_id = order_dao.insert(customer_id, payment_id, request_id,
                                        order_date, order_price, order_status)

            for resource in resources:
                resourceOrders_dao.insert(order_id, resource["resource_id"],
                                          resource["order_quantity"],
                                          resource["discount"])

            if request_id:
                request_dao = RequestDAO()
                request = request_dao.getRequestById(request_id)
                request_dao.update(request_id, request[0][1], request[0][2],
                                   request[0][3], request[0][4], "Accepted")

            result = self.build_order_attributes(order_id, customer_id,
                                                 payment_id, request_id,
                                                 order_date, order_price,
                                                 order_status, resources)
            return jsonify(Order=result), 201
        else:
            return jsonify(Error="Unexpected attributes in post request"), 400
コード例 #6
0
    def deleteOrder(self, oid):
        dao = OrderDAO()

        if dao.delete(oid):
            return jsonify(DeleteStatus="Order deleted"), 200
        else:
            return jsonify(Error="Order not found."), 404
コード例 #7
0
    def updateOrder(self, order_id, json):
        order_dao = OrderDAO()
        resourceOrders_dao = ResourceOrdersDAO()
        if not order_dao.getOrderById(order_id):
            return jsonify(Error="Order not found."), 404
        else:
            customer_id = json['customer_id']
            payment_id = json['payment_id']
            request_id = json['request_id']
            order_date = json['order_date']
            order_price = json['order_price']
            order_status = json['order_status']
            resources = json['resources']

            if customer_id and payment_id and order_date and order_price and order_status and resources:
                order_dao.update(order_id, customer_id, payment_id, request_id,
                                 order_date, order_price, order_status)

                for resource in resources:
                    resourceOrders_dao.update(order_id,
                                              resource["resource_id"],
                                              resource["order_quantity"],
                                              resource["discount"])

                result = self.build_order_attributes(order_id, customer_id,
                                                     payment_id, request_id,
                                                     order_date, order_price,
                                                     order_status, resources)
                return jsonify(Order=result), 200
            else:
                return jsonify(
                    Error="Unexpected attributes in update request"), 400
コード例 #8
0
ファイル: order.py プロジェクト: Guillermo-Andres/DBProject
 def getOrderStatsPerRegion(self):
     dao = OrderDAO()
     order_list = dao.getOrderStatsPerRegion()
     result_list = []
     for row in order_list:
         result = self.build_reqs_stats_per_region_dict(row)
         result_list.append(result)
     return jsonify(Order=result_list)
コード例 #9
0
ファイル: order.py プロジェクト: Guillermo-Andres/DBProject
 def getOrderById(self, order_id):
     dao = OrderDAO()
     row = dao.getOrderById(order_id)
     if not row:
         return jsonify(Error="Order not found"), 404
     else:
         order = self.build_order_dict(row)
         return jsonify(Order=order)
コード例 #10
0
ファイル: order.py プロジェクト: Guillermo-Andres/DBProject
 def getPurchased(self):
     dao = OrderDAO()
     order_list = dao.getPurchased()
     result_list = []
     for row in order_list:
         result = self.build_order_dict(row)
         result_list.append(result)
     return jsonify(Order=result_list)
コード例 #11
0
 def getAllOrders(self):
     dao = OrderDAO()
     orders_list = dao.getAllOrders()
     result_list = []
     for row in orders_list:
         result = self.build_order_dict(row)
         result_list.append(result)
     return jsonify(Orders=result_list)
コード例 #12
0
ファイル: order.py プロジェクト: Guillermo-Andres/DBProject
 def getOrdersByConsumerID(self, consumer_id):
     dao = OrderDAO()
     order_list = dao.getOrderByConsumerId(consumer_id)
     result_list = []
     for row in order_list:
         result = self.build_order_dict(row)
         result_list.append(result)
     return jsonify(Order=result_list)
コード例 #13
0
ファイル: order.py プロジェクト: Guillermo-Andres/DBProject
 def getOrderStatsPerWeek(self):
     dao = OrderDAO()
     order_list = dao.getOrderStatsPerWeek()
     result_list = []
     for row in order_list:
         result = self.build_order_stats_per_date_dict(row)
         result_list.append(result)
     return jsonify(order=result_list)
コード例 #14
0
 def getOrderById(self, order_id):
     dao = OrderDAO()
     row = dao.getOrderById(order_id)
     if not row:
         return jsonify(Error="Order Not Found"), 404
     else:
         order = self.fixDict(row)
         return jsonify(Order=order)
コード例 #15
0
 def deleteOrder(self, order_id):
     order_dao = OrderDAO()
     resourceOrders_dao = ResourceOrdersDAO()
     if not order_dao.getOrderById(order_id):
         return jsonify(Error="Order not found."), 404
     else:
         resourceOrders_dao.delete(order_id)
         order_dao.delete(order_id)
         return jsonify(DeleteStatus="OK"), 200
コード例 #16
0
 def getResourcesByOrderId(self, order_id):
     dao = OrderDAO()
     row = dao.getOrderById(order_id)
     if not row:
         return jsonify(Error="Order Not Found"), 404
     else:
         result = self.fixDict(row)
         resource_list = result[0]["resources"]
         return jsonify(Resources=resource_list)
コード例 #17
0
 def getOrdersByResourceName(self, rname):
     dao = OrderDAO()
     row = dao.getOrderByResourceName(rname)
     print(rname)
     if not row:
         return jsonify(Error="Order does not exist"), 404
     else:
         order = self.build_order_dict(row)
         return jsonify(Order=order)
コード例 #18
0
 def getOrderByCustomerId(self, customer_id):
     customer_dao = CustomerDAO()
     if not customer_dao.getCustomerById(customer_id):
         return jsonify(Error="Customer Not Found"), 404
     else:
         orders_list = []
         dao = OrderDAO()
         orders_list = dao.getOrderByCustomerId(customer_id)
         result_list = self.fixDict(orders_list)
         return jsonify(Orders=result_list)
コード例 #19
0
 def searchOrdersById(self, oid, args):
     date = args.get("odate")
     price = args.get("oprice")
     status = args.get("ostatus")
     dao = OrderDAO()
     orders_list = []
     if (len(args) == 3) and date and price and status:
         orders_list = dao.getAllOrdersByIdDatePriceStatus(
             date, price, status, id)
     elif (len(args) == 2) and date and price:
         orders_list = dao.getAllOrdersByIdDatePrice(date, price, id)
     elif (len(args) == 2) and date and status:
         orders_list = dao.getAllOrdersByIdDateStatus(date, status, id)
     elif (len(args) == 2) and price and status:
         orders_list = dao.getAllOrdersByIdPriceStatus(price, status, id)
     elif (len(args) == 1) and date:
         orders_list = dao.getAllOrdersByIdDate(date, id)
     elif (len(args) == 1) and price:
         orders_list = dao.getAllOrdersByIdPrice(price, id)
     elif (len(args) == 1) and status:
         orders_list = dao.getAllOrdersByIdStatus(status, id)
     else:
         return jsonify(Orders="Bad Request"), 400
     result_list = []
     for row in orders_list:
         result = self.build_orders_dict(row)
         result_list.append(result)
     if not result_list:
         return jsonify(Error="Order Not Found"), 404
     else:
         return jsonify(Orders=result_list)
コード例 #20
0
 def getAllOrders(self):
     dao = OrderDAO()
     orders_list = dao.getAllOrders(
     )  #Select oid, odate, oprice, ostatus from Order_Info
     result_list = []
     for row in orders_list:
         result = self.build_orders_dict(row)
         result_list.append(result)
     if not result_list:
         return jsonify(Error="Order Not Found"), 404
     else:
         return jsonify(Orders=result_list)
コード例 #21
0
    def searchSuppliersOfThisOrderInfo(self, oid, args):

        daoOI = OrderDAO()
        dao = SupplierDAO()

        if not daoOI.getOrderById(oid):
            return jsonify(Error = 'Order Info Not Found'), 404

        afirst = args.get('afirst')
        alast = args.get('alast')
        email = args.get('email')
        phone = args.get('phone')

        suppliers_list = []

        if(len(args) == 4) and afirst and alast and email and phone:
            suppliers_list = dao.getSupplierOfThisOrderInfoByAfirstAlastEmailPhone(oid, afirst, alast, email, phone)
        elif(len(args) == 3) and afirst and alast and email:
            suppliers_list = dao.getSupplierOfThisOrderInfoByAfirstAlastEmail(oid, afirst, alast, email)
        elif(len(args) == 3) and afirst and alast and phone:
            suppliers_list = dao.getSupplierOfThisOrderInfoByAfirstAlastPhone(oid, afirst, alast, phone)
        elif(len(args) == 3) and afirst and phone and email:
            suppliers_list = dao.getSupplierOfThisOrderInfoByAfirstPhoneEmail(oid, afirst, phone, email)
        elif(len(args) == 3) and alast and email and phone:
            suppliers_list = dao.getSupplierOfThisOrderInfoByAlastEmailPhone(oid, alast, email, phone)
        elif(len(args) == 2) and afirst and alast:
            suppliers_list = dao.getSupplierOfThisOrderInfoByAfirstAlast(oid, afirst, alast)
        elif(len(args) == 2) and afirst and email:
            suppliers_list = dao.getSupplierOfThisOrderInfoByAfirstEmail(oid, afirst, email)
        elif(len(args) == 2) and afirst and phone:
            suppliers_list = dao.getSupplierOfThisOrderInfoByAfirstPhone(oid, afirst, phone)
        elif(len(args) == 2) and alast and email:
            suppliers_list = dao.getSupplierOfThisOrderInfoByAlastEmail(oid, alast, email)
        elif(len(args) == 2) and alast and phone:
            suppliers_list = dao.getSupplierOfThisOrderInfoByAlastPhone(oid, alast, phone)
        elif(len(args) == 2) and email and phone:
            suppliers_list = dao.getSupplierOfThisOrderInfoByEmailPhone(oid, email, phone)
        elif(len(args) == 1) and afirst:
            suppliers_list = dao.getSupplierOfThisOrderInfoByAfirst(oid, afirst)
        elif(len(args) == 1) and alast:
            suppliers_list = dao.getSupplierOfThisOrderInfoByAlast(oid, alast)
        elif(len(args) == 1) and email:
            suppliers_list = dao.getSupplierOfThisOrderInfoByEmail(oid, email)
        elif(len(args) == 1) and phone:
            suppliers_list = dao.getSupplierOfThisOrderInfoByPhone(oid, phone)
        else:
            return jsonify(Error = "Malformed query string"), 400
        result_list = []
        for row in suppliers_list:
            result = self.build_supplier_dict(row)
            result_list.append(result)
        return jsonify(Suppliers = result_list)
コード例 #22
0
    def getRequestersOfThisOrderInfo(self, oid):

        dao = RequesterDAO()
        daoO = OrderDAO()

        if not daoO.getOrderById(oid):
            return jsonify(Error="Order Info Not Found"), 404

        requesters_list = dao.getRequestersOnThisOrderInfo(oid)
        result_list = []

        for row in requesters_list:
            result = self.build_requester_dict(row)
            result_list.append(result)
        return jsonify(Requesters=result_list)
コード例 #23
0
    def getSuppliersOfThisOrderInfo(self, oid):

        daoOI = OrderDAO()
        dao = SupplierDAO()

        if not daoOI.getOrderById(oid):
            return jsonify(Error = 'Order Info Not Found'), 404

        suppliers_list = dao.getSupplierOfThisOrderInfo(oid)

        result_list = []
        for row in suppliers_list:
            result = self.build_supplier_dict(row)
            result_list.append(result)
        return jsonify(Supplier = result_list)
コード例 #24
0
 def searchOrders(self, args):
     order_date = args.get("order_date")
     order_status = args.get("order_status")
     dao = OrderDAO()
     orders_list = []
     if (len(args) == 2) and order_date and order_status:
         orders_list = dao.getOrdersByDateAndStatus(order_date,
                                                    order_status)
     elif (len(args) == 1) and order_date:
         orders_list = dao.getOrdersByDate(order_date)
     elif (len(args) == 1) and order_status:
         orders_list = dao.getOrdersByStatus(order_status)
     else:
         return jsonify(Error="Malformed query string"), 400
     result_list = self.fixDict(orders_list)
     return jsonify(Orders=result_list)
コード例 #25
0
 def insertOrder(self, form):
     if len(form) != 4:
         print(len(form))
         print(form)
         return jsonify(Error="Malformed post request"), 400
     else:
         odate = form['odate']
         oprice = form['oprice']
         ostatus = form['ostatus']
         payid = form['payid']
         if odate and oprice and ostatus and payid:
             dao = OrderDAO()
             oid = dao.insertOrder(odate, oprice, ostatus, payid)
             result = self.build_order_attributes(oid, odate, oprice,
                                                  ostatus, payid)
             return jsonify(Order=result), 201
         else:
             return jsonify(
                 Error="Unexpected attributes in post request"), 400
コード例 #26
0
 def updateOrder(self, oid, form):
     dao = OrderDAO()
     if not dao.getOrderById(oid):
         return jsonify(Error="Order not found."), 404
     else:
         if len(form) != 3:
             return jsonify(Error="Malformed update request"), 400
         else:
             odate = form['odate']
             oprice = form['oprice']
             ostatus = form['ostatus']
             if odate and oprice and ostatus:
                 dao.updateOrder(oid, odate, oprice, ostatus)
                 result = self.build_orderUpdate_attributes(
                     oid, odate, oprice, ostatus)
                 return jsonify(Order=result), 200
             else:
                 return jsonify(
                     Error="Unexpected attributes in update request"), 400
コード例 #27
0
    def getPaymentByOrderId(self, order_id):
        dao = OrderDAO()
        row = dao.getOrderById(order_id)
        if not row:
            return jsonify(Error="Order Not Found"), 404
        else:
            result = self.fixDict(row)
            payment_id = result[0]["payment_id"]
            ath_movil = AthMovilHandler().getAthMovilByPaymentId(payment_id)
            creditcard = CreditCardHandler().getCreditCardByPaymentId(
                payment_id)
            paypal = PaypalHandler().getPaypalByPaymentId(payment_id)

            if ath_movil:
                return ath_movil
            elif creditcard:
                return creditcard
            elif paypal:
                return paypal
            else:
                return jsonify(Error="Payment Not Found"), 404
コード例 #28
0
def _dealwithorder(order, **kwargs):
    if order['status'] != OrderStatus.WAITING.value:
        return '状态过期,请刷新页面', 412

    user = kwargs.get('user')

    # 更新状态
    OrderDAO.update(
        {
            'status': OrderStatus.WORKING.value,
            'handler': user['id']
        },
        id=order['id'])

    # 添加操作记录
    OrderRecordDAO.insert({
        'orderid': order['id'],
        'operation': OrderOperation.DEALWITH.value,
        'opname': user['name']
    })

    return user['name'], 201
コード例 #29
0
    def insertOrder(self, form):
        print("form: ", form)
        if len(form) != 5:
            return jsonify(Error="Malformed post request"), 400
        else:
            cid = form['cid']
            rname = form['rname']
            ammountReserved = form['ammountReserved']
            ammountBought = form['ammountBought']
            date = form['date']
            if rname and ammountReserved and ammountBought and date:
                dao = OrderDAO()
                oid = dao.insert(cid, rname, ammountReserved, ammountBought,
                                 date)
                if oid:

                    result = self.build_order_attributes(
                        oid, cid, rname, ammountReserved, ammountBought, date)
                    return jsonify(Order=result), 201
            else:
                return jsonify(
                    Error="Unexpected attributes in post request"), 400
コード例 #30
0
def _dispatchorder(order, **kwargs):
    if order['status'] != OrderStatus.WAITING.value:
        return '状态过期,请刷新页面', 412

    user = kwargs.get('user')
    handler = kwargs.get('handler')

    # 更新状态
    OrderDAO.update(
        {
            'status': OrderStatus.WORKING.value,
            'handler': kwargs.get('handler')['id']
        },
        id=order['id'])

    # 添加操作记录
    OrderRecordDAO.insert({
        'orderid': order['id'],
        'operation': OrderOperation.DISPATCH.value,
        'opname': user['name'] + '|' + handler['name']
    })

    # 发送通知
    order_utils.send_order_notify_message(title='订单分配通知',
                                          message='%s分了个订单给你' % user['name'],
                                          tousers=kwargs.get('handler')['id'],
                                          orderid=order['id'],
                                          realname=order['realname'],
                                          mobile=order['mobile'],
                                          address=order['address'],
                                          operatorname=order['operatorname'],
                                          bizname=order['bizname'])

    ishandler = user['id'] == handler['id']

    return ujson.dumps({'ishandler': ishandler}), 201