⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 order.py

📁 监控大型网络的软件。能够自动发现拓扑结构
💻 PY
📖 第 1 页 / 共 3 页
字号:
        page.widgets['product'] = Widget(CN_PRODUCT,'select','Product',                                         formData[CN_PRODUCT],                                         options={'options': options},                                         required=True)        page.widgets['cancel'] = Widget(CN_CANCEL,'submit','Cancel')    elif subpath == 'arrival' and not form.has_key(CN_CANCEL):        page.subname = 'arrival'        deviceorderid = path[2]        if form.has_key(CN_ARRIVE_CONFIRM):            registerDevices(form,deviceorderid,req.session['user'].login,                            page)        page.orderFound = False        if deviceorderid:            # Lookup order            amountsql = "SELECT count(*) FROM device WHERE " +\                        "device.deviceorderid=deviceorder.deviceorderid"            arrivedsql = "SELECT count(*) FROM device WHERE " +\                         "device.deviceorderid=deviceorder.deviceorderid " +\                         "AND device.active=true"            sql = "SELECT productno,descr,ordernumber,(%s),(%s) " %\                  (amountsql,arrivedsql) +\                  "FROM deviceorder,product WHERE " +\                  "deviceorder.productid=product.productid AND " +\                  "deviceorderid='%s'" % deviceorderid            result = executeSQL(sql,fetch=True)            if result:                result = result[0]                productno,descr,ordernumber,amount,arrived = result                if (amount-arrived) > 0:                    page.orderFound = True                    page.productName = productno + ' (' + descr + ')'                    if ordernumber:                        page.tableTitle = "Ordernumber '" + ordernumber +\                                          "', " + str(arrived) + " of " +\                                          str(amount) + " registered"                    else:                        page.tableTitle = str(arrived) + " of " +\                                          str(amount) + " registered"                    page.description = 'Register serials for devices upon' +\                                       ' arrival.'                    pending = amount-arrived                    page.numberOfInputs = min(NUMBER_OF_ARRIVED_SERIALS,pending)                else:                    # No more device to register, close order                    arrivedstamp = mx.DateTime.now().strftime(TIMESTAMP)                    fields = {'arrived': arrivedstamp}                    updateFields(fields,'deviceorder','deviceorderid',                                 deviceorderid)                    page.messages.append('Order closed')                    subpath = 'main'            else:                page.description = 'Order not found'        options = [(CN_PENDING,'Pending',True),                   (CN_ARRIVED,'Arrived',False),                   (CN_CANCELLED,'Cancelled',False)]        page.widgets['arrivaldate'] = Widget([CN_DAY,CN_MONTH,CN_YEAR],'date',                                              'Arrival date',                                              [formData[CN_YEAR],                                               formData[CN_MONTH],                                               formData[CN_DAY]])        page.widgets['action'] = Widget(CN_STATE,'select','State',                                        options={'options': options})        page.widgets['serial'] = Widget(CN_SERIAL,'text','Serial')        page.widgets['submit'] = Widget(CN_ARRIVE_CONFIRM,'submit','Register')        page.widgets['cancel'] = Widget(CN_CANCEL,'submit','Cancel')    elif subpath=='delete' or subpath=='details':        deviceorderid = path[2]        page.hiddenInputs.append(('deviceorderid',deviceorderid))        page.action = BASEPATH + 'order/'        if subpath == 'delete':            page.subname = 'delete'            page.description = 'Are you sure you want to delete this order? ' +\                               'If any of the devices from this order are ' +\                               'already registered as arrived'+\                               ', they will not be deleted and the order '+\                               'will be closed.'        else:            page.subname = 'details'            page.description = ''        page.widgets['confirm'] = Widget(CN_DELETE_CONFIRM,'submit','Confirm')        page.widgets['cancel'] = Widget(CN_CANCEL,'submit','Cancel')        # Get orderdata        amountsql = "SELECT count(*) FROM device WHERE " +\                    "device.deviceorderid=deviceorder.deviceorderid"        arrivedsql = "SELECT count(*) FROM device WHERE " +\                     "device.deviceorderid=deviceorder.deviceorderid " +\                     "AND device.active=true"        sql = "SELECT productno,descr,ordernumber,(%s),(%s)," %\              (amountsql,arrivedsql) +\              "ordered,comment,retailer,registered,username," +\              "orgid,updatedby,lastupdated,arrived " +\              "FROM deviceorder,product WHERE " +\              "deviceorder.productid=product.productid AND " +\              "deviceorderid='%s'" % deviceorderid        result = executeSQL(sql,fetch=True)        if result:            result = result[0]            lastupdated = ''            if result[12]:                lastupdated = result[12].strftime(DATEFORMAT)            closed = None            if result[13] != INFINITY:                closed = result[13].strftime(DATEFORMAT)            orderData = {'product': ('Product',result[0]+' ('+result[1]+')'),                         'ordernumber': ('Ordernumber',result[2]),                         'amount': ('Amount ordered',result[3]),                         'arrived': ('Amount arrived',result[4]),                         'ordered': ('Order date',                                     result[5].strftime(DATEFORMAT)),                         'comment': ('Comment',result[6]),                         'retailer': ('Retailer',result[7]),                         'registered': ('Date registered',                                        result[8].strftime(DATEFORMAT)),                         'username': ('Ordered by',result[9]),                         'org': ('Organisation',result[10]),                         'updatedby': ('Last updated by',result[11]),                         'lastupdated': ('Last updated',lastupdated)}            if closed:                orderData['closed'] = ('Closed',closed)            page.orderData = orderData            page.orderDataHead = 'Order details'        else:            page.errors.append('Order not found')            subpath = 'main'    elif subpath == 'history':        deviceorderid = None        if len(path) > 2:            deviceorderid = path[2]            alternativeOutput = history(req,deviceorderid)        page.description = 'Closed orders. Select details for more ' +\                           'information on a specific order. Select ' +\                           'device history to view event history for ' +\                           'all devices in an order.'        page.subname = 'main'        amountsql = "SELECT count(*) FROM device WHERE device.deviceorderid="+\                    "deviceorder.deviceorderid"        arrivedsql = "SELECT count(*) FROM device WHERE device.deviceorderid="+\                     "deviceorder.deviceorderid AND device.active=true"        sql = "SELECT registered,ordered,ordernumber,retailer,comment," +\              "username,product.productno,product.descr,deviceorderid," +\              "(%s),(%s),orgid,arrived " % (amountsql,arrivedsql) +\              "FROM deviceorder,product WHERE " +\              "deviceorder.productid=product.productid AND " +\              "arrived!='infinity' ORDER BY arrived DESC"        colformat = [['$1$'],                     ['$12$'],                     ['$2$'],                     ['$6$ ($7$)'],                     ['$9$'],                     ['$5$'],                     ['$11$'],                     [['url','Details',BASEPATH+'order/details/$8$/']],                     [['url','Device history',BASEPATH+'order/history/$8$/']]]        headings = [('Ordered',None),                    ('Closed',None),                    ('Ordernumber',None),                    ('Product',None),                    ('Amount',None),                    ('Ordered by',None),                    ('Organisation',None),                    ('',None),                    ('',None)]        page.orderList = FormattedList('orders','Order history',headings,                                       colformat,sql)    else:        # Main page        page.description = 'Currently active orders. Register arrival of ' +\                           'devices in an order by selecting arrival. '        page.subname = 'main'        amountsql = "SELECT count(*) FROM device WHERE device.deviceorderid="+\                    "deviceorder.deviceorderid"        arrivedsql = "SELECT count(*) FROM device WHERE device.deviceorderid="+\                     "deviceorder.deviceorderid AND device.active=true"        sql = "SELECT registered,ordered,ordernumber,retailer,comment," +\              "username,product.productno,product.descr,deviceorderid," +\              "(%s),(%s),orgid " % (amountsql,arrivedsql) +\              "FROM deviceorder,product WHERE " +\              "deviceorder.productid=product.productid AND " +\              "arrived='infinity' ORDER BY ordered"        colformat = [['$1$'],                     ['$2$'],                     ['$6$ ($7$)'],                     ['$9$'],                     ['$10$'],                     ['$5$'],                     ['$11$'],                     [['url','Details',BASEPATH+'order/details/$8$/']],                     [['url','Arrival',BASEPATH+'order/arrival/$8$/']],                     [['url','Edit',BASEPATH+'order/edit/$8$/']],                     [['url','Delete',BASEPATH+'order/delete/$8$/']]]        headings = [('Ordered',None),                    ('Ordernumber',None),                    ('Product',None),                    ('Amount',None),                    ('Arrived',None),                    ('Ordered by',None),                    ('Organisation',None),                    ('',None),                    ('',None),                    ('',None),                    ('',None)]        page.orderList = FormattedList('orders','Active orders',headings,                                       colformat,sql)    # Set menu    page.menu = makeMainMenu(selected=1)    if not alternativeOutput:        nameSpace = {'page': page}        template = deviceManagementTemplate(searchList=[nameSpace])        template.path = CURRENT_PATH        output = template.respond()    else:        output = alternativeOutput    return outputdef deleteOrder(deviceorderid,page):    # Check if any of the devices are registered    amountsql = "SELECT count(*) FROM device WHERE " +\                "deviceorderid='%s'" % (deviceorderid,) +\                "AND active=true"    result = executeSQL(amountsql,fetch=True)    arrived = result[0][0]    if arrived > 0:        # Only delete inactive devices and close order        sql = "DELETE FROM device WHERE deviceorderid='%s' " % \              (deviceorderid,) +\              "AND active=false"        executeSQL(sql)        fields = {'arrived': mx.DateTime.now().strftime(TIMESTAMP)}        updateFields(fields,'deviceorder','deviceorderid',deviceorderid)        page.messages.append('Deleted inactive devices and closed order')    else:        # Delete entire order        sql = "DELETE FROM deviceorder WHERE deviceorderid='%s' " \              % (deviceorderid,)        executeSQL(sql)        page.messages.append('Order deleted')    return pagedef updateOrder(req,formData):    form = req.form    deviceorderid = form['deviceorderid']    # Add or delete devices    amountsql = "SELECT count(*) FROM device WHERE " +\                "deviceorderid='%s'" % (deviceorderid,) +\                "AND device.active=false"    result = executeSQL(amountsql,fetch=True)    oldamount = result[0][0]    amount = int(formData[CN_AMOUNT])    if amount > oldamount:        # Make new devices        fields = {}        fields['productid'] = formData[CN_PRODUCT]        fields['deviceorderid'] = deviceorderid

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -