class ClaimApprover(db.Model): __bind_key__ = 'hrms' __tablename__ = 'claim_approver' approver_name = db.Column(db.String(255), primary_key=True) employee_id = db.Column(db.String(255)) Team = db.Column(db.String(255), nullable=False)
class ItemsKitchenSink(db.Model): __bind_key__ = 'skillstree' id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True ) title = db.Column(db.String(240), nullable=False ) description = db.Column(db.String(1000), nullable=False ) parentId = db.Column(db.Integer, nullable=False ) #Not using foriegn key into the same table..too many bugs in MySql
class Task(db.Model): __bind_key__ = 'goalsheet' id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True) description = db.Column(db.String(1000), nullable=False) dtAssigned = db.Column(db.DateTime) dtCompleted = db.Column(db.DateTime) dateStart = db.Column(db.DateTime) dateEnd = db.Column(db.DateTime) manadator = db.Column(db.Boolean(), default=True) midyearSelfAssessment = db.Column(db.String(500)) endyearSelfAssessment = db.Column(db.String(500)) completionstatus = db.Column(db.String(40)) personalNotes = db.Column(db.String(1000)) goalId = db.Column(db.Integer, db.ForeignKey("goal.id")) goalSheetId = db.Column( db.Integer, db.ForeignKey("goal_sheet.id") ) # # Only for convenience, we can always traverse via the goal-section selfRating = db.Column(db.Integer, default=0) #Self selfAssessment = db.Column(db.Integer, default=0) #Self l1Rating = db.Column(db.Integer, default=0) #L1 Manager l1Assessment = db.Column(db.Integer, default=0) l2Rating = db.Column(db.Integer, default=0) #L2 - DC-Lead l2Assessment = db.Column(db.Integer, default=0) l3Rating = db.Column(db.Integer, default=0) #L3 - mgmt - Sridhar/Sriram/Suresh l3Assessment = db.Column(db.Integer, default=0) pubRating = db.Column( db.Integer, default=0) #What is show to the end user and/or used for calculation pubAssessment = db.Column( db.Integer, default=0) #pub* may not be used, putting it just to be sure weight = db.Column(db.FLOAT, default=0) score = db.Column(db.FLOAT, default=0)
class Departmant(db.Model): __bind_key__ = 'hrms' __tablename__ = 'departmant' ID = db.Column(db.BigInteger, primary_key=True) DEPARTMENT_NAME = db.Column(db.String(255)) DC_LEAD = db.Column(db.String(50))
class Country(db.Model): __bind_key__ = 'hrms' __tablename__ = 'country' ID = db.Column(db.BigInteger, primary_key=True) COUNTRY_NAME = db.Column(db.String(255)) CURRENCY = db.Column(db.String(255)) COUNTRY_DETAILS = db.Column(db.String(5000))
class Empassetfile(db.Model): __bind_key__ = 'hrms' __tablename__ = 'empassetfiles' id = db.Column(db.BigInteger, primary_key=True) empAssetList = db.Column(db.String(255)) agreementFileName = db.Column(db.String(255)) agreementCopy = db.Column(LONGBLOB)
class TravelDetail(db.Model): __bind_key__ = 'hrms' __tablename__ = 'travel_details' travel_request_id = db.Column(db.String(255), primary_key=True) employee_id = db.Column(db.String(255), nullable=False) status = db.Column(db.String(255)) approver_emp_id = db.Column(db.String(255))
class ExpenseApprover(db.Model): __bind_key__ = 'hrms' __tablename__ = 'expense_approver' Id = db.Column(db.Integer, primary_key=True) APPROVER_TEAM = db.Column(db.String(45)) APPROVER_NAME = db.Column(db.String(45)) EMPLOYEE_ID = db.Column(db.String(45))
class Contact(db.Model): __bind_key__ = 'hrms' __tablename__ = 'contacts' ID = db.Column(db.Integer, primary_key=True) EMAIL = db.Column(db.String(255)) FIRSTNAME = db.Column(db.String(255)) LASTNAME = db.Column(db.String(255)) TELEPHONE = db.Column(db.String(255))
class SeparationTask(db.Model): __bind_key__ = 'hrms' __tablename__ = 'separation_task' task_id = db.Column(db.BigInteger, primary_key=True) checklist = db.Column(db.String(255)) description = db.Column(db.String(255)) #mandatory = db.Column(BIT(1)) task_type = db.Column(db.String(255))
class HotelList(db.Model): __bind_key__ = 'hrms' __tablename__ = 'hotel_list' id = db.Column(db.String(255), primary_key=True) hotel_name = db.Column(db.String(255)) star_rating = db.Column(db.String(255)) cityId = db.Column(db.ForeignKey('cities.id'), nullable=False, index=True) city = db.relationship('City', primaryjoin='HotelList.cityId == City.id', backref='hotel_lists')
class AssignmentTemplate(db.Model): __bind_key__ = 'goalsheet' id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True) title = db.Column( db.String(240), nullable=False ) # Name of the template .e.g. Principal Consultant Goals description = db.Column(db.String(1000), nullable=False) # Description of the template finalized = db.Column(db.Boolean(), default=False)
class ManagerInfo(db.Model): __bind_key__ = 'hrms' __tablename__ = 'manager_info' ID = db.Column(db.BigInteger, primary_key=True) name = db.Column(db.String(500)) departMent_Id = db.Column(db.ForeignKey('departmant.ID'), nullable=False, index=True) emp_id = db.Column(db.String(50), unique=True) departmant = db.relationship('Departmant', primaryjoin='ManagerInfo.departMent_Id == Departmant.ID', backref='manager_infos')
class GoalSection(db.Model): __bind_key__ = 'goalsheet' id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True) title = db.Column(db.String(240), nullable=False) description = db.Column(db.String(1000), nullable=False) empId = db.Column(db.Integer) dateStart = db.Column(db.DateTime) dateEnd = db.Column(db.DateTime) goalSheetId = db.Column(db.Integer, db.ForeignKey("goal_sheet.id"))
class QuestionSet(db.Model): id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True) examId = db.Column( db.Integer, db.ForeignKey("exam_obj.examId")) # This comes from the ExamObj question = db.Column(db.String(240), nullable=False) optionA = db.Column(db.String(80), nullable=False) optionB = db.Column(db.String(80), nullable=False) optionC = db.Column(db.String(80), nullable=False) optionD = db.Column(db.String(80), nullable=False) difficulty = db.Column(db.String(10), nullable=False) correctAnswer = db.Column(db.String(2), nullable=False) description = db.Column(db.String(500)) selectedOption = db.Column(db.String(2)) def __init__(self,examId,question,optionA,optionB,optionC,optionD, difficulty, correctAnswer, \ description, selectedOption ): self.examId = examId self.question = question self.optionA = optionA self.optionB = optionB self.optionC = optionC self.optionD = optionD self.difficulty = difficulty self.correctAnswer = correctAnswer self.description = description self.selectedOption = selectedOption def __repr__(self): return '<question %r>' % self.question
class Adminuploaddocument(db.Model): __bind_key__ = 'hrms' __tablename__ = 'adminuploaddocuments' document_id = db.Column(db.Integer, primary_key=True) check_list_document = db.Column(LONGBLOB) check_list_document_file_name = db.Column(db.String(255)) country = db.Column(db.String(255)) visa_form = db.Column(LONGBLOB) visa_form_file_name = db.Column(db.String(255)) visa_type = db.Column(db.String(255))
class Assetfile(db.Model): __bind_key__ = 'hrms' __tablename__ = 'assetfiles' id = db.Column(db.BigInteger, primary_key=True) assetList = db.Column(db.String(255)) invoiceFileName = db.Column(db.String(255)) invoiceData = db.Column(LONGBLOB) otherDocName = db.Column(db.String(255)) otherdocData = db.Column(LONGBLOB) createdDate = db.Column(db.Date)
class GoalCalendar(db.Model): __bind_key__ = 'goalsheet' id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True) phase = db.Column(db.String(80), nullable=False) # Phase name phaseType = db.Column( db.Integer, default=0 ) # Phase TYPE: Data-entry, Feedback, Feedback+Review, Review, Emp.Specific sheetStatus = db.Column(db.String(40), nullable=False, default="Assigned") actionString = db.Column(db.String(80), nullable=False, default="No Action Required") actionId = db.Column(db.Integer, default=0) # 0 = Do nothing empEmail = db.Column( db.Integer, default=0 ) # Non-Zero Number referres to an employee specific Phase, to handle exceptions description = db.Column(db.String(500), nullable=False) assessmentYear = db.Column(db.String(10), nullable=False) dateStart = db.Column(db.DateTime) # Both days are INCLUSIVE dateEnd = db.Column(db.DateTime) authlevel = db.Column(db.Integer, default=0) gs_enable_assignment = db.Column(db.Boolean(), default=False) # Sheet-Flags gs_enable_self = db.Column(db.Boolean(), default=False) gs_enable_approve = db.Column(db.Boolean(), default=False) gs_enable_end_year_self = db.Column(db.Boolean(), default=False) gs_enable_end_year_dc_approve = db.Column(db.Boolean(), default=False) gs_enable_end_year_closure = db.Column(db.Boolean(), default=False) # Goal-Flags goal_enable_task_approve = db.Column(db.Boolean(), default=False) goal_enable_edit = db.Column(db.Boolean(), default=False) goal_enable_approve = db.Column(db.Boolean(), default=False) # Task-Flags task_enable_update = db.Column(db.Boolean(), default=False) task_enable_delete = db.Column(db.Boolean(), default=False) task_enable_activity_edit = db.Column( db.Boolean(), default=False) # Also allows for marking it as complete #Task File -upload, ask-feedback flags, default set to true file_upload_enable = db.Column(db.Boolean(), default=True) # Enable File-Upload Button task_file_download_enable = db.Column( db.Boolean(), default=False) # Enable File-Upload Button ask_feedback_enable = db.Column( db.Boolean(), default=True) # Enable Ask-For-Feeback button task_enable_status_change = db.Column(db.Boolean(), default=False)
class MasterGoal(db.Model): __bind_key__ = 'goalsheet' id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True) title = db.Column(db.String(240), nullable=False) description = db.Column(db.String(1000), nullable=False) goalSectionId = db.Column(db.Integer, db.ForeignKey("master_goal_section.id")) goalSectionRef = db.relationship( 'MasterGoalSection', primaryjoin='MasterGoal.goalSectionId == MasterGoalSection.id', backref='mastergoals') weight1 = db.Column(db.FLOAT) #Line Employee weight2 = db.Column(db.FLOAT) #DC Lead
class ProjectRole(db.Model): __bind_key__ = 'bcsproj' id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True) projectId = db.Column(db.Integer, db.ForeignKey("msg_project.id")) roleName = db.Column(db.String(100)) #Text name of the role roleSkillCat = db.Column( db.String(30) ) # Skill category of the role e.g. Technical, Functional, Managerial roleSkill = db.Column(db.String( 100)) # Specific Skill Desription e.g. Sr. Java Developer, Openshift dateStart = db.Column(db.DateTime) dateEnd = db.Column(db.DateTime) careerLevel = db.Column( db.String(10)) # from BCS, the "reqiured level" or the "demand level" billingModel = db.Column( db.String(20)) # [MonthlyFTE, DailyEffort, AlternateModel2] billingPercent = db.Column(db.Integer) # 100% is the default staffingStatus = db.Column( db.String(30) ) # [Open, Proposed, Blocked, Confirmed, Shadowing, AwaitingReourceJoin] candidatesInPlay = db.Column( db.String(200) ) #[comma separted list of names, till recruitment Module comes-in] assignedEmpId = db.Column(db.Integer) # In case an employee is assigned assignedEmpBcsName = db.Column( db.String(80)) # In case an employee is assigned assigned_billLevel = db.Column( db.Integer) # Level Of the employee assigned projectObj = db.relationship( 'MsgProject', primaryjoin='ProjectRole.projectId == MsgProject.id', backref='programs')
class MsgProgram(db.Model): __bind_key__ = 'bcsproj' id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True) accountId = db.Column(db.Integer, db.ForeignKey("msg_account.id")) managerEmail = db.Column(db.String(200), nullable=False) # email of the project manager programName = db.Column( db.String(200)) # Project Name that is used, e.g. NN dateStart = db.Column(db.DateTime) #Defaults to 2000-01-01 dateEnd = db.Column(db.DateTime) #Defaults to 2000-01-01 description = db.Column(db.String(1000)) # General Notes accountObj = db.relationship( 'MsgAccount', primaryjoin='MsgProgram.accountId == MsgAccount.id', backref='progaccounts')
class QuestionSet(db.Model): id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True) examId = db.Column( db.Integer, db.ForeignKey("exam_obj.examId")) # This comes from the ExamObj question = db.Column(db.String(240), nullable=False) optionA = db.Column(db.String(80), nullable=False) optionB = db.Column(db.String(80), nullable=False) optionC = db.Column(db.String(80), nullable=False) optionD = db.Column(db.String(80), nullable=False) difficulty = db.Column(db.String(10), nullable=False) correctAnswer = db.Column(db.String(2), nullable=False) description = db.Column(db.String(500)) selectedOption = db.Column(db.String(2)) def __init__(self,examId,question,optionA,optionB,optionC,optionD, difficulty, correctAnswer, \ description, selectedOption ): self.examId = examId self.question = question self.optionA = optionA self.optionB = optionB self.optionC = optionC self.optionD = optionD self.difficulty = difficulty self.correctAnswer = correctAnswer self.description = description self.selectedOption = selectedOption #Update Question After the test def updateAfterTest(self, selectedOption): self.selectedOption = selectedOption # add the answer return # don't Commit to DB def getSelectedOption(self): return self.selectedOption # add the answer def getCorrectAnswer(self): return self.correctAnswer # add the answer # Put a error handler instead of try-catch here # DB COmmit should have a try-catch, will add once UI validation is done def addNocommit(self): db.session.add(self) return def commit(self): db.session.commit() return def __repr__(self): return '<question %r>' % self.question
class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True, autoincrement=True) username = db.Column('email_Id', db.String(255), nullable=False ) #This property should return True if this is an active user - in addition to being authenticated, they also have activated their account, not been suspended, or any condition your application has for rejecting an account. Inactive accounts may not log in (without being forced of course). is_active = db.Column(db.Integer, nullable=False ) #This property should return True if the user is authenticated, i.e. they have provided valid credentials. (Only authenticated users will fulfill the criteria of login_required.) # is_authenticated = db.Column(db.Integer, nullable=False ) #This property should return True if this is an anonymous user. (Actual users should return False instead.) is_anonymous = db.Column(db.Integer, nullable=False ) is_admin = db.Column(db.Integer, nullable=False ) def get_id(self) : return( str(self.id).encode("utf-8").decode("utf-8") ) def __init__(self,id,username,is_active,is_anonymous, is_admin ): self.username = username self.id = id self.is_active = is_active self.is_anonymous = is_anonymous self.is_admin = is_admin def save(self) : #print("Saving: %s as %d" % (self.username, self.is_authenticated)) db.session.commit()
class Purchaseorder(db.Model): __bind_key__ = 'hrms' __tablename__ = 'purchaseorder' id = db.Column(db.BigInteger, primary_key=True) poNumber = db.Column(db.String(255)) itemNo = db.Column(db.BigInteger) poDate = db.Column(db.Date) createdDate = db.Column(db.Date) createdBy = db.Column(db.String(255)) lastUpdatedDate = db.Column(db.Date) updatedBy = db.Column(db.String(255)) status = db.Column(db.ForeignKey('postatus.id'), index=True) rejectionReason = db.Column(db.String(255)) postatu = db.relationship('Postatu', primaryjoin='Purchaseorder.status == Postatu.id', backref='purchaseorders')
class Activity(db.Model): __bind_key__ = 'goalsheet' id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True) description = db.Column(db.String(1000), nullable=False) task = db.Column(db.Integer, db.ForeignKey("task.id")) goalSheetId = db.Column(db.Integer, db.ForeignKey("goal_sheet.id"))
class Quotefile(db.Model): __bind_key__ = 'hrms' __tablename__ = 'quotefiles' id = db.Column(db.BigInteger, primary_key=True) quoteFileName = db.Column(db.String(255)) fileData = db.Column(LONGBLOB)
class City(db.Model): __bind_key__ = 'hrms' __tablename__ = 'cities' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(30), nullable=False) state_id = db.Column(db.Integer, nullable=False, index=True)
class FilesUpload(db.Model): __bind_key__ = 'hrms' __tablename__ = 'files_upload' FILE_ID = db.Column(db.BigInteger, primary_key=True) FILE_DATA = db.Column(TINYBLOB) FILE_NAME = db.Column(db.String(255))
class Emprolemapping(db.Model): __bind_key__ = 'hrms' __tablename__ = 'emprolemapping' id = db.Column(db.BigInteger, primary_key=True) roleId = db.Column(db.Integer) empId = db.Column(db.BigInteger) emailId = db.Column(db.String(255))
class Nontravelexpense(db.Model): __bind_key__ = 'hrms' __tablename__ = 'nontravelexpense' NON_TRAVEL_ID = db.Column(db.Integer, primary_key=True) EMPLOYEE_ID = db.Column(db.String(100)) TYPE_OF_CLAIM = db.Column(db.String(100)) DATE_OF_CLAIM = db.Column(db.String(45)) AMOUNT_OF_CLAIM = db.Column(db.String(100)) DESCRIPTION_OF_CLAIM = db.Column(db.String(100)) STATUS = db.Column(db.Integer, server_default=db.FetchedValue()) FINANCE_STATUS = db.Column(db.String(45), server_default=db.FetchedValue()) NON_TRAVEL_CLAIM_ID = db.Column(db.String(45)) NONTRAVEL_DOCUMENT = db.Column(LONGBLOB) CURRENCY = db.Column(db.String(45)) FILE_NAME = db.Column(db.String(45)) APPROVER = db.Column(db.String(50))