Beispiel #1
0
 public InterruptOrCancelReimburses(Account loginUser, int reimburseID, ReimburseStatusEnum statusEnum, IReimburse iReimburseMock)
 {
     _DalReimburse = iReimburseMock;
     _ReimburseID  = reimburseID;
     _LoginUser    = loginUser;
     _StatusEnum   = statusEnum;
 }
Beispiel #2
0
        public static string GetReimburseStatusNameByReimburseStatus(ReimburseStatusEnum reimburseStatus)
        {
            switch (reimburseStatus)
            {
            case ReimburseStatusEnum.Added:
                return("新增");

            case ReimburseStatusEnum.Reimbursing:
                return("提交中");

            case ReimburseStatusEnum.Reimbursed:
                return("已报销");

            case ReimburseStatusEnum.Return:
                return("退回");

            case ReimburseStatusEnum.Auditing:
                return("通过审核");

            case ReimburseStatusEnum.WaitAudit:
                return("待财务审核");

            default:
                return("");
            }
        }
Beispiel #3
0
        /// <summary>
        /// 查询客户维护
        /// </summary>
        /// <param name="loginUser"></param>
        /// <param name="employeename"></param>
        /// <param name="departmentid"></param>
        /// <param name="statusEnum"></param>
        /// <param name="reimburseCategoriesEnumID"></param>
        /// <param name="totalcostfrom"></param>
        /// <param name="totalcostto"></param>
        /// <param name="applydateFrom"></param>
        /// <param name="applydateTo"></param>
        /// <param name="billtimeFrom"></param>
        /// <param name="billtimeTo"></param>
        /// <param name="companyID"></param>
        /// <param name="auth"></param>
        /// <param name="finishStatus"></param>
        /// <param name="isCustomerFilled"></param>
        /// <returns></returns>
        public List <Model.Reimburse> GetReimburseForCustomerByCondition(Account loginUser, string employeename, int departmentid,
                                                                         ReimburseStatusEnum statusEnum,
                                                                         int reimburseCategoriesEnumID, decimal?totalcostfrom,
                                                                         decimal?totalcostto, DateTime?applydateFrom,
                                                                         DateTime?applydateTo, DateTime?billtimeFrom, DateTime?billtimeTo,
                                                                         int companyID, int auth, int finishStatus, int isCustomerFilled)
        {
            List <Model.Reimburse> reimburses =
                GetReimburseByCondition(loginUser, employeename, departmentid, statusEnum, reimburseCategoriesEnumID,
                                        totalcostfrom, totalcostto, applydateFrom, applydateTo, billtimeFrom, billtimeTo,
                                        companyID, auth, finishStatus);

            reimburses = RemoveReimburseByStatus(reimburses, ReimburseStatusEnum.Added);
            //匹配IsCustomerNull条件
            for (int i = 0; i < reimburses.Count; i++)
            {
                if (isCustomerFilled == 1 && string.IsNullOrEmpty(reimburses[i].CustomerContentShow))
                {
                    reimburses.RemoveAt(i);
                    i--;
                }
                if (isCustomerFilled == 0 && !string.IsNullOrEmpty(reimburses[i].CustomerContentShow))
                {
                    reimburses.RemoveAt(i);
                    i--;
                }
            }

            return(reimburses);
        }
        public static List <Reimburse> GetReimburseByCondition(Account loginUser, string employeename, int departmentid,
                                                               ReimburseStatusEnum statusEnum, ReimburseStatusEnum?exceptStatusEnum, bool?isFillCustomer,
                                                               int reimburseCategoriesEnumID, decimal?totalcostfrom,
                                                               decimal?totalcostto, DateTime?applydateFrom,
                                                               DateTime?applydateTo, DateTime?billtimeFrom,
                                                               DateTime?billtimeTo,
                                                               int companyID, int finishStatus, int auth,
                                                               PagerEntity pagerEntity)
        {
            List <int> departmentids = new List <int>();

            if (departmentid != -1)
            {
                List <Department> departments = BllInstance.DepartmentBllInstance.GetChildDeptList(departmentid);
                departmentids.Add(departmentid);
                departmentids.AddRange(departments.Select(x => x.DepartmentID).ToList());
            }
            var reimburseentities = ReimburseDA.GetReimburseByCondition(departmentids, statusEnum, exceptStatusEnum, isFillCustomer,
                                                                        reimburseCategoriesEnumID,
                                                                        totalcostfrom, totalcostto, applydateFrom,
                                                                        applydateTo, billtimeFrom, billtimeTo,
                                                                        companyID, finishStatus);
            var            reimburses = reimburseentities.Select(ReimburseEntity.ConvertToReimburse).ToList();
            List <Account> accounts   =
                BllInstance.AccountBllInstance.GetAccountByBaseCondition(employeename, departmentid, -1, null, true,
                                                                         null);

            accounts = Tools.RemoteUnAuthAccount(accounts, AuthType.HRMIS, loginUser, auth);
            for (int i = reimburses.Count - 1; i >= 0; i--)
            {
                if (!IsContainsAccount(accounts, reimburses[i].ApplierID))
                {
                    reimburses.RemoveAt(i);
                }
            }
            var reimbursesids = new List <int>();

            for (int i = pagerEntity.PageIndex * pagerEntity.PageSize;
                 i < (pagerEntity.PageIndex + 1) * pagerEntity.PageSize && i < reimburses.Count;
                 i++)
            {
                Account account = BllInstance.AccountBllInstance.GetAccountById(reimburses[i].ApplierID);
                reimburses[i].ApplerName = account.Name;
                reimburses[i].Department.DepartmentName = account.Dept.DepartmentName;
                reimbursesids.Add(reimburses[i].ReimburseID);
            }
            var items = ReimburseItemDA.GetReimburseItemByReimburseID(reimbursesids);

            for (int i = pagerEntity.PageIndex * pagerEntity.PageSize;
                 i < (pagerEntity.PageIndex + 1) * pagerEntity.PageSize && i < reimburses.Count;
                 i++)
            {
                reimburses[i].ReimburseItems =
                    items.Where(x => x.ReimburseID == reimburses[i].ReimburseID).Select(ReimburseItemEntity.ConvertTo).
                    ToList();
            }

            return(reimburses);
        }
Beispiel #5
0
 public static void UpdateReimburseStatus(int id, ReimburseStatusEnum status)
 {
     using (var dataOperator = new DataOperator(SqlHelper.HrmisConnectionString))
     {
         dataOperator.CommandText = "Update TReimburse set ReimburseStatus=@ReimburseStatus where PKID=@PKID";
         dataOperator.SetParameter("@ReimburseStatus", (int)status, SqlDbType.Int);
         dataOperator.SetParameter("@PKID", id, SqlDbType.Int);
         dataOperator.ExecuteNonQuery();
     }
 }
Beispiel #6
0
        public List <Model.Reimburse> GetReimburseByCondition(Account loginUser, string employeename, int departmentid,
                                                              ReimburseStatusEnum statusEnum,
                                                              int reimburseCategoriesEnumID, decimal?totalcostfrom,
                                                              decimal?totalcostto, DateTime?applydateFrom,
                                                              DateTime?applydateTo, DateTime?billtimeFrom, DateTime?billtimeTo,
                                                              int companyID, int auth, int finishStatus)
        {
            List <Model.Reimburse> reimburses = new List <Model.Reimburse>();

            if (departmentid != -1)
            {
                reimburses =
                    _DalReimburse.GetReimburseByCondition(departmentid, statusEnum, reimburseCategoriesEnumID,
                                                          totalcostfrom,
                                                          totalcostto, applydateFrom, applydateTo, billtimeFrom,
                                                          billtimeTo, companyID, finishStatus);
                List <Department> departments = _IGetDepartment.GetChildDeptList(departmentid);
                foreach (Department department in departments)
                {
                    reimburses.AddRange(
                        _DalReimburse.GetReimburseByCondition(department.Id, statusEnum, reimburseCategoriesEnumID,
                                                              totalcostfrom,
                                                              totalcostto, applydateFrom, applydateTo, billtimeFrom,
                                                              billtimeTo, companyID, finishStatus));
                }
            }
            else
            {
                reimburses = _DalReimburse.GetReimburseByCondition(departmentid, statusEnum, reimburseCategoriesEnumID,
                                                                   totalcostfrom,
                                                                   totalcostto, applydateFrom, applydateTo, billtimeFrom,
                                                                   billtimeTo, companyID, finishStatus);
            }
            List <Account> accounts =
                BllInstance.AccountBllInstance.GetAccountByBaseCondition(employeename, departmentid, -1, null, true, null);

            accounts = Tools.RemoteUnAuthAccount(accounts, AuthType.HRMIS, loginUser, auth);
            for (int i = reimburses.Count - 1; i >= 0; i--)
            {
                if (!IsContainsAccount(accounts, reimburses[i].ApplierID))
                {
                    reimburses.RemoveAt(i);
                }
                else
                {
                    Account account = BllInstance.AccountBllInstance.GetAccountById(reimburses[i].ApplierID);
                    reimburses[i].ApplerName = account.Name;
                    reimburses[i].Department.DepartmentName = account.Dept.DepartmentName;
                }
            }


            return(reimburses);
        }
Beispiel #7
0
 public List <Reimburse> GetReimburseByCondition(Account loginUser, string employeename, int departmentid,
                                                 ReimburseStatusEnum statusEnum, int reimburseCategoriesEnumID,
                                                 decimal?totalcostfrom, decimal?totalcostto,
                                                 DateTime?applydateFrom, DateTime?applydateTo,
                                                 DateTime?billtimeFrom, DateTime?billtimeTo, int companyID,
                                                 int auth, int finishStatus)
 {
     return
         (new GetReimburse().GetReimburseByCondition(loginUser, employeename, departmentid, statusEnum,
                                                     reimburseCategoriesEnumID, totalcostfrom, totalcostto,
                                                     applydateFrom, applydateTo, billtimeFrom, billtimeTo,
                                                     companyID, auth, finishStatus));
 }
        private void Execute(ReimburseStatusEnum reimburseStatusEnum)
        {
            hrmisModel.Reimburse reimburse = _IReimburseView.Reimburse;
            reimburse.ReimburseStatus = reimburseStatusEnum;
            if (reimburseStatusEnum == ReimburseStatusEnum.Reimbursing)
            {
                reimburse.CommitTime = DateTime.Now.ToString();
            }
            reimburse.ReimburseID = _ReimburseID;
            reimburse.Department  = _LoginUser.Dept;

            reimburse.ReimburseCategoriesEnum =
                ReimburseCategoriesEnum.GetById(Convert.ToInt32(_IReimburseView.ReimburseCategoriesEnumID));
            DateTime consumeDateFrom = Convert.ToDateTime(_IReimburseView.ConsumeDateFrom);
            DateTime consumeDateTo   = Convert.ToDateTime(_IReimburseView.ConsumeDateTo);

            reimburse.ConsumeDateFrom = new DateTime(consumeDateFrom.Year, consumeDateFrom.Month, consumeDateFrom.Day,
                                                     Convert.ToInt32(_IReimburseView.ConsumeDateFromHour),
                                                     Convert.ToInt32(_IReimburseView.ConsumeDateFromMinute), 0);
            reimburse.ConsumeDateTo = new DateTime(consumeDateTo.Year, consumeDateTo.Month, consumeDateTo.Day,
                                                   Convert.ToInt32(_IReimburseView.ConsumeDateToHour),
                                                   Convert.ToInt32(_IReimburseView.ConsumeDateToMinute), 0);
            reimburse.PaperCount     = Convert.ToInt32(_IReimburseView.PaperCount);
            reimburse.Destinations   = _IReimburseView.Destinations;
            reimburse.ExchangeRateID = _IReimburseView.ExchangeRateID;
            //reimburse.CustomerID = string.Empty;
            reimburse.ProjectName = _IReimburseView.ProjectName;
            reimburse.Discription = _IReimburseView.Discription;
            //UpdateReimburse updateReimburse = new UpdateReimburse(_EmployeeID, reimburse);
            //try
            //{
            //    updateReimburse.Excute();
            //    ToMyReimbursePage(null, null);
            //}
            //catch (ApplicationException ae)
            //{
            //    _IReimburseView.Message = ae.Message;
            //}
            try
            {
                _IReimburseFacade.UpdateReimburse(_LoginUser.Id, reimburse);
                ToMyReimbursePage(null, null);
            }
            catch (ApplicationException ae)
            {
                _IReimburseView.Message = ae.Message;
            }
        }
Beispiel #9
0
        public static List <ReimburseEntity> GetReimburseByCondition(List <int> departmentId, ReimburseStatusEnum statusEnum, ReimburseStatusEnum?exceptStatusEnum, bool?isFillCustomer, int reimburseCategoriesEnumID,
                                                                     decimal?totalcostfrom,
                                                                     decimal?totalcostto, DateTime?applydateFrom,
                                                                     DateTime?applydateTo, DateTime?billtimeFrom, DateTime?billtimeTo,
                                                                     int companyID, int finishStatus)
        {
            using (var dataOperator = new DataOperator(SqlHelper.HrmisConnectionString))
            {
                dataOperator.CommandText = @"SELECT a.*,b.Name as ExchangeRateName,b.Symbol as ExchangeSymbol,b.Rate as ExchangeRate 
from TReimburse as a with(nolock)  left join TExchangeRate as b with(nolock)  on a.ExchangeRateID=b.PKID  WHERE   1=1  ";
                if (departmentId != null && departmentId.Count > 0)
                {
                    dataOperator.CommandText += string.Format(" and DepartmentID in ({0})", string.Join(",", departmentId));
                }
                if ((int)statusEnum != -1)
                {
                    dataOperator.CommandText += " and ReimburseStatus=@ReimburseStatus";
                    dataOperator.SetParameter("@ReimburseStatus", (int)statusEnum, SqlDbType.Int);
                }
                if (exceptStatusEnum != null)
                {
                    dataOperator.CommandText += " and ReimburseStatus<>@ExceptReimburseStatus";
                    dataOperator.SetParameter("@ExceptReimburseStatus", (int)exceptStatusEnum, SqlDbType.Int);
                }
                if (isFillCustomer != null)
                {
                    dataOperator.CommandText += " and a.PKID in (select ReimburseID from TReimburseItem with(nolock) where CustomerID" + (isFillCustomer.Value ? "<>" : "=") + "0)";
                }
                if (reimburseCategoriesEnumID != -1)
                {
                    dataOperator.CommandText += " and ReimburseCategoriesEnum=@ReimburseCategoriesEnum";
                    dataOperator.SetParameter("@ReimburseCategoriesEnum", reimburseCategoriesEnumID, SqlDbType.Int);
                }
                if (companyID != -1)
                {
                    dataOperator.CommandText += " and EmployeeId in (select AccountID from TEmployee where CompanyID=@CompanyID) ";
                    dataOperator.SetParameter("@CompanyID", companyID, SqlDbType.Int);
                }
                if (finishStatus != -1)
                {
                    if (finishStatus == 0)
                    {
                        dataOperator.CommandText += " and Reimbursestatus<>2";
                    }
                    if (finishStatus == 1)
                    {
                        dataOperator.CommandText += " and Reimbursestatus=2";
                    }
                }
                if (totalcostfrom != null)
                {
                    dataOperator.CommandText += " and TotalCost>=@TotalCostFrom";
                    dataOperator.SetParameter("@TotalCostFrom", totalcostfrom, SqlDbType.Decimal);
                }
                if (totalcostto != null)
                {
                    dataOperator.CommandText += " and TotalCost<=@TotalCostTo";
                    dataOperator.SetParameter("@TotalCostTo", totalcostto, SqlDbType.Decimal);
                }
                if (applydateFrom != null)
                {
                    dataOperator.CommandText += " and ApplyDate>=@ApplyDateFrom";
                    dataOperator.SetParameter("@ApplyDateFrom", applydateFrom.GetValueOrDefault().Date, SqlDbType.DateTime);
                }
                if (applydateTo != null)
                {
                    dataOperator.CommandText += " and ApplyDate<@ApplyDateTo";
                    dataOperator.SetParameter("@ApplyDateTo", applydateTo.GetValueOrDefault().AddDays(1).Date, SqlDbType.DateTime, 2);
                }
                if (billtimeFrom != null)
                {
                    dataOperator.CommandText += " and BillingTime>=@BillingTimeFrom";
                    dataOperator.SetParameter("@BillingTimeFrom", billtimeFrom.GetValueOrDefault().Date, SqlDbType.DateTime);
                }
                if (billtimeTo != null)
                {
                    dataOperator.CommandText += " and BillingTime<@BillingTimeTo";
                    dataOperator.SetParameter("@BillingTimeTo", billtimeTo.GetValueOrDefault().AddDays(1).Date, SqlDbType.DateTime);
                }
                dataOperator.CommandText += " order By ApplyDate desc ";
                return(dataOperator.ExecuteEntityList <ReimburseEntity>());
            }
        }
Beispiel #10
0
 public InterruptOrCancelReimburses(Account loginUser, int reimburseID, ReimburseStatusEnum statusEnum)
 {
     _ReimburseID = reimburseID;
     _LoginUser   = loginUser;
     _StatusEnum  = statusEnum;
 }
Beispiel #11
0
 public Reimburse(DateTime applyDate, ReimburseStatusEnum reimburseStatus)
 {
     _ApplyDate       = applyDate;
     _ReimburseStatus = reimburseStatus;
 }
Beispiel #12
0
 public static void AddReimburseStatusValueAndNameIntoDictionary(Dictionary <string, string> dictionaryData,
                                                                 ReimburseStatusEnum reimburseStatusEnum)
 {
     dictionaryData.Add(((int)reimburseStatusEnum).ToString(),
                        GetReimburseStatusNameByReimburseStatus(reimburseStatusEnum));
 }
Beispiel #13
0
        private List <Model.Reimburse> RemoveReimburseByStatus(List <Model.Reimburse> reimburseList, ReimburseStatusEnum reimburseStatusEnum)
        {
            List <Model.Reimburse> returnList = new List <Model.Reimburse>();

            foreach (Model.Reimburse reimburse in reimburseList)
            {
                if (!reimburse.ReimburseStatus.Equals(reimburseStatusEnum))
                {
                    returnList.Add(reimburse);
                }
            }
            return(returnList);
        }
Beispiel #14
0
 public ReimburseFlow(Employee _operator, DateTime operatorTime, ReimburseStatusEnum reimburseStatusEnum)
 {
     _Operator            = _operator;
     _OperationTime       = operatorTime;
     _ReimburseStatusEnum = reimburseStatusEnum;
 }