예제 #1
0
        public Entity.Leave GetLeave(LeavePO leavePO)
        {
            var leave = new Entity.Leave();

            leave.Id = leavePO.Id;
            var applicant = new Applicant()
            {
                PersonId   = leavePO.ApplicantId,
                PersonName = leavePO.ApplicantName
            };

            leave.Applicant = applicant;
            var approver = new Approver()
            {
                PersonId   = leavePO.ApproverId,
                PersonName = leavePO.ApproverName
            };

            leave.Approver       = approver;
            leave.StartTime      = leavePO.StartTime;
            leave.EndTime        = leavePO.EndTime;
            leave.Duration       = leavePO.Duration;
            leave.Status         = leavePO.Status;
            leave.MaxLeaderLevel = leavePO.MaxLeaderLevel;
            if (leavePO.HistoryApprovalInfoPOList?.Count > 0)
            {
                leave.HistoryApprovalInfos = GetApprovalInfos(leavePO.HistoryApprovalInfoPOList);
            }
            return(leave);
        }
예제 #2
0
        public Leave GetLeave(LeavePO leavePO)
        {
            var leave = Mapper.Map <Leave>(leavePO);

            // todo: some extra operation
            return(leave);
        }
예제 #3
0
        public bool Submit(LeavePO leavePO)
        {
            if (_db.State == ConnectionState.Closed)
            {
                _db.Open();
            }
            var tran = _db.BeginTransaction();

            try
            {
                var i   = (int)leavePO.Status;
                var sql = @"update public.leaves set
	 applicantid=@applicantid, applicantname=@applicantname, applicanttype=@applicanttype, approverid=@approverid, approvername=@approvername, leavetype=@leavetype, status=@Status, starttime=@starttime, endtime=@endtime, duration=@duration,maxleaderlevel=@maxleaderlevel where id=@id;"    ;
                _db.Execute(sql, leavePO, tran);

                sql = @"INSERT INTO public.approval_infos(
	approvalinfoid, leaveid, applicantid, approverid,approvaltype, approverlevel, approvername, msg, ""time"")
    VALUES(@approvalinfoid, @leaveid, @applicantid,@approverid,@approvaltype,  @approverlevel, @approvername, @msg, @time); ";
                _db.Execute(sql, leavePO.CurrentApprovalInfo, tran);
                tran.Commit();
                return(true);
            }
            catch (Exception exc)
            {
                tran.Rollback();
                _logge.LogCritical(exc, exc.Message);
                return(false);
            }
        }
예제 #4
0
        public bool Save(LeavePO leavePO)
        {
            try
            {
                var sql = @"INSERT INTO public.leaves(
	id, applicantid, applicantname, applicanttype, approverid, approvername, leavetype, status, starttime, endtime, duration,maxleaderlevel)
	VALUES (@id, @applicantid, @applicantname, @applicanttype, @approverid, @approvername, @leavetype, @status, @starttime, @endtime, @duration,@maxleaderlevel);"    ;
                _db.Execute(sql, leavePO);
                return(true);
            }
            catch (Exception exc)
            {
                _logge.LogCritical(exc, exc.Message);
                return(false);
            }
        }
예제 #5
0
        public LeavePO CreateLeavePO(Entity.Leave leave)
        {
            var leavePO = new LeavePO()
            {
                Id = leave.Id == null?Guid.NewGuid().ToString() : leave.Id,
                         ApplicantId   = leave.Applicant.PersonId,
                         ApplicantName = leave.Applicant.PersonName,
                         ApproverId    = leave.Approver?.PersonId,
                         ApproverName  = leave.Approver?.PersonName,
                         StartTime     = leave.StartTime,
                         EndTime       = leave.EndTime,
                         Duration      = leave.Duration,
                         Status        = leave.Status,
                         //生成请假条时没有当前批认信息
                         CurrentApprovalInfo = leave.CurrentApprovalInfo != null?ApprovalInfoPOFromDO(leave.CurrentApprovalInfo, leave.Applicant.PersonId, leave.Id) : null,
                                                   HistoryApprovalInfoPOList = ApprovalInfoPOListFromDO(leave),
                                                   MaxLeaderLevel            = leave.MaxLeaderLevel,
                                                   LeaveType     = leave.LeaveType,
                                                   ApplicantType = leave.Applicant.PersonType
            };

            return(leavePO);
        }
 public void Save(LeavePO leave)
 {
     throw new NotImplementedException();
 }