def put(self, id):
        parse = reqparse.RequestParser()
        parse.add_argument("status",
                           type=str,
                           required=True,
                           help="status Type Required")
        data = parse.parse_args()
        leave = LeaveModel.find_by_id(id)
        if leave:
            leave.status = data["status"]
            leave.senction_date = datetime.datetime.now()
            leave.senction_by_id = get_jwt_identity()
            leave.save_to_db()

            # credential sent to user via email
            msg = Message('Leave Application ' + data['status'] + '!',
                          recipients=[
                              AuthenticationModel.find_by_id(
                                  leave.emp_id).email
                          ])
            username = AuthenticationModel.find_by_id(
                leave.emp_id).username.split('.')[0]

            if data['status'] == 'Approved':
                msg.body = leaveApprovedmessage(username, leave.start_date,
                                                leave.end_date)
                # deduct leave from annual leave
                anuualeave = Annual_Leave.find_by_id(leave.emp_id)
                delta = parser.parse(leave.end_date) - \
                    parser.parse(leave.start_date)
                if anuualeave:
                    if leave.leave_type == 'PL':
                        anuualeave.pl = Annual_Leave.find_by_id(
                            leave.emp_id).pl - delta.days
                    elif leave.leave_type == 'CL':
                        anuualeave.cl = Annual_Leave.find_by_id(
                            leave.emp_id).cl - delta.days
                    elif leave.leave_type == 'SL':
                        anuualeave.sl = Annual_Leave.find_by_id(
                            leave.emp_id).sl - delta.days
                    else:
                        # deduct salary also
                        anuualeave.lwp = Annual_Leave.find_by_id(
                            leave.emp_id).lwp - delta.days

                anuualeave.save_to_db()
                # print(anuualeave.json())

            elif data['status'] == 'Cancle':
                msg.body = leaveCanclemessage(username, leave.start_date,
                                              leave.end_date)
            else:
                msg.body = leaveForwardmessage(username, leave.start_date,
                                               leave.end_date)

            mail.send(msg)
示例#2
0
    def post(self):
        data = Admin.parse.parse_args()
        employee = AuthenticationModel(**data)
        employee.save_to_db()

        return {
            "success": True,
            "username": employee.username,
            "password": employee.password
        }
示例#3
0
    def post(self):
        data = Setup.parse.parse_args()
        today = datetime.date.today()
        employee = AuthenticationModel(data['username'], data['password'],
                                       data['role'], data['email'], today)
        employee.save_to_db()

        return {
            "success": True,
            "username": employee.username,
            "password": employee.password
        }
示例#4
0
    def post(self):
        data = EmployeeLogin.parse.parse_args()
        employee = AuthenticationModel.find_by_username(data["username"])
        # if employee.isAuthenticate:
        #     return {
        #         "success": False,
        #         "error": "You Are Already LoggedIn In Another System Please Logout there.."
        #     }

        if employee and safe_str_cmp(data["password"], employee.password):
            # chnage isauthenticate value
            employee.isAuthenticate = True
            Attend = AttendanceModel(
                employee.id,
                datetime.now().strftime("%H:%M:%S"),
                datetime.today().strftime("%d/%m/%Y"),
            )
            Attend.save_to_db()

            # print(employee.id)
            return {
                "access_token":
                create_access_token(identity=employee.id, expires_delta=False),
                "role":
                employee.role,
                "success":
                True,
                "authenticate":
                employee.isAuthenticate,
            }
        return {"error": "Username or password incorrent", "success": False}
 def get(self):
     username = AuthenticationModel.find_by_id(get_jwt_identity()).username
     salary = [
         salary.json() for salary in SalaryModel.query.filter(
             SalaryModel.username == username)
     ]
     return {"salary": salary}
    def post(self):
        data = Salary.parse.parse_args()
        employee = AuthenticationModel.find_by_username(data['username'])
        if employee:
            basic = GradeModel.query.filter_by(emp_id=employee.id).order_by(
                GradeModel.emp_id.desc()).first().basic
            netamount = basic * HRA + basic * DA + basic * TA + basic
            salary = SalaryModel(data['username'], data['month'], netamount)
            salary.save_to_db()
            # salary get mail
            msg = Message('Salary credited!', recipients=[employee.email])
            msg.body = '''
            Hello  ''' + data['username'].split('.')[0] + ''',
            Your ''' + data[
                'month'] + ''' month salary is credited. You can download salary slip from HRMS portal.\n

            If you have any queries, please feel free to contact the Human Resources  Department. 
            We look forward to your success in the company\n

            Thanks & Regards,
            Name of hr
            HR Executive 
            Direct: +91 6353235503 | W: www.lanetteam.com 
            406, Luxuria Business Hub, Nr. VR Mall, Surat, Gujarat - 395007
            Ground Floor, I.T.P.I Building, Beside Celebration Mall, Bhuwana, Udaipur, Rajasthan - 313001'''
            mail.send(msg)
            return {"Status": "Success"}

        return {"status": "404/Not Found"}
示例#7
0
 def put(self):
     data = ChangePassword.parse.parse_args()
     employee = AuthenticationModel.find_by_id(get_jwt_identity())
     if employee:
         employee.password = data["password"]
         employee.save_to_db()
         return {"status": True}
     return {"Status": False}
示例#8
0
def add_claims_to_access_token(identity):
    user_role = AuthenticationModel.find_by_id(identity)
    if user_role:
        if user_role.role == 'Hr':
            return {'roles': 'Hr'}
        elif user_role.role == 'Admin':
            return {'roles': 'Admin'}
        else:
            return {'roles': 'Employee'}
 def json(self):
     return {
         "id": self.id,
         "Username": AuthenticationModel.find_by_id(self.emp_id).username,
         "Technology": self.technology,
         "ProjectName": self.projectname,
         "hour": self.hour,
         "desc": self.desc,
         "DateTime": str(self.date).split(".")[0],
     }
示例#10
0
 def json(self):
     return {
         "Start Date": str(self.start_date),
         "End Date": str(self.end_date),
         "Type": self.leave_type,
         "Apply Date": str(self.apply_date),
         "Status": self.status,
         "id": self.emp_id,
         "leave_id": self.id,
         "Username": AuthenticationModel.find_by_id(self.emp_id).username,
         "Description": self.leave_Description,
     }
示例#11
0
 def post(self):
     data = EmployeePersonalDetails.parse.parse_args()
     employee = AuthenticationModel.find_by_id(get_jwt_identity())
     if employee:
         personaldetails = PersonalDetailsModel(get_jwt_identity(), **data)
         personaldetails.save_to_db()
         return {"success": True}
     return {
         "NotFoundError": {
             "success": False,
             "error": "Employee Not Found"
         }
     }
示例#12
0
    def post(self):
        data = EmployeeQualificationDetails.parse.parse_args()
        employee = AuthenticationModel.find_by_id(get_jwt_identity())
        if employee:
            qualification = QualificationModel(
                get_jwt_identity(),
                data["qualification"],
                data["pass_year"],
                data["experience"],
            )
            qualification.save_to_db()
            return {"success": True}

        return {"success": False, "error": "Not Found"}
示例#13
0
    def post(self):
        data = EmployeeAddressDetails.parse.parse_args()
        employee = AuthenticationModel.find_by_id(get_jwt_identity())
        if employee:
            address = AddressModel(
                get_jwt_identity(),
                data["city"],
                data["state"],
                data["pincode"],
                data["fulladdress"],
            )
            address.save_to_db()
            return {"success": True}

        return {"success": False, "error": "Not Found"}
示例#14
0
 def post(self):
     data = EmployeeSalaryDetails.parse.parse_args()
     employee = AuthenticationModel.find_by_id(get_jwt_identity())
     if employee:
         salary = EmployeeSalaryDetailsModel(
             get_jwt_identity(),
             data["accountno"],
             data["ifsccode"],
             data["bankname"],
             data["pfaccount_no"],
             data["esi_no"],
         )
         salary.save_to_db()
         return {"success": True}
     return {"success": False, "error": "Not Found"}
示例#15
0
    def delete(self):
        parse = reqparse.RequestParser()
        parse.add_argument('username',
                           type=str,
                           required=True,
                           help='username is required')
        data = parse.parse_args()
        employee = AuthenticationModel.find_by_username(data['username'])

        if employee:
            employee.delete_from_db()
            return {"status": 200, "message": "Account Deleted"}
        return {
            "status": 404,
            "NotFoundError": "Given Username data not Found.."
        }
示例#16
0
    def post(self):
        data = JoiningDetails.parse.parse_args()
        employee = AuthenticationModel.find_by_username(data["username"])
        if employee:
            joining_date = datetime.strptime(data["joining_date"], "%d %B %Y")
            joining_details = JoiningDetailsModel(
                employee.id,
                joining_date,
            )
            joining_details.save_to_db()

            # here grade details
            grade = GradeModel(employee.id, data["grade"],
                               data["joining_date"], data["basic"])
            grade.save_to_db()

            # here annual leave is set
            annual_leave = Annual_Leave(employee.id)
            annual_leave.save_to_db()

            return {"status": True}
        else:
            return {"error": data["username"] + "not Found"}
    def post(self):
        parse = reqparse.RequestParser()
        parse.add_argument("ltype",
                           type=str,
                           required=True,
                           help="Leave Type Required")
        parse.add_argument("startdate",
                           type=str,
                           required=True,
                           help="start_date Type Required")
        parse.add_argument("enddate",
                           type=str,
                           required=True,
                           help="end_date Type Required")
        parse.add_argument("desc",
                           type=str,
                           required=True,
                           help="desc Type Required")

        data = parse.parse_args()
        employee = AuthenticationModel.find_by_id(get_jwt_identity())
        if employee:
            if employee.role == 'Hr':
                leave = LeaveModel(get_jwt_identity(), data["ltype"],
                                   data["startdate"], data["enddate"],
                                   data["desc"], 'Forward')
                leave.save_to_db()
            else:
                leave = LeaveModel(get_jwt_identity(), data["ltype"],
                                   data["startdate"], data["enddate"],
                                   data["desc"], 'Pending')
                leave.save_to_db()

        return {
            "status": 200,
            "data": [leave.json() for leave in LeaveModel.query.all()],
        }
示例#18
0
    def get(self):
        employee = AuthenticationModel.find_by_id(get_jwt_identity())
        if employee:
            employee.isAuthenticate = False
            employee.save_to_db()
            jti = get_raw_jwt()["jti"]
            blacklist.add(jti)

            attend = AttendanceModel.query.filter(
                and_(
                    AttendanceModel.date == datetime.today().strftime(
                        "%d/%m/%Y"),
                    AttendanceModel.emp_id == get_jwt_identity(),
                )).first()

            attend.endtime = datetime.now().strftime("%H:%M:%S")
            attend.save_to_db()

            return {
                "msg": "Successfully logged out",
                "authenticate": employee.isAuthenticate,
            }, 200
        else:
            return {"error": "error in logout"}
示例#19
0
    def post(self):
        data = EmployeeRegister.parse.parse_args()
        employee = AuthenticationModel.find_by_username(data["username"])

        if employee:
            return {
                "AlreadyExistsError": {
                    "status": False,
                    "error": "Username already exists",
                }
            }

        joindate = date.fromisoformat(data['joiningdate'].split('T')[0])

        employee = AuthenticationModel(data['username'], data['password'],
                                       data['role'], data['email'], joindate)
        employee.save_to_db()

        # add  joining details

        joiningdetails = JoiningDetailsModel(employee.id, joindate)
        print(joiningdetails.json())
        joiningdetails.save_to_db()

        # fetch basic for particular designation
        des = DesignationModel.find_by_designation(data['designation'])
        print(des.json())

        # add employee level grade
        grade = GradeModel(employee.id, data['designation'], joindate,
                           des.basic)
        grade.save_to_db()

        print(grade.json())

        # annual leave
        annual_leave = Annual_Leave(employee.id)
        annual_leave.save_to_db()

        # credential sent to user via email
        msg = Message('Welcome to LaNet Teams!', recipients=[data['email']])
        msg.body = '''
        Hello  ''' + data['username'].split('.')[0] + ''',
        We are delighted to have you among us as a part of La net team software solutions Pvt. Ltd.
        On behalf of all the members and the management, we would like to extend our warmest welcome and good wishes! Your Joining date will be ''' + data[
            'joiningdate'].split('T')[0] + ''' .\n

        Here your credential for Company HRMS System.            
        username = ''' + data['username'] + '''
        password = ''' + data['password'] + '''
        HRMS Link = 'http://127.0.0.1:3000/'

        If you have any queries, please feel free to contact the Human Resources  Department. 
        We look forward to your success in the company\n

        Thanks & Regards,
        Name of hr
        HR Executive 
        Direct: +91 6353235503 | W: www.lanetteam.com 
        406, Luxuria Business Hub, Nr. VR Mall, Surat, Gujarat - 395007
        Ground Floor, I.T.P.I Building, Beside Celebration Mall, Bhuwana, Udaipur, Rajasthan - 313001'''
        mail.send(msg)

        return {
            "success": True,
            "message": "Employee Registerd",
            "id": employee.id,
            "Employee": employee.json()
        }
示例#20
0
 def get(self):
     employee = AuthenticationModel.find_by_id(get_jwt_identity())
     return {"Employee": employee.json(), "success": True}