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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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)
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)
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)
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
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