예제 #1
0
 def put(self):
     try:
         access_token = authenticator(request.headers.get('Authorization'))
         cursor = db.cursor()
         data = flask.request.get_json()
         if data['status'] == 'NAtoLOC' or data['status'] == 'TAGSTATUS':
             for i in data['data']:
                 cursor.execute(
                     'UPDATE inventorystorage SET ' + data['status'] +
                     ' = 0 WHERE BARCODE = %s', i)
         elif data['status'] == 'PROJECT':
             for i in data['data']:
                 update_project(cursor, data['PROJECTID'],
                                'inventorystorage', 'BARCODE', i,
                                access_token['UserName'],
                                access_token['Role'])
             Log.register(
                 request.headers.get('Authorization'),
                 'Projectid:%s assigned to barcodes %s' %
                 (data['PROJECTID'], ','.join(
                     [str(x) for x in data['data']])), True)
         db.commit()
         return 'success'
     except InvalidProjectUpdate as e:
         return {'message': str(e)}, 500
     except ProjectNotFound as e:
         db.rollback()
         return {'message': str(e)}, 404
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         db.rollback()
         return {"message": str(e)}, 500
예제 #2
0
 def post(self):
     access_token = authenticator(request.headers.get('Authorization'))
     from pymysql import InterfaceError
     try:
         Data = flask.request.get_json()
         cursor = db.cursor()
         row = cursor.execute(
             "select SHIPMENTDATE,PROJECTID,PROJECTNAME,NBP,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION,LOCATIONGRID,MODEL,EASCO,EXTRUDER,NAtoLOC,TAGSTATUS,TICKET from inventorystorage where BARCODE = %s",
             (Data['BARCODE']))
         if row > 0:
             row = cursor.fetchone()
             if int(row[10]) > int(Data['QTY']):
                 max_barcode = get_max_barcode(cursor)
                 cursor.execute(
                     "insert into inventorystorage(BARCODE,TAG,SHIPMENTDATE,PROJECTID,PROJECTNAME,NBP,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION,LOCATIONGRID,MODEL,EASCO,EXTRUDER,NAtoLOC,TAGSTATUS,LASTDATE,LASTUSER,TICKET) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",
                     ((max_barcode['BARCODE'] + 1), (max_barcode['BARCODE'] + tag_inc), row[0], row[1],
                      row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], Data['QTY'], row[11], row[12],
                      row[13], row[14], row[15], row[16], row[17], row[18], row[19], row[20],
                      datetime.datetime.now(), access_token['UserName'], row[21]))
                 print('a')
                 cursor.execute("update inventorystorage SET QTY=%s where BARCODE=%s",
                                ((row[10] - int(Data['QTY'])), Data['BARCODE']))
                 Log.register(request.headers.get('Authorization'),
                              "split : barcode %s with %s" % (Data['BARCODE'], max_barcode['BARCODE']),
                              True)
                 return flask.jsonify(edittag_json_response_array(cursor, (max_barcode['BARCODE'] + 1)))
             else:
                 return {"message": "Quantity you have provided is more than the quantity stored"}, 500
         else:
             return {"message": "barcode %s does not exist" % Data['BARCODE']}, 500
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         return {"message": str(e)}, 500
예제 #3
0
 def get(self):
     try:
         access_token = authenticator(request.headers.get('Authorization'))
         data = request.args
         cursor = db.cursor()
         if data['FINISHID'] == "" and data['FINISHNAME'] == "":
             cursor.execute(
                 'SELECT FINISHID, FINISHNAME FROM colors ORDER BY FINISHNAME'
             )
         elif data['FINISHNAME'] == "":
             cursor.execute(
                 'SELECT FINISHID, FINISHNAME FROM colors WHERE FINISHID LIKE %s ORDER BY FINISHNAME',
                 (data['FINISHID'] + '%'))
         elif data['FINISHID'] == "":
             cursor.execute(
                 'SELECT FINISHID, FINISHNAME FROM colors WHERE FINISHNAME LIKE %s ORDER BY FINISHNAME',
                 (data['FINISHNAME'] + '%'))
         else:
             cursor.execute(
                 'SELECT FINISHID, FINISHNAME FROM colors WHERE FINISHNAME LIKE %s AND FINISHID LIKE %s ORDER BY FINISHNAME',
                 ((data['FINISHNAME'] + '%'), (data['FINISHID'] + '%')))
         colors = cursor.fetchall()
         res = []
         for color in colors:
             res.append({"FINISHID": color[0], "FINISHNAME": color[1]})
         return flask.jsonify(res)
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         return ({'message': str(e)}), 500
예제 #4
0
 def put(self):
     try:
         access_token = authenticator(
             flask.request.headers.get('Authorization'))
         Data = flask.request.get_json()
         cursor = db.cursor()
         row_count = cursor.execute(
             "insert inventorystorage select * from emptystorage where BARCODE = %s",
             (Data['BARCODE']))
         if row_count > 0:
             cursor.execute(
                 "update inventorystorage set QTY=%s,LASTDATE=%s,LASTUSER=%s where BARCODE=%s",
                 (Data['QTY'], datetime.datetime.now(),
                  access_token['UserName'], Data['BARCODE']))
             cursor.execute("delete from emptystorage where BARCODE=%s",
                            (Data['BARCODE']))
             if Log.register(
                     request.headers.get('Authorization'),
                     'Move Barcode %s from empty to inventory storage' %
                     Data['BARCODE'], True):
                 db.commit()
                 return {"message": "success"}
         else:
             db.rollback()
             return {
                 "message":
                 "barcode %s is not in empty storage" % Data['BARCODE']
             }, 404
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         db.rollback()
         return {"message": str(e)}, 404
예제 #5
0
    def put(self):
        try:
            access_token = authenticator(request.headers.get('Authorization'))

            parser = reqparse.RequestParser()
            parser.add_argument('PROJECTID')
            parser.add_argument('PROJECTNAME')
            parser.add_argument('FINISHID')
            parser.add_argument('FINISHNAME')
            args = parser.parse_args()
            cursor = db.cursor()
            if args['PROJECTID'] == '9999':
                return {"message": "stock cannot be edited"}, 500
            update_project_tuple(cursor, args, access_token['UserName'])
            if Log.register(
                    request.headers.get('Authorization'),
                    'Project %s updated with values PNAME:%s, FID:%s ,FNAME:%s'
                    % (args['PROJECTID'], args['PROJECTNAME'],
                       args['FINISHID'], args['FINISHNAME']), True):
                db.commit()
                return {
                    'PROJECTID': args['PROJECTID'],
                    'PROJECTNAME': args['PROJECTNAME'],
                    'FINISHID': args['FINISHID'],
                    'FINISHNAME': args['FINISHNAME']
                }
            else:
                db.rollback()
                return {'Message': 'Try again'}, 500
        except InterfaceError as e:
            CreateApi.reAssignDb()
            print(e)
        except Exception as e:
            return ({'message': str(e)}), 500
예제 #6
0
 def put(self):
     try:
         access_token = authenticator(request.headers.get('Authorization'))
         args = flask.request.get_json()
         cursor = db.cursor()
         cursor.execute('SELECT LOCATIONGRID FROM inventorystorage WHERE BARCODE = %s', (args['BARCODE']))
         loc = cursor.fetchone()
         if loc[0] == 'NA':
             status = cursor.execute('UPDATE inventorystorage SET LOCATIONGRID = %s, NAtoLOC = 1 WHERE BARCODE = %s',
                                     (args['LOCATIONGRID'], args['BARCODE']))
         else:
             status = cursor.execute('UPDATE inventorystorage SET LOCATIONGRID = %s WHERE BARCODE = %s',
                                     (args['LOCATIONGRID'], args['BARCODE']))
         if status > 0:
             if Log.register(request.headers.get('Authorization'),
                             'Issue item %s from loc %s to loc %s' % (args['BARCODE'], loc[0], args['LOCATIONGRID']),
                             True):
                 db.commit()
                 return flask.jsonify(edittag_json_response_array(cursor, args['BARCODE']))
             else:
                 return {'message': 'Try again'}, 500
         else:
             return {'message': 'Try again'}, 500
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         print(e)
 def get(self):
     try:
         access_token = authenticator(
             flask.request.headers.get('Authorization'))
         message = []
         Date = request.args['date']
         cursor = db.cursor()
         if (Date == ''):
             if cursor.execute(
                     "SELECT distinct UPLOADDATE FROM warehousemanifest"
             ) == 0:
                 return {"message": "no manifest available"}, 404
             else:
                 row = cursor.fetchall()
                 for i in range(0, len(row)):
                     message.append(row[i][0])
         else:
             Date = str(dateparser.parse(Date))
             if cursor.execute(
                     'SELECT NO,UPLOADDATE,SHIPMENTDATE,EXTRUDER,PROJECTID,PROJECTNAME,NBP,BL,MANIFEST,TICKET,SO,ITEM,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION,LASTDATE,LASTUSER FROM warehousemanifest where UPLOADDATE = %s',
                     Date) == 0:
                 return {'message': 'press Refresh'}
             else:
                 row = cursor.fetchall()
                 for i in range(0, len(row)):
                     message.append({
                         "NO": row[i][0],
                         "UPLOADDATE": row[i][1],
                         "SHIPMENTDATE": row[i][2],
                         "EXTRUDER": row[i][3],
                         "PROJECTID": row[i][4],
                         "PROJECTNAME": row[i][5],
                         "NBP": row[i][6],
                         "BL": row[i][7],
                         "MANIFEST": row[i][8],
                         "TICKET": row[i][9],
                         "SO": row[i][10],
                         "ITEM": row[i][11],
                         "ASTRO": row[i][12],
                         "KEYMARK": row[i][13],
                         "DESCRIPTION": row[i][14],
                         "FINISHID": row[i][15],
                         "FINISHNAME": row[i][16],
                         "LENGTH": row[i][17],
                         "QTY": row[i][18],
                         "LBFT": row[i][19],
                         "NETWEIGHT": row[i][20],
                         "NOREX": row[i][21],
                         "LOCATION": row[i][22],
                         "LASTDATE": row[i][23],
                         "LASTUSER": row[i][24]
                     })
         return flask.jsonify(message)
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         return {'message': 'try again'}, 500
예제 #8
0
 def get(self):
     access_token = authenticator(request.headers.get('Authorization'))
     barcode = request.args.get('BARCODE')
     try:
         cursor = db.cursor()
         return flask.jsonify(edittag_json_response_array(cursor, barcode))
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         return {'message': str(e)}, 500
예제 #9
0
 def put(self):
     try:
         access_token = authenticator(request.headers.get('Authorization'))
         data = request.get_json()
         cursor = db.cursor()
         values = []
         cursor.execute(
             'UPDATE colors SET FINISHNAME = %s, LASTDATE = %s,LASTUSER = %s WHERE FINISHID = %s',
             (data['FINISHNAME'], datetime.datetime.now(),
              access_token['UserName'], data['FINISHID']))
         if cursor.execute(
                 'SELECT PROJECTID FROM projects WHERE FINISHID = %s',
                 data['FINISHID']) != 0:
             projects = cursor.fetchall()
             for project in projects:
                 values.append('"' + project[0] + '"')
             values = '(' + ','.join(values) + ')'
             cursor.execute(
                 'update projects set FINISHNAME = %s, LASTDATE = %s,LASTUSER = %s WHERE PROJECTID IN '
                 + values, (data['FINISHNAME'], datetime.datetime.now(),
                            access_token['UserName']))
             cursor.execute(
                 'update inventorystorage set FINISHNAME = %s, LASTDATE = %s,LASTUSER = %s WHERE FINISHID != "MILL FINISH" AND FINISHID != "CLEAR ANODIZE" AND PROJECTID IN '
                 + values, (data['FINISHNAME'], datetime.datetime.now(),
                            access_token['UserName']))
             cursor.execute(
                 'update bufferpurchasingmanifest set FINISHNAME = %s, LASTDATE = %s,LASTUSER = %s WHERE FINISHID != "MILL FINISH" AND FINISHID != "CLEAR ANODIZE" AND PROJECTID IN '
                 + values, (data['FINISHNAME'], datetime.datetime.now(),
                            access_token['UserName']))
             cursor.execute(
                 'update purchasingmanifest set FINISHNAME = %s, LASTDATE = %s,LASTUSER = %s WHERE FINISHID != "MILL FINISH" AND FINISHID != "CLEAR ANODIZE" AND PROJECTID IN '
                 + values, (data['FINISHNAME'], datetime.datetime.now(),
                            access_token['UserName']))
             cursor.execute(
                 'update warehousemanifest set FINISHNAME = %s, LASTDATE = %s,LASTUSER = %s WHERE FINISHID != "MILL FINISH" AND FINISHID != "CLEAR ANODIZE" AND PROJECTID IN '
                 + values, (data['FINISHNAME'], datetime.datetime.now(),
                            access_token['UserName']))
             cursor.execute(
                 'update rejection set FINISHNAME = %s, LASTDATE = %s,LASTUSER = %s WHERE FINISHID != "MILL FINISH" AND FINISHID != "CLEAR ANODIZE" AND PROJECTID IN '
                 + values, (data['FINISHNAME'], datetime.datetime.now(),
                            access_token['UserName']))
         if Log.register(
                 request.headers.get('Authorization'),
                 'FINISH ID %s updated with FNAME:%s and it updated projects: %s'
                 % (data['FINISHID'], data['FINISHNAME'], values), True):
             db.commit()
         return flask.jsonify(data)
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         db.rollback()
         return {"message": str(e)}, 500
예제 #10
0
 def post(self):
     try:
         access_token = authenticator(request.headers.get('Authorization'))
         parser = reqparse.RequestParser()
         parser.add_argument('NOREX')
         parser.add_argument('LOCATION')
         parser.add_argument('ASTRO')
         parser.add_argument('KEYMARK')
         parser.add_argument('EASCO')
         parser.add_argument('WINSYS')
         parser.add_argument('DESCRIPTION')
         parser.add_argument('MODEL')
         parser.add_argument('LBFT')
         parser.add_argument('SH')
         parser.add_argument('CAVITY')
         parser.add_argument('IMAGE')
         args = parser.parse_args()
         cursor = db.cursor()
         row_count = cursor.execute(
             'insert into rawvalues(NOREX,LOCATION,ASTRO,KEYMARK,EASCO,WINSYS,DESCRIPTION,MODEL,LBFT,SH,CAVITY,IMAGE,LASTDATE,LASTUSER) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)',
             (args['NOREX'], args['LOCATION'], args['ASTRO'],
              args['KEYMARK'], args['EASCO'], args['WINSYS'],
              args['DESCRIPTION'], args['MODEL'], args['LBFT'],
              args['SH'], args['CAVITY'], args['IMAGE'],
              datetime.datetime.now(), access_token['UserName']))
         if row_count > 0:
             if Log.register(
                     request.headers.get('Authorization'),
                     'New NOREX added with NOREXID: %s ,LOCATION: %s,ASTRO: %s,KEYMARK: %s,EASCO: %s,WINSYS: %s,DESCRIPTION: %s,MODEL: %s,LBFT: %s,SH: %s,CAVITY: %s,'
                     % (args['NOREX'], args['LOCATION'], args['ASTRO'],
                        args['KEYMARK'], args['EASCO'], args['WINSYS'],
                        args['DESCRIPTION'], args['MODEL'], args['LBFT'],
                        args['SH'], args['CAVITY']), True):
                 db.commit()
                 return {'Message': 'Successful'}
             else:
                 db.rollback()
                 return {'message': 'Error - Try Again'}, 500
         else:
             db.rollback()
             return {'message': 'Error - Try Again'}, 500
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         if "Duplicate entry" in str(e):
             message = {
                 'message': "Norex %s already exists." % args['NOREX']
             }
         else:
             message = {"message": str(e)}
         db.rollback()
         return message, 500
예제 #11
0
 def get(self):
     try:
         access_token = authenticator(request.headers.get('Authorization'))
         message = []
         query = "Select NOREX, LOCATION, ASTRO, KEYMARK, EASCO, WINSYS, DESCRIPTION, MODEL, LBFT, SH, CAVITY, LASTDATE, LASTUSER, IMAGE from rawvalues where "
         COUNT = request.args.get('COUNT')
         COUNT = int(COUNT)
         COLUMN = request.args.get('COLUMN')
         VALUE = request.args.get('VALUE')
         if COUNT >= 1:
             COLUMN = COLUMN.split(',')
             VALUE = VALUE.split(',')
             for i in range(0, COUNT):
                 if i == COUNT - 1:
                     query = query + COLUMN[COUNT -
                                            1] + '= \'' + VALUE[COUNT -
                                                                1] + '\''
                     break
                 query = query + COLUMN[i] + '= \'' + VALUE[i] + '\' AND '
         else:
             query = query + COLUMN + ' 1'
         print('QUERY :' + query)
         cursor = db.cursor()
         row_count = cursor.execute(query)
         if (row_count == 0):
             return {"message": "norex does not exists"}, 404
         row = cursor.fetchall()
         for i in range(0, row_count):
             m = {
                 "NOREX": row[i][0],
                 "LOCATION": row[i][1],
                 "ASTRO": row[i][2],
                 "KEYMARK": row[i][3],
                 "EASCO": row[i][4],
                 "WINSYS": row[i][5],
                 "DESCRIPTION": row[i][6],
                 "MODEL": row[i][7],
                 "LBFT": row[i][8],
                 "SH": row[i][9],
                 "CAVITY": row[i][10],
                 "LASTDATE": row[i][11],
                 "LASTUSER": row[i][12],
                 "IMAGE": row[i][13],
             }
             message.append(m)
         return (flask.jsonify(message))
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         print(e)
예제 #12
0
 def get(self):
     try:
         access_token = authenticator(request.headers.get('Authorization'))
         Data = request.args.get('status')
         cursor = db.cursor()
         if Data == "norex":
             return flask.jsonify(get_max_norex(cursor))
         elif Data == "project":
             return flask.jsonify(get_max_project(cursor))
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         return {"message": str(e)}, 500
 def put(self):
     try:
         access_token = authenticator(
             flask.request.headers.get('Authorization'))
         Data = flask.request.get_json()
         cursor = db.cursor()
         cursor.execute(
             "select QTY from inventorystorage where BARCODE = %s",
             (Data['BARCODE']))
         prev_qty = cursor.fetchone()
         if prev_qty[0] - Data['QTY'] >= 0:
             if cursor.execute(
                     'UPDATE inventorystorage set TAGSTATUS = 1, QTY = QTY - %s where BARCODE = %s',
                 (Data['QTY'], Data['BARCODE'])) == 0:
                 db.rollback()
                 return {
                     'message': 'Error - Could not find the BARCODE'
                 }, 404
             row_count = cursor.execute(
                 "select QTY from inventorystorage where BARCODE = %s",
                 (Data['BARCODE']))
             if row_count > 0:
                 row = cursor.fetchone()
                 if row[0] == 0:
                     count = move_to_empty_storage(cursor, Data['BARCODE'],
                                                   access_token['UserName'])
                     if count > 0:
                         if Log.register(
                                 request.headers.get('Authorization'),
                                 'Completed cutting all the items of barcode:%s and moved to empty storage'
                                 % Data['BARCODE'], True):
                             db.commit()
                     else:
                         return {'message': 'please try again'}, 404
                 else:
                     if Log.register(
                             request.headers.get('Authorization'),
                             'Operated on %s items of Barcode %s, remaining Quantity is %s '
                             % (Data['QTY'], str(Data['BARCODE']), row[0]),
                             True):
                         db.commit()
             return "success"
         else:
             return "contact superior", 500
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         return {"message": str(e)}, 500
예제 #14
0
 def post(self):
     try:
         access_token = authenticator(request.headers.get('Authorization'))
         parser = reqparse.RequestParser()
         parser.add_argument('PROJECTID')
         parser.add_argument('PROJECTNAME')
         parser.add_argument('FINISHID')
         parser.add_argument('FINISHNAME')
         args = parser.parse_args()
         cursor = db.cursor()
         row_count = cursor.execute(
             "insert into projects (PROJECTID,PROJECTNAME,FINISHID,FINISHNAME,LASTDATE,LASTUSER) values(%s,%s,%s,%s,%s,%s)",
             (args['PROJECTID'],
              args['PROJECTNAME'], args['FINISHID'], args['FINISHNAME'],
              datetime.datetime.now(), access_token['UserName']))
         if row_count > 0:
             if Log.register(
                     request.headers.get('Authorization'),
                     'New Project added with PID:%s ,PNAME:%s, FID:%s ,FNAME:%s'
                     % (args['PROJECTID'], args['PROJECTNAME'],
                        args['FINISHID'], args['FINISHNAME']), True):
                 db.commit()
                 return ({
                     'PROJECTID': args['PROJECTID'],
                     'PROJECTNAME': args['PROJECTNAME'],
                     'FINISHID': args['FINISHID'],
                     'FINISHNAME': args['FINISHNAME']
                 })
             else:
                 db.rollback()
                 return ({'message': 'Error - Try Again'}), 500
         else:
             db.rollback()
             return ({'message': 'Error - Try Again'}), 500
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         if "Duplicate entry" in str(e):
             message = {
                 'message': "Project %s already exists." % args['PROJECTID']
             }
         else:
             message = {"message": str(e)}
         db.rollback()
         return message, 500
예제 #15
0
 def get(self):
     try:
         access_token = authenticator(request.headers.get('Authorization'))
         message = []
         COUNT = int(request.args.get('COUNT'))
         COLUMN = request.args.get('COLUMN')
         VALUE = request.args.get('VALUE')
         print(request.args.get('ACTIVE'))
         if request.args.get('ACTIVE') == 'true':
             query = "Select DISTINCT PROJECTID, PROJECTNAME, FINISHID, FINISHNAME " \
                     "from inventorystorage " \
                     "where FINISHID != '' AND "
         else:
             query = "Select PROJECTID, PROJECTNAME, FINISHID, FINISHNAME from projects where "
         print(query)
         if COUNT >= 1:
             COLUMN = COLUMN.split(',')
             VALUE = VALUE.split(',')
             for i in range(0, COUNT):
                 if i == COUNT - 1:
                     query = query + COLUMN[
                         COUNT - 1] + ' LIKE \'%' + VALUE[COUNT - 1] + '%\''
                     break
                 query = query + COLUMN[i] + ' LIKE \'%' + VALUE[
                     i] + '%\' AND '
         else:
             query = query + COLUMN + ' 1'
         cursor = db.cursor()
         row_count = cursor.execute(query)
         if row_count == 0:
             return {"message": "project not found"}, 400
         row = cursor.fetchall()
         for i in range(0, row_count):
             message.append({
                 "PROJECTID": row[i][0],
                 "PROJECTNAME": row[i][1],
                 "FINISHID": row[i][2],
                 "FINISHNAME": row[i][3]
             })
         return flask.jsonify(message)
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         return ({'message': str(e)}), 500
 def post(self):
     access_token = authenticator(
         flask.request.headers.get('Authorization'))
     try:
         data = flask.request.get_json()
         cursor = db.cursor()
         rep = data['replacement']
         for i in range(0, len(rep)):
             if (int(rep[i]['rejection'])) > 0:
                 if cursor.execute(
                         'DELETE FROM rejection WHERE BARCODE = %s',
                         rep[i]['rejection']) > 0:
                     if cursor.execute(
                             'select TICKET from bufferpurchasingmanifest where NO = %s',
                             rep[i]['replacement']) > 0:
                         ticket = cursor.fetchone()
                         cursor.execute(
                             'UPDATE bufferpurchasingmanifest SET REPLACEMENT = 0 WHERE NO = %s',
                             (rep[i]['replacement']))
                         cursor.execute(
                             'UPDATE inventorystorage SET DESCRIPTION = %s WHERE BARCODE = %s',
                             ("replaced with " + str(ticket[0]),
                              rep[i]['rejection']))
                         if not Log.register(
                                 flask.request.headers.get('Authorization'),
                                 "Replace item " +
                                 str(rep[i]['replacement']), True):
                             db.rollback()
                             return {'message': 'try again'}, 500
                     else:
                         db.rollback()
                         return {'message': 'try again'}, 500
                 else:
                     db.rollback()
                     return {'message': 'try again'}, 500
         db.commit()
         return flask.jsonify(
             get_from_buffer_manifest(cursor, access_token['UserName'],
                                      False))
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         db.rollback()
         return {'message': 'try again'}, 500
 def get(self):
     try:
         access_token = authenticator(
             flask.request.headers.get('Authorization'))
         cursor = db.cursor()
         if cursor.execute(
                 'SELECT QTY,NOREX,LOCATION from inventorystorage WHERE BARCODE = %s',
             (request.args.get('BARCODE'))) == 0:
             return {"message": "No such Barcode exists"}, 404
         else:
             data = cursor.fetchone()
             if cursor.execute(
                     "SELECT IMAGE from rawvalues where NOREX = %s and LOCATION = %s",
                 (data[1], data[2])) > 0:
                 value = cursor.fetchone()
                 return (flask.jsonify({"QTY": data[0], "IMAGE": value[0]}))
             else:
                 return {"message": "No such Image exists"}, 404
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         return ({'message': str(e)}), 500
예제 #18
0
 def post(self):
     data = {}
     try:
         access_token = authenticator(request.headers.get('Authorization'))
         data = request.get_json()
         cursor = db.cursor()
         if cursor.execute(
                 "insert into colors (FINISHID,FINISHNAME,LASTDATE,LASTUSER) values(%s,%s,%s,%s)",
             (data['FINISHID'], data['FINISHNAME'], datetime.datetime.now(),
              access_token['UserName'])) > 0:
             if Log.register(
                     request.headers.get('Authorization'),
                     'New Color added with FID:%s, FNAME:%s ' %
                 (data['FINISHID'], data['FINISHNAME']), True):
                 db.commit()
                 return ({
                     'FINISHID': data['FINISHID'],
                     'FINISHNAME': data['FINISHNAME']
                 })
             else:
                 db.rollback()
                 return ({'message': 'Error - Try Again'}), 500
         else:
             db.rollback()
             return ({'message': 'Error - Try Again'}), 500
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         if "Duplicate entry" in str(e):
             message = {
                 'message': "Color %s already exists." % data['FINISHID']
             }
         else:
             message = {"message": str(e)}
         db.rollback()
         return message, 500
예제 #19
0
 def put(self):
     try:
         access_token = authenticator(request.headers.get('Authorization'))
         message = []
         parser = reqparse.RequestParser()
         parser.add_argument('BARCODE')
         parser.add_argument('QTY')
         args = parser.parse_args()
         cursor = db.cursor()
         row_count = cursor.execute(
             'select * from inventorystorage where BARCODE=%s',
             args['BARCODE'])
         row = cursor.fetchone()
         if int(row[12]) == int(args['QTY']):
             if cursor.execute(
                     "Update inventorystorage set TAG = 0, SHIPMENTDATE = '1990-01-01', PROJECTID = '', PROJECTNAME = '', NBP = 0, ASTRO = '', KEYMARK = '', DESCRIPTION = '', FINISHID = '', FINISHNAME = '', LENGTH=0, QTY = 0, LBFT = 0, NETWEIGHT = 0, NOREX='REJECTION', LOCATION = 'REJECTION', LOCATIONGRID = '', MODEL = '', EASCO = '', EXTRUDER = '', NAtoLOC = 0, TAGSTATUS = 0,  LASTDATE= %s, LASTUSER= %s,TICKET = 0 WHERE BARCODE=%s",
                 (datetime.datetime.now(), access_token['UserName'],
                  args['BARCODE'])) > 0:
                 if cursor.execute(
                         "INSERT into rejection(REJECTIONDATE,BARCODE,TAG,SHIPMENTDATE,PROJECTID,PROJECTNAME,NBP,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION,LOCATIONGRID,MODEL,EASCO,EXTRUDER,TAGSTATUS,LASTDATE,LASTUSER) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",
                     (datetime.datetime.now(), row[0], row[1], row[2],
                      row[3], row[4], row[5], row[6], row[7], row[8],
                      row[9], row[10], row[11], row[12], row[13], row[14],
                      row[15], row[16], row[17], row[18], row[19], row[20],
                      row[22], datetime.datetime.now(),
                      access_token['UserName'])) > 0:
                     if Log.register(request.headers.get('Authorization'),
                                     'Reject item ' + args['BARCODE'],
                                     True):
                         new_barcode = args['BARCODE']
                         db.commit()
                     else:
                         return {"message": "Try again"}, 500
                 else:
                     return {"message": "Try again"}, 500
             else:
                 return {"message": "Try again"}, 500
         elif int(row[12]) > int(args['QTY']) > 0:
             NQTY = int(row[12]) - int(args['QTY'])
             if cursor.execute(
                     "Update inventorystorage set QTY = %s WHERE BARCODE =%s",
                 (NQTY, args['BARCODE'])) > 0:
                 if cursor.execute(
                         'select MAX(BARCODE) from inventorystorage') > 0:
                     new_barcode = int(cursor.fetchone()[0]) + 1
                     if cursor.execute(
                             "INSERT INTO inventorystorage (BARCODE ,NOREX, LOCATION,TAG, SHIPMENTDATE , PROJECTID , PROJECTNAME , NBP , ASTRO , KEYMARK , DESCRIPTION , FINISHID , FINISHNAME , LENGTH,QTY , LBFT , NETWEIGHT , LOCATIONGRID , MODEL , EASCO , EXTRUDER , NAtoLOC , TAGSTATUS ,  LASTDATE, LASTUSER,TICKET) VALUES (%s,'REJECTION','REJECTION',0,'1990-01-01','','',0,'','','','','',0,0,0,0,'','','','',0,0,%s,%s,0)",
                         (new_barcode, datetime.datetime.now(),
                          access_token['UserName'])) > 0:
                         if cursor.execute(
                                 "INSERT into rejection(REJECTIONDATE,BARCODE,TAG,SHIPMENTDATE,PROJECTID,PROJECTNAME,NBP,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION,LOCATIONGRID,MODEL,EASCO,EXTRUDER,TAGSTATUS,LASTDATE,LASTUSER) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",
                             (datetime.datetime.now(), new_barcode, row[1],
                              row[2], row[3], row[4], row[5], row[6],
                              row[7], row[8], row[9], row[10], row[11],
                              args['QTY'], row[13], row[14], row[15],
                              row[16], row[17], row[18], row[19], row[20],
                              row[22], datetime.datetime.now(),
                              access_token['UserName'])) > 0:
                             if Log.register(
                                     request.headers.get('Authorization'),
                                     'Reject item ' + str(new_barcode),
                                     True):
                                 db.commit()
                             else:
                                 db.rollback()
                                 return {"message": "Try again"}, 500
                         else:
                             return {"message": "Try again"}, 500
                     else:
                         return {"message": "Try again"}, 500
                 else:
                     return {"message": "Try again"}, 500
             else:
                 return {"message": "invalid Qty"}, 500
         else:
             return {"message": "invalid Qty"}, 500
         cursor.execute(
             'SELECT REJECTIONDATE,BARCODE,TAG,SHIPMENTDATE,PROJECTID,PROJECTNAME,NBP,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION,LOCATIONGRID,MODEL,EASCO,EXTRUDER FROM rejection WHERE BARCODE = %s',
             new_barcode)
         res = cursor.fetchone()
         return flask.jsonify({
             "REJECTIONDATE": res[0],
             "BARCODE": res[1],
             "TAG": res[2],
             "SHIPMENTDATE": res[3],
             "PROJECTID": res[4],
             "PROJECTNAME": res[5],
             "NBP": res[6],
             "ASTRO": res[7],
             "KEYMARK": res[8],
             "DESCRIPTION": res[9],
             "FINISHID": res[10],
             "FINISHNAME": res[11],
             "LENGTH": res[12],
             "QTY": res[13],
             "LBFT": res[14],
             "NETWEIGHT": res[15],
             "NOREX": res[16],
             "LOCATION": res[17],
             "LOCATIONGRID": res[18],
             "MODEL": res[19],
             "EASCO": res[20],
             "EXTRUDER": res[21]
         })
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         return ({'message': str(e)}), 500
예제 #20
0
 def get(self):
     try:
         access_token = authenticator(request.headers.get('Authorization'))
         message = []
         query = "Select REJECTIONDATE,BARCODE,TAG,SHIPMENTDATE,PROJECTID,PROJECTNAME,NBP,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION,LOCATIONGRID,MODEL,EASCO,EXTRUDER,TAGSTATUS,LASTDATE,LASTUSER from rejection where "
         COUNT = int(request.args.get('COUNT'))
         COLUMN = request.args.get('COLUMN')
         VALUE = request.args.get('VALUE')
         if COUNT >= 1:
             COLUMN = COLUMN.split(',')
             VALUE = VALUE.split(',')
             for i in range(0, COUNT):
                 if i == COUNT - 1:
                     if COLUMN[COUNT - 1] == "REJECTIONDATE":
                         query = query + COLUMN[COUNT - 1] + ' >= \'' + str(
                             datetime.datetime.strptime(
                                 VALUE[COUNT - 1], '%m/%d/%y')
                         ) + '\' AND ' + COLUMN[COUNT - 1] + ' < \'' + str(
                             datetime.datetime.strptime(
                                 VALUE[COUNT - 1], '%m/%d/%y') +
                             datetime.timedelta(days=1)) + '\''
                     else:
                         query = query + COLUMN[
                             COUNT - 1] + ' LIKE \'%' + VALUE[COUNT -
                                                              1] + '%\''
                     break
                 else:
                     if COLUMN[i] == "REJECTIONDATE":
                         query = query + COLUMN[i] + ' >= \'' + str(
                             datetime.datetime.strptime(
                                 VALUE[i], '%m/%d/%y')
                         ) + '\' AND ' + COLUMN[i] + ' < \'' + str(
                             datetime.datetime.strptime(
                                 VALUE[i], '%m/%d/%y') +
                             datetime.timedelta(days=1)) + '\' AND '
                     else:
                         query = query + COLUMN[i] + ' LIKE \'%' + VALUE[
                             i] + '%\' AND '
         else:
             query = query + COLUMN + ' 1'
         cursor = db.cursor()
         row_count = cursor.execute(query)
         row = cursor.fetchall()
         for i in range(0, row_count):
             message.append({
                 "REJECTIONDATE": row[i][0],
                 "BARCODE": row[i][1],
                 "TAG": row[i][2],
                 "SHIPMENTDATE": row[i][3],
                 "PROJECTID": row[i][4],
                 "PROJECTNAME": row[i][5],
                 "NBP": row[i][6],
                 "ASTRO": row[i][7],
                 "KEYMARK": row[i][8],
                 "DESCRIPTION": row[i][9],
                 "FINISHID": row[i][10],
                 "FINISHNAME": row[i][11],
                 "LENGTH": row[i][12],
                 "QTY": row[i][13],
                 "LBFT": row[i][14],
                 "NETWEIGHT": row[i][15],
                 "NOREX": row[i][16],
                 "LOCATION": row[i][17],
                 "LOCATIONGRID": row[i][18],
                 "MODEL": row[i][19],
                 "EASCO": row[i][20],
                 "EXTRUDER": row[i][20],
                 "TAGSTATUS": row[i][21],
                 "LASTDATE": row[i][22],
                 "LASTUSER": row[i][23]
             })
         return flask.jsonify(message)
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         return ({'message': str(e)}), 500
 def post(self):
     try:
         flag = 0
         try:
             data = flask.request.get_json()
         except HTTPException as e:
             raise BadRequest("Bad Request")
         cursor = db.cursor()
         message = []
         response = {}
         replacementProject = []
         replacementNorex = []
         t = str(datetime.datetime.today().now())
         access_token = authenticator(
             flask.request.headers.get('Authorization'))
         try:
             cursor.execute(
                 'DELETE FROM bufferpurchasingmanifest WHERE USER = %s',
                 access_token['UserName'])
         except InterfaceError as e:
             CreateApi.reAssignDb()
             print(e)
         except Exception as e:
             return {"message": str(e)}, 500
         if data['Company'] == "Astro":
             for i in range(0, len(data['Data'])):
                 try:
                     row = get_rawvalues(cursor, 'ASTRO',
                                         data['Data'][i]['Die#'])
                     s = data['Data'][i]['NBP PO#'].split('/ID # ')
                     project = get_project(cursor, s[1])
                     if data['Data'][i]['rep'] == "1":
                         replacementNorex.append(row[0])
                         replacementProject.append(s[1])
                     if data['Data'][i]['Finish'] == 'MILL FINISH' or data[
                             'Data'][i]['Finish'] == 'CLEAR ANODIZE':
                         finishid = data['Data'][i]['Finish']
                         color = data['Data'][i]['Finish']
                     else:
                         if s[1] == "9999":
                             finishid = get_color(cursor,
                                                  data['Data'][i]['Finish'])
                             color = data['Data'][i]['Finish']
                         else:
                             finishid = project[1]
                             color = project[2]
                     netwt = calculate_netweight(data['Data'][i]['Length'],
                                                 data['Data'][i]['Pcs'],
                                                 row[4])
                     if data['Data'][i]['rep'] == "1" and flag == 0:
                         flag = 1
                     insert_into_buffer_manifest(
                         cursor, t,
                         datetime.datetime.strptime(
                             data['Data'][i]['ShipD'],
                             '%m/%d/%y').date(), "ASTRO", s[1], project[0],
                         s[0], data['Data'][i]['BL#'],
                         data['Data'][i]['Manifest'],
                         data['Data'][i]['Ticket#'], data['Data'][i]['SO#'],
                         data['Data'][i]['Item#'], data['Data'][i]['Die#'],
                         row[6], row[3], finishid, color,
                         data['Data'][i]['Length'], data['Data'][i]['Pcs'],
                         row[4], data['Data'][i]['NetWt'], netwt, row[0],
                         row[2], row[1], access_token['UserName'], t,
                         access_token['UserName'], data['Data'][i]['rep'],
                         data['fileName'])
                 except ColorNotFound as e:
                     return {'message': str(e)}, 404
                 except ProjectNotFound as e:
                     return {'message': str(e)}, 404
                 except NorexNotFound as e:
                     return {'message': str(e)}, 404
                 except InterfaceError as e:
                     CreateApi.reAssignDb()
                     print(e)
                 except Exception as e:
                     return {'message': str(e)}, 500
         elif data['Company'] == "Keymark":
             try:
                 for i in range(0, len(data['Data'])):
                     row = get_rawvalues(cursor, 'KEYMARK',
                                         data['Data'][i]['DieNum'])
                     if data['Data'][i]['rep'] == "1":
                         replacementNorex.append(row[0])
                         replacementProject.append(
                             data['Data'][i]['ProjectID'])
                     project = get_project(cursor,
                                           data['Data'][i]['ProjectID'])
                     if data['Data'][i][
                             'FinishDescrip'] == 'MILL FINISH' or data[
                                 'Data'][i][
                                     'FinishDescrip'] == 'CLEAR ANODIZE':
                         finishid = data['Data'][i]['FinishDescrip']
                         color = data['Data'][i]['FinishDescrip']
                     else:
                         if data['Data'][i]['ProjectID'] == "9999":
                             finishid = get_color(
                                 cursor, data['Data'][i]['FinishDescrip'])
                             color = data['Data'][i]['FinishDescrip']
                         else:
                             finishid = project[1]
                             color = project[2]
                     netwt = calculate_netweight(
                         data['Data'][i]['LengthInches'],
                         data['Data'][i]['Pcs'], row[4])
                     if data['Data'][i]['rep'] == "1" and flag == 0:
                         flag = 1
                     insert_into_buffer_manifest(
                         cursor, t,
                         datetime.datetime.strptime(
                             data['Data'][i]['ShipDt'],
                             '%m/%d/%y').date(), "KEYMARK",
                         data['Data'][i]['ProjectID'], project[0],
                         data['Data'][i]['PONum'], data['Data'][i]['BLNum'],
                         data['Data'][i]['Manifest'],
                         data['Data'][i]['TicketNum'],
                         data['Data'][i]['SONum'],
                         data['Data'][i]['SOItemNum'], row[5],
                         data['Data'][i]['DieNum'], row[3], finishid, color,
                         data['Data'][i]['LengthInches'],
                         data['Data'][i]['Pcs'], row[4],
                         data['Data'][i]['NetWt'], netwt, row[0], row[2],
                         row[1], access_token['UserName'], t,
                         access_token['UserName'], data['Data'][i]['rep'],
                         data['fileName'])
             except ColorNotFound as e:
                 return {'message': str(e)}, 404
             except ProjectNotFound as e:
                 return {'message': str(e)}, 404
             except NorexNotFound as e:
                 return {'message': str(e)}, 404
             except InterfaceError as e:
                 CreateApi.reAssignDb()
                 print(e)
             except Exception as e:
                 return {'message': str(e)}, 500
         else:
             try:
                 for i in range(0, len(data['Data'])):
                     if data['Data'][i]['rep'] == "1":
                         replacementNorex.append(data['Data'][i]['NOREX'])
                         replacementProject.append(
                             data['Data'][i]['ProjectID'])
                     if cursor.execute(
                             'select NOREX,MODEL,LOCATION,DESCRIPTION,LBFT,KEYMARK,ASTRO from rawvalues where NOREX= %s AND LOCATION = %s',
                         (data['Data'][i]['NOREX'],
                          data['Data'][i]['LOCATION'])) == 0:
                         return {
                             "message":
                             "Can not find NOREX: " +
                             data['Data'][i]['NOREX'] + ", LOCATION: " +
                             data['Data'][i]['LOCATION']
                         }, 404
                     row = cursor.fetchone()
                     project = get_project(cursor,
                                           data['Data'][i]['ProjectID'])
                     if data['Data'][i][
                             'FinishDescrip'] == 'MILL FINISH' or data[
                                 'Data'][i][
                                     'FinishDescrip'] == 'CLEAR ANODIZE':
                         finishid = data['Data'][i]['FinishDescrip']
                         color = data['Data'][i]['FinishDescrip']
                     else:
                         if data['Data'][i]['ProjectID'] == "9999":
                             finishid = get_color(
                                 cursor, data['Data'][i]['FinishDescrip'])
                             color = data['Data'][i]['FinishDescrip']
                         else:
                             finishid = project[1]
                             color = project[2]
                     netwt = calculate_netweight(
                         data['Data'][i]['LengthInches'],
                         data['Data'][i]['Pcs'], row[4])
                     if data['Data'][i]['rep'] == "1" and flag == 0:
                         flag = 1
                     if cursor.execute(
                             'insert into bufferpurchasingmanifest(UPLOADDATE,SHIPMENTDATE,EXTRUDER,PROJECTID,PROJECTNAME,NBP,BL,MANIFEST,TICKET,SO,ITEM,KEYMARK,ASTRO,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHTexcel,NETWEIGHTnorex,NOREX,LOCATION,MODEL,USER,LASTDATE,LASTUSER,REPLACEMENT,FILENAME)'
                             ' values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)',
                         (t,
                          datetime.datetime.strptime(
                              data['Data'][i]['ShipDt'], '%m/%d/%y').date(),
                          data['Company'], data['Data'][i]['ProjectID'],
                          project[0], data['Data'][i]['PONum'],
                          data['Data'][i]['BLNum'],
                          data['Data'][i]['Manifest'],
                          data['Data'][i]['TicketNum'],
                          data['Data'][i]['SONum'],
                          data['Data'][i]['SOItemNum'], row[5], row[6],
                          row[3], finishid, color,
                          data['Data'][i]['LengthInches'],
                          data['Data'][i]['Pcs'], row[4],
                          data['Data'][i]['NetWt'], netwt, row[0], row[2],
                          row[1], access_token['UserName'], t,
                          access_token['UserName'], data['Data'][i]['rep'],
                          data['fileName'])) == 0:
                         db.rollback()
                         return {'message': 'try again'}, 500
             except ColorNotFound as e:
                 return {'message': str(e)}, 404
             except ProjectNotFound as e:
                 return {'message': str(e)}, 404
             except NorexNotFound as e:
                 return {'message': str(e)}, 404
             except InterfaceError as e:
                 CreateApi.reAssignDb()
                 print(e)
             except Exception as e:
                 raise BadRequest(str(e))
         if flag == 0:
             try:
                 response["state"] = "manifestData"
                 response["data"] = get_from_buffer_manifest(
                     cursor, access_token['UserName'], False)
             except InterfaceError as e:
                 CreateApi.reAssignDb()
                 print(e)
             except Exception as e:
                 raise BadRequest(str(e))
         else:
             response["replacement"] = get_from_buffer_manifest(
                 cursor, access_token['UserName'], True)
             response["rejection"] = get_rejection_for_replacement(
                 cursor, replacementProject, replacementNorex)
             response["state"] = "reject"
         y = Log.register(
             flask.request.headers.get('Authorization'),
             "new manifest added of " + data['Company'] +
             " Extruder(filename:%s)" % data['fileName'], True)
         if y:
             db.commit()
         else:
             return {"message": "Try again"}, 500
         return (flask.jsonify(response))
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         print(e)
 def get(self):
     access_token = authenticator(
         flask.request.headers.get('Authorization'))
     parser = reqparse.RequestParser()
     parser.add_argument('date', required=True, help='date is required')
     try:
         args = parser.parse_args()
     except HTTPException as e:
         raise BadRequest("Bad Request")
     cursor = db.cursor()
     if (args['date'] != ''):
         date = str(dateparser.parse(args['date']))
         try:
             if access_token['Role'] == 'admin':
                 row_count = cursor.execute(
                     "SELECT NO,UPLOADDATE,SHIPMENTDATE,EXTRUDER,PROJECTID,PROJECTNAME,NBP,BL,MANIFEST,TICKET,SO,ITEM,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION,MODEL,USER,LASTDATE,LASTUSER FROM purchasingmanifest WHERE UPLOADDATE =%s",
                     dateparser.parse(date))
             else:
                 row_count = cursor.execute(
                     "SELECT NO,UPLOADDATE,SHIPMENTDATE,EXTRUDER,PROJECTID,PROJECTNAME,NBP,BL,MANIFEST,TICKET,SO,ITEM,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION,MODEL,USER,LASTDATE,LASTUSER FROM purchasingmanifest WHERE UPLOADDATE =%s AND USER = %s",
                     (dateparser.parse(date), access_token['UserName']))
             row = cursor.fetchall()
             message = []
             for i in range(0, row_count):
                 message.append({
                     "NO": row[i][0],
                     "UPLOADDATE": row[i][1],
                     "SHIPMENTDATE": row[i][2],
                     "EXTRUDER": row[i][3],
                     "PROJECTID": row[i][4],
                     "PROJECTNAME": row[i][5],
                     "NBP": row[i][6],
                     "BL": row[i][7],
                     "MANIFEST": row[i][8],
                     "TICKET": row[i][9],
                     "SO": row[i][10],
                     "ITEM": row[i][11],
                     "ASTRO": row[i][12],
                     "KEYMARK": row[i][13],
                     "DESCRIPTION": row[i][14],
                     "FINISHID": row[i][15],
                     "FINISHNAME": row[i][16],
                     "LENGTH": row[i][17],
                     "QTY": row[i][18],
                     "LBFT": row[i][19],
                     "NETWEIGHT": row[i][20],
                     "NOREX": row[i][21],
                     "LOCATION": row[i][22],
                     "MODEL": row[i][23],
                     "USER": row[i][24],
                     "LASTDATE": row[i][25],
                     "LASTUSER": row[i][26]
                 })
         except InterfaceError as e:
             CreateApi.reAssignDb()
             print(e)
         except Exception as e:
             raise BadRequest(str(e))
         return (flask.jsonify(message))
     else:
         try:
             if access_token['Role'] == 'admin':
                 if cursor.execute(
                         'select DISTINCT UPLOADDATE,FILENAME from purchasingmanifest'
                 ) == 0:
                     return {'message': 'No manifest found'}, 404
             else:
                 row_count = cursor.execute(
                     'select DISTINCT UPLOADDATE,FILENAME from purchasingmanifest where USER = %s',
                     access_token['UserName'])
                 if row_count == 0:
                     return {'message': 'No manifest found'}, 404
             row = cursor.fetchall()
             message = []
             for i in range(0, len(row)):
                 message.append({
                     "uploadDate": row[i][0],
                     "fileName": row[i][1]
                 })
             return flask.jsonify(message)
         except InterfaceError as e:
             CreateApi.reAssignDb()
             print(e)
         except Exception as e:
             return {'message': str(e)}, 500
    def put(self):
        try:
            access_token = authenticator(
                flask.request.headers.get('Authorization'))
            t = datetime.datetime.today().strftime('%Y-%m-%d')
            parser = reqparse.RequestParser()
            parser.add_argument('NO', required=True, help='No is Required')
            parser.add_argument('Status',
                                required=True,
                                help='status is Required')
            parser.add_argument('Data', required=False)
            try:
                args = parser.parse_args()
            except HTTPException as e:
                raise BadRequest("Bad Request")
            cursor = db.cursor()
            if args['Status'] == 'perfect':
                try:
                    row_count = cursor.execute(
                        'select NO,UPLOADDATE,SHIPMENTDATE,EXTRUDER,PROJECTID,PROJECTNAME,NBP,BL,MANIFEST,TICKET,SO,ITEM,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHTexcel,NETWEIGHTnorex,NOREX,LOCATION,MODEL,USER,LASTDATE,LASTUSER,REPLACEMENT,FILENAME from bufferpurchasingmanifest where USER = %s',
                        (access_token['UserName']))
                    row = cursor.fetchall()
                    for i in range(0, row_count):
                        if cursor.execute(
                                'insert into purchasingmanifest(UPLOADDATE,SHIPMENTDATE,EXTRUDER,PROJECTID,PROJECTNAME,NBP,BL,MANIFEST,TICKET,SO,ITEM,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION,MODEL,USER,LASTDATE,LASTUSER,FILENAME) '
                                'values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)',
                            (str(row[i][1]), str(row[i][2]), str(row[i][3]),
                             str(row[i][4]), str(row[i][5]), str(row[i][6]),
                             str(row[i][7]), str(row[i][8]), str(row[i][9]),
                             str(row[i][10]), str(row[i][11]), str(row[i][12]),
                             str(row[i][13]), str(row[i][14]), str(row[i][15]),
                             str(row[i][16]), str(row[i][17]), str(row[i][18]),
                             str(row[i][19]), str(row[i][20]), str(
                                 row[i][22]), str(row[i][23]), str(
                                     row[i][24]), str(row[i][25]), t,
                             access_token['UserName'], str(row[i][29]))) == 0:
                            db.rollback()
                            return {'message', 'please try again'}, 500
                    if cursor.execute(
                            'DELETE FROM bufferpurchasingmanifest WHERE USER = %s',
                            access_token['UserName']) == 0:
                        return {'message', 'please try again'}, 500
                    # Email.email('Manifest uploaded', row, access_token['UserName'],
                    #             ['*****@*****.**'], 'manifestUpload')
                    if Log.register(flask.request.headers.get('Authorization'),
                                    "Accept manifest", True):
                        db.commit()
                        return {'status': 'perfect'}
                except InterfaceError as e:
                    CreateApi.reAssignDb()
                    print(e)
                except Exception as e:
                    return {"message": str(e)}, 500
            elif args['Status'] == 'editManifest':
                Data = flask.request.get_json()['Data']
                keys = list(Data.keys())
                try:
                    for key in keys:
                        if key == "SHIPMENTDATE":
                            row_count = cursor.execute(
                                'UPDATE purchasingmanifest SET SHIPMENTDATE = %s , LASTDATE = %s , LASTUSER = %s where NO = %s',
                                (dateparser.parse(Data['SHIPMENTDATE']),
                                 datetime.datetime.now(),
                                 access_token['UserName'], args['NO']))
                        if key == "TICKET":
                            row_count = cursor.execute(
                                'UPDATE purchasingmanifest SET TICKET = %s , LASTDATE = %s , LASTUSER = %s where NO = %s',
                                (str(Data['TICKET']), datetime.datetime.now(),
                                 access_token['UserName'], args['NO']))
                        if key == "NBP":
                            row_count = cursor.execute(
                                'UPDATE purchasingmanifest SET NBP = %s , LASTDATE = %s , LASTUSER = %s where NO = %s',
                                (str(Data['NBP']), datetime.datetime.now(),
                                 access_token['UserName'], args['NO']))
                        if key == "NOREX":
                            q_len = cursor.execute(
                                "select QTY,LENGTH from purchasingmanifest WHERE NO = %s",
                                args['NO'])
                            q = cursor.fetchone()
                            norex_len = cursor.execute(
                                'SELECT MODEL,DESCRIPTION,LBFT,ASTRO,KEYMARK FROM rawvalues where NOREX = %s AND LOCATION = %s ',
                                (Data['NOREX'], Data['LOCATION']))
                            norex = cursor.fetchone()
                            if norex_len == 0:
                                raise BadRequest("Norex Not Found")
                            netwt = calculate_netweight(q[0], q[1], norex[2])
                            row_count = cursor.execute(
                                'UPDATE purchasingmanifest SET NOREX = %s, LOCATION = %s, MODEL = %s ,DESCRIPTION = %s ,LBFT = %s ,ASTRO = %s ,KEYMARK= %s , NETWEIGHT = %s , LASTDATE = %s , LASTUSER = %s where NO = %s',
                                (Data['NOREX'], Data['LOCATION'], norex[0],
                                 norex[1], norex[2], norex[3], norex[4], netwt,
                                 datetime.datetime.now(),
                                 access_token['UserName'], args['NO']))
                        if key == "PROJECTID":
                            try:
                                if not update_project(
                                        cursor, Data['PROJECTID'],
                                        'purchasingmanifest', 'NO', args['NO'],
                                        access_token['UserName'],
                                        access_token['Role']):
                                    return {'message', 'please try again'}, 500
                            except ProjectNotFound as e:
                                return {'message': str(e)}, 404
                            except Exception as e:
                                return {'message': str(e)}, 500
                        if key == "QTY":
                            cursor.execute(
                                "select LENGTH,NOREX,LOCATION from purchasingmanifest WHERE NO = %s",
                                args['NO'])
                            LEN = cursor.fetchone()
                            cursor.execute(
                                'SELECT LBFT FROM rawvalues where NOREX = %s AND LOCATION = %s',
                                (LEN[1], LEN[2]))
                            LBFT = cursor.fetchone()
                            netwt = calculate_netweight(
                                Data['QTY'], LEN[0], LBFT[0])
                            row_count = cursor.execute(
                                'UPDATE purchasingmanifest SET QTY = %s ,NETWEIGHT = %s, LASTDATE = %s , LASTUSER = %s where NO = %s',
                                (Data['QTY'], netwt, datetime.datetime.now(),
                                 access_token['UserName'], args['NO']))
                        if key == "LENGTH":
                            cursor.execute(
                                "select QTY,NOREX,LOCATION from purchasingmanifest WHERE NO = "
                                + args['NO'])
                            QTY = cursor.fetchone()

                            cursor.execute(
                                'SELECT LBFT FROM rawvalues where NOREX = ' +
                                QTY[1] + ' AND LOCATION = "' + QTY[2] + '"')
                            LBFT = cursor.fetchone()

                            netwt = float(Data['LENGTH']) * float(
                                QTY[0]) * float(LBFT[0]) / 12

                            row_count = cursor.execute(
                                'UPDATE purchasingmanifest SET LENGTH = %s ,NETWEIGHT = %s, LASTDATE = %s , LASTUSER = %s where NO = %s',
                                (str(Data['LENGTH']), str(netwt),
                                 datetime.datetime.now(),
                                 access_token['UserName'], args['NO']))
                except InterfaceError as e:
                    CreateApi.reAssignDb()
                    print(e)
                except Exception as e:
                    return {"message": str(e)}, 500
                if Log.register(flask.request.headers.get('Authorization'),
                                "Update manifest", True):
                    db.commit()
                else:
                    raise BadRequest("Try again")
                try:
                    cursor.execute(
                        'SELECT NO,UPLOADDATE,SHIPMENTDATE,EXTRUDER,PROJECTID,PROJECTNAME,NBP,BL,MANIFEST,TICKET,SO,ITEM,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION,MODEL,USER,LASTDATE,LASTUSER FROM purchasingmanifest where NO = %s',
                        args['NO'])
                    row = cursor.fetchone()
                    return flask.jsonify({
                        "NO": row[0],
                        "UPLOADDATE": row[1],
                        "SHIPMENTDATE": row[2],
                        "EXTRUDER": row[3],
                        "PROJECTID": row[4],
                        "PROJECTNAME": row[5],
                        "NBP": row[6],
                        "BL": row[7],
                        "MANIFEST": row[8],
                        "TICKET": row[9],
                        "SO": row[10],
                        "ITEM": row[11],
                        "ASTRO": row[12],
                        "KEYMARK": row[13],
                        "DESCRIPTION": row[14],
                        "FINISHID": row[15],
                        "FINISHNAME": row[16],
                        "LENGTH": row[17],
                        "QTY": row[18],
                        "LBFT": row[19],
                        "NETWEIGHT": row[20],
                        "NOREX": row[21],
                        "LOCATION": row[22],
                        "MODEL": row[23],
                        "USER": row[24],
                        "LASTDATE": row[25],
                        "LASTUSER": row[26]
                    })
                except InterfaceError as e:
                    CreateApi.reAssignDb()
                    print(e)
                except Exception as e:
                    return {"message": str(e)}, 500
        except InterfaceError as e:
            CreateApi.reAssignDb()
            print(e)
        except Exception as e:
            print(e)
예제 #24
0
 def post(self):
     try:
         access_token = authenticator(
             flask.request.headers.get('Authorization'))
         Data = flask.request.get_json()
         cursor = db.cursor()
         message = []
         reportArr = []
         if (Data['status'] == 'print'):
             for i in range(0, len(Data['data'])):
                 row_cnt = cursor.execute(
                     'SELECT SHIPMENTDATE,EXTRUDER,PROJECTID,PROJECTNAME,NBP,BL,MANIFEST,TICKET,SO,ITEM,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION FROM warehousemanifest where NO = %s',
                     Data['data'][i]['NO'])
                 r = cursor.fetchone()
                 model_count = cursor.execute(
                     'SELECT MODEL,EASCO,IMAGE from rawvalues where NOREX = %s and LOCATION = %s',
                     (r[19], r[20]))
                 c = cursor.fetchone()
                 if (model_count > 0):
                     max_barcode = cursor.execute(
                         "SELECT MAX(BARCODE) from inventorystorage")
                     b = cursor.fetchone()
                     if b[0] == None:
                         bar = 0
                     else:
                         bar = int(b[0])
                     if Data['data'][i]['actualQty'] and (
                             r[16] - Data['data'][i]['actualQty']) != 0:
                         reportOb = list(r)
                         reportOb.append(Data['data'][i]['actualQty'])
                         reportOb.append(r[16] -
                                         Data['data'][i]['actualQty'])
                         reportArr.append(reportOb)
                         newQty = Data['data'][i]['actualQty']
                     else:
                         newQty = r[16]
                     cursor.execute(
                         "INSERT into inventorystorage(BARCODE,TAG,SHIPMENTDATE,PROJECTID,PROJECTNAME,NBP,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION,LOCATIONGRID,MODEL,EASCO,EXTRUDER,NAtoLOC,TAGSTATUS,LASTDATE,LASTUSER,TICKET) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",
                         ((bar + 1), (bar + tag_inc), r[0], r[2], r[3],
                          r[4], r[10], r[11], r[12], r[13], r[14], r[15],
                          newQty, r[17], r[18], r[19], r[20], 'NA', c[0],
                          c[1], r[1], 0, 0, datetime.datetime.now(),
                          access_token['UserName'], r[7]))
                     cursor.execute(
                         "DELETE from warehousemanifest where NO = %s",
                         (Data['data'][i]['NO']))
                     row_count = cursor.execute(
                         "SELECT * FROM inventorystorage where BARCODE = %s",
                         (int(bar + 1)))
                     row = cursor.fetchone()
                     if (row_count > 0):
                         message.append({
                             "BARCODE": row[0],
                             "TAG": row[1],
                             "SHIPMENTDATE": row[2],
                             "PROJECTID": row[3],
                             "PROJECTNAME": row[4],
                             "NBP": row[5],
                             "ASTRO": row[6],
                             "KEYMARK": row[7],
                             "DESCRIPTION": row[8],
                             "FINISHID": row[9],
                             "FINISHNAME": row[10],
                             "LENGTH": row[11],
                             "QTY": row[12],
                             "LBFT": row[13],
                             "NETWEIGHT": row[14],
                             "NOREX": row[15],
                             "LOCATION": row[16],
                             "LOCATIONGRID": row[17],
                             "MODEL": row[18],
                             "EASCO": row[19],
                             "EXTRUDER": row[20],
                             "NAtoLOC": row[21],
                             "TAGSTATUS": row[22],
                             "LASTDATE": row[23],
                             "LASTUSER": row[24],
                             "TICKET": row[25],
                             "IMAGE": c[2]
                         })
                     else:
                         message = 'ERROR: No MODEL found for given NOREX + LOCATION'
             if (reportArr != []):
                 Email.email('Exception in Quantity', reportArr,
                             access_token['UserName'],
                             ['*****@*****.**'], 'exceptionInQty')
             l = Log
             x = l.register(request.headers.get('Authorization'),
                            'Warehouse- Print', True)
             if x == True:
                 db.commit()
             return flask.jsonify(message)
         else:
             message = 'ERROR: You have not sent data properly in request, Either send "print" OR "reject" in status field'
             return (flask.jsonify(message))
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         print(e)
 def delete(self):
     try:
         access_token = authenticator(
             flask.request.headers.get('Authorization'))
         try:
             Data = flask.request.get_json()
         except HTTPException as e:
             raise BadRequest("Bad Request")
         cursor = db.cursor()
         if Data['status'] == 'delete':
             try:
                 cursor.execute(
                     "DELETE from purchasingmanifest where UPLOADDATE = %s and USER = %s",
                     (dateparser.parse(
                         Data['date']), access_token['UserName']))
             except InterfaceError as e:
                 CreateApi.reAssignDb()
                 print(e)
             except Exception as e:
                 return {"message": str(e)}, 500
             db.commit()
         elif (Data['status'] == 'addtowarehouse'):
             try:
                 user_count = cursor.execute(
                     "SELECT NO,UPLOADDATE,SHIPMENTDATE,EXTRUDER,PROJECTID,PROJECTNAME,NBP,BL,MANIFEST,TICKET,SO,ITEM,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION,LASTDATE,LASTUSER from purchasingmanifest where UPLOADDATE = %s and USER = %s",
                     (dateparser.parse(
                         Data['date']), access_token['UserName']))
             except InterfaceError as e:
                 CreateApi.reAssignDb()
                 print(e)
             except Exception as e:
                 return {"message": str(e)}, 500
             user = cursor.fetchall()
             try:
                 for i in range(0, user_count):
                     cursor.execute(
                         'INSERT into warehousemanifest (UPLOADDATE,SHIPMENTDATE,EXTRUDER,PROJECTID,PROJECTNAME,NBP,BL,MANIFEST,TICKET,SO,ITEM,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION,LASTDATE,LASTUSER) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)',
                         (str(user[i][1]), str(user[i][2]), str(user[i][3]),
                          str(user[i][4]), str(user[i][5]), str(user[i][6]),
                          str(user[i][7]), str(user[i][8]), str(user[i][9]),
                          str(user[i][10]), str(user[i][11]),
                          str(user[i][12]), str(user[i][13]),
                          str(user[i][14]), str(user[i][15]),
                          str(user[i][16]), str(user[i][17]),
                          str(user[i][18]), str(user[i][19]),
                          str(user[i][20]), str(user[i][21]),
                          str(user[i][22]), datetime.datetime.now(),
                          str(access_token['UserName'])))
                 cursor.execute(
                     "DELETE from purchasingmanifest where UPLOADDATE = %s and USER = %s",
                     (dateparser.parse(
                         Data['date']), access_token['UserName']))
             except InterfaceError as e:
                 CreateApi.reAssignDb()
                 print(e)
             except Exception as e:
                 return {"message": str(e)}, 500
             db.commit()
         return ({"message": "success"})
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         print(e)
예제 #26
0
 def delete(self):
     try:
         access_token = authenticator(
             flask.request.headers.get('Authorization'))
         Data = flask.request.get_json()
         s = "SELECT BARCODE,TAG,SHIPMENTDATE,PROJECTID,PROJECTNAME,NBP,ASTRO,KEYMARK,DESCRIPTION,FINISHID,FINISHNAME,LENGTH,QTY,LBFT,NETWEIGHT,NOREX,LOCATION,LOCATIONGRID,MODEL,EASCO,EXTRUDER,NAtoLOC,TAGSTATUS,LASTDATE,LASTUSER,TICKET from inventorystorage "
         query = []
         values = []
         result = []
         cursor = db.cursor()
         if (Data['BARCODE'] != ""):
             query.append("BARCODE LIKE %s")
             values.append("%" + str(Data['BARCODE'] + "%"))
         if (Data['TAG'] != ""):
             query.append("TAG LIKE %s")
             values.append("%" + str(Data['TAG']) + "%")
         if (Data['SHIPMENTDATE'] != ""):
             query.append("SHIPMENTDATE LIKE %s")
             values.append(
                 "%" + str(dateparser.parse(Data['SHIPMENTDATE']).date()) +
                 "%")
         if (Data['PROJECTID'] != ""):
             query.append("PROJECTID LIKE %s")
             values.append(str("%" + Data['PROJECTID'] + "%"))
         if (Data['PROJECTNAME'] != ""):
             query.append("PROJECTNAME LIKE %s")
             values.append(str("%" + Data['PROJECTNAME'] + "%"))
         if (Data['NBP'] != ""):
             query.append("NBP LIKE %s")
             values.append("%" + str(Data['NBP']) + "%")
         if (Data['ASTRO'] != ""):
             query.append("ASTRO LIKE %s")
             values.append(str("%" + Data['ASTRO'] + "%"))
         if (Data['KEYMARK'] != ""):
             query.append("KEYMARK LIKE %s")
             values.append("%" + str(Data['KEYMARK']) + "%")
         if (Data['DESCRIPTION'] != ""):
             query.append("DESCRIPTION LIKE %s")
             values.append("%" + str(Data['DESCRIPTION']) + "%")
         if (Data['FINISHID'] != ""):
             query.append("FINISHID LIKE %s")
             values.append("%" + str(Data['FINISHID']) + "%")
         if (Data['FINISHNAME'] != ""):
             query.append("FINISHNAME LIKE %s")
             values.append("%" + str(Data['FINISHNAME']) + "%")
         if (Data['LENGTH'] != ""):
             query.append("LENGTH LIKE %s")
             values.append("%" + str(Data['LENGTH']) + "%")
         if (Data['QTY'] != ""):
             query.append("QTY LIKE %s")
             values.append("%" + str(Data['QTY']) + "%")
         if (Data['LBFT'] != ""):
             query.append("LBFT LIKE %s")
             values.append("%" + str(Data['LBFT']) + "%")
         if (Data['NETWEIGHT'] != ""):
             query.append("%" + "NETWEIGHT LIKE %s" + "%")
             values.append("%" + str(Data['NETWEIGHT']) + "%")
         if (Data['NOREX'] != ""):
             query.append("NOREX LIKE %s")
             values.append("%" + str(Data['NOREX']) + "%")
         if (Data['LOCATION'] != ""):
             query.append("LOCATION LIKE %s")
             values.append("%" + str(Data['LOCATION']) + "%")
         if (Data['LOCATIONGRID'] != ""):
             query.append("LOCATIONGRID LIKE %s")
             values.append("%" + str(Data['LOCATIONGRID']) + "%")
         if (Data['MODEL'] != ""):
             query.append("MODEL LIKE %s")
             values.append("%" + str(Data['MODEL']) + "%")
         if (Data['EASCO'] != ""):
             query.append("EASCO LIKE %s")
             values.append("%" + str(Data['EASCO']) + "%")
         if (Data['EXTRUDER'] != ""):
             query.append("EXTRUDER LIKE %s")
             values.append("%" + str(Data['EXTRUDER']) + "%")
         if (Data['NAtoLOC'] != ""):
             query.append("NAtoLOC LIKE %s")
             values.append("%" + str(Data['NAtoLOC']) + "%")
         if (Data['TAGSTATUS'] != ""):
             query.append("TAGSTATUS LIKE %s")
             values.append("%" + str(Data['TAGSTATUS']) + "%")
         if (len(query) != 0):
             query = ' and '.join([str(x) for x in query])
             # values = ', '.join([str(x) for x in values])
             s = s + "where " + query
         row_count = cursor.execute(s, (values))
         row = cursor.fetchall()
         if (row_count > 0):
             for i in range(0, row_count):
                 m = {
                     "BARCODE": row[i][0],
                     "TAG": row[i][1],
                     "SHIPMENTDATE": row[i][2],
                     "PROJECTID": row[i][3],
                     "PROJECTNAME": row[i][4],
                     "NBP": row[i][5],
                     "ASTRO": row[i][6],
                     "KEYMARK": row[i][7],
                     "DESCRIPTION": row[i][8],
                     "FINISHID": row[i][9],
                     "FINISHNAME": row[i][10],
                     "LENGTH": row[i][11],
                     "QTY": row[i][12],
                     "LBFT": row[i][13],
                     "NETWEIGHT": row[i][14],
                     "NOREX": row[i][15],
                     "LOCATION": row[i][16],
                     "LOCATIONGRID": row[i][17],
                     "MODEL": row[i][18],
                     "EASCO": row[i][19],
                     "EXTRUDER": row[i][20],
                     "NAtoLOC": row[i][21],
                     "TAGSTATUS": row[i][22],
                     "LASTDATE": row[i][23],
                     "LASTUSER": row[i][24],
                     "TICKET": row[i][25]
                 }
                 result.append(m)
         else:
             return {"message": "No results found!"}, 404
         return (flask.jsonify(result))
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         print(e)
예제 #27
0
    def put(self):
        try:
            access_token = authenticator(request.headers.get('Authorization'))
            Data = flask.request.get_json()
            message = {}
            cursor = db.cursor()
            if Data['status'] == "loc":
                weight_count = cursor.execute(
                    'select LBFT from rawvalues where NOREX = %s and LOCATION = %s', (Data['NOREX'], Data['LOCATION']))
                weight = cursor.fetchone()
                netweight = calculate_netweight(Data['QTY'], weight[0], Data['LENGTH'])
                if int(Data['QTY']) > 0:
                    row_count = cursor.execute(
                        'UPDATE inventorystorage set QTY = %s, LOCATIONGRID = %s, LENGTH = %s, NETWEIGHT = %s, LASTDATE = %s, LASTUSER = %s where BARCODE = %s',
                        (Data['QTY'], Data['LOCATIONGRID'], Data['LENGTH'], netweight, datetime.datetime.now(),
                         access_token['UserName'], Data['BARCODE']))
                    if row_count > 0:
                        if Log.register(request.headers.get('Authorization'), 'Update location of %s' % Data['BARCODE'],
                                        True):
                            db.commit()
                    else:
                        return {'message': 'please try again'}, 404
                elif int(Data['QTY']) == 0:
                    if move_to_empty_storage(cursor, Data['BARCODE'], access_token['UserName']) > 0:
                        if Log.register(request.headers.get('Authorization'), 'Remove item %s' % Data['BARCODE'],
                                        True):
                            db.commit()
                            return {}
                    else:
                        db.rollback()
                        return {'message': 'please try again1'}, 404

                else:
                    return {"message": "Quantity must be possitive"}, 500
            elif Data['status'] == "norex":
                norex_count = cursor.execute("SELECT * from rawvalues where NOREX = %s and LOCATION =%s",
                                             (Data['NOREX'], Data['LOCATION']))
                if norex_count == 0:
                    return {'message': 'Norex not found'}, 404
                norex = cursor.fetchone()
                weight_count = cursor.execute('SELECT QTY,LENGTH from inventorystorage where BARCODE =%s',
                                              (Data['BARCODE']))
                if weight_count == 0:
                    return {'message': 'try again'}, 500
                weight = cursor.fetchone()
                netweight = calculate_netweight(weight[0], weight[1], norex[8])
                print((norex[2], netweight, norex[3], norex[4], norex[6], norex[7], norex[8], datetime.datetime.now(),
                       access_token['UserName'], Data['BARCODE']))
                norex_count = cursor.execute(
                    'UPDATE inventorystorage set NOREX= %s,LOCATION = %s, ASTRO = %s, NETWEIGHT = %s, KEYMARK = %s, EASCO = %s, DESCRIPTION = %s ,MODEL = %s ,LBFT =%s ,LASTDATE= %s ,LASTUSER =%s where BARCODE = %s',
                    (Data['NOREX'], Data['LOCATION'], norex[2], netweight, norex[3], norex[4], norex[6], norex[7],
                     norex[8],
                     datetime.datetime.now(), access_token['UserName'], Data['BARCODE']))
                if norex_count > 0:
                    if Log.register(request.headers.get('Authorization'), 'Update norex of %s' % Data['BARCODE'], True):
                        db.commit()
                else:
                    return {'message': 'please try again'}, 404
            elif Data['status'] == "project":
                update_project(cursor, Data['PROJECTID'], 'inventorystorage', 'BARCODE', Data['BARCODE'],
                               access_token['UserName'],access_token['Role'])
                if Log.register(request.headers.get('Authorization'),
                                'Tag %s project updated to %s ' % (Data['BARCODE'], Data['PROJECTID']),
                                True):
                    db.commit()
            else:
                return {'message': 'try again'}, 500
            return flask.jsonify(edittag_json_response_array(cursor, Data['BARCODE']))
        except InvalidProjectUpdate as e:
            return {'message': str(e)}, 500
        except ProjectNotFound as e:
            return {'message': str(e)}, 404
        except InterfaceError as e:
            CreateApi.reAssignDb()
        except Exception as e:
            return {'message': str(e)}, 500
예제 #28
0
 def put(self):
     access_token = authenticator(request.headers.get('Authorization'))
     try:
         parser = reqparse.RequestParser()
         parser.add_argument('NOREX')
         parser.add_argument('LOCATION')
         parser.add_argument('ASTRO')
         parser.add_argument('KEYMARK')
         parser.add_argument('EASCO')
         parser.add_argument('WINSYS')
         parser.add_argument('DESCRIPTION')
         parser.add_argument('MODEL')
         parser.add_argument('LBFT')
         parser.add_argument('SH')
         parser.add_argument('CAVITY')
         parser.add_argument('IMAGE')
         args = parser.parse_args()
         cursor = db.cursor()
         cursor.execute(
             'UPDATE rawvalues SET ASTRO = %s , KEYMARK = %s , EASCO = %s ,WINSYS = %s , DESCRIPTION = %s , MODEL = %s , LBFT = %s , SH = %s , CAVITY = %s , IMAGE = %s , LASTDATE = %s ,LASTUSER = %s WHERE NOREX = %s AND LOCATION = %s',
             (args['ASTRO'], args['KEYMARK'], args['EASCO'], args['WINSYS'],
              args['DESCRIPTION'], args['MODEL'], args['LBFT'], args['SH'],
              args['CAVITY'], args['IMAGE'], str(datetime.datetime.now()),
              access_token['UserName'], args['NOREX'], args['LOCATION']))
         cursor.execute(
             'update bufferpurchasingmanifest set ASTRO=%s , KEYMARK=%s,DESCRIPTION = %s, MODEL = %s, LBFT = %s , LASTDATE = %s ,LASTUSER = %s ,NETWEIGHTnorex=QTY*LENGTH*(%s)/12 WHERE NOREX = %s AND LOCATION = %s',
             (args['ASTRO'], args['KEYMARK'], args['DESCRIPTION'],
              args['MODEL'], args['LBFT'], str(
                  datetime.datetime.now()), access_token['UserName'],
              args['LBFT'], args['NOREX'], args['LOCATION']))
         cursor.execute(
             'update purchasingmanifest set ASTRO=%s , KEYMARK=%s,DESCRIPTION = %s, MODEL = %s, LBFT = %s , LASTDATE = %s ,LASTUSER = %s ,NETWEIGHT=(QTY*LENGTH*(%s)/12) WHERE NOREX = %s AND LOCATION = %s',
             (args['ASTRO'], args['KEYMARK'], args['DESCRIPTION'],
              args['MODEL'], args['LBFT'], str(
                  datetime.datetime.now()), access_token['UserName'],
              args['LBFT'], args['NOREX'], args['LOCATION']))
         cursor.execute(
             'update warehousemanifest set ASTRO=%s , KEYMARK=%s,DESCRIPTION = %s, LBFT = %s , LASTDATE = %s ,LASTUSER = %s, NETWEIGHT=(QTY*LENGTH*(%s)/12) WHERE NOREX = %s AND LOCATION = %s',
             (args['ASTRO'], args['KEYMARK'], args['DESCRIPTION'],
              args['LBFT'], str(
                  datetime.datetime.now()), access_token['UserName'],
              args['LBFT'], args['NOREX'], args['LOCATION']))
         cursor.execute(
             'update inventorystorage set ASTRO=%s , KEYMARK=%s,DESCRIPTION = %s, MODEL = %s, LBFT = %s , LASTDATE = %s ,LASTUSER = %s ,NETWEIGHT=(QTY*LENGTH*(%s)/12) WHERE NOREX = %s AND LOCATION = %s',
             (args['ASTRO'], args['KEYMARK'], args['DESCRIPTION'],
              args['MODEL'], args['LBFT'], str(
                  datetime.datetime.now()), access_token['UserName'],
              args['LBFT'], args['NOREX'], args['LOCATION']))
         if Log.register(
                 request.headers.get('Authorization'),
                 'NOREX updated with with NOREXID: %s ,LOCATION: %s,ASTRO: %s,KEYMARK: %s,EASCO: %s,WINSYS: %s,DESCRIPTION: %s,MODEL: %s,LBFT: %s,SH: %s,CAVITY: %s,'
                 % (args['NOREX'], args['LOCATION'], args['ASTRO'],
                    args['KEYMARK'], args['EASCO'], args['WINSYS'],
                    args['DESCRIPTION'], args['MODEL'], args['LBFT'],
                    args['SH'], args['CAVITY']), True):
             db.commit()
             return {'Message': 'Successful'}
         else:
             db.rollback()
             return {
                 "message": "Some error occurred,Please try again!"
             }, 500
     except InterfaceError as e:
         CreateApi.reAssignDb()
         print(e)
     except Exception as e:
         db.rollback()
         return {'message': str(e)}, 500