Exemplo n.º 1
0
        protected void RadCostInvoiceMoney_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
        {
            IList <CostInvoiceMoneyInfo> list1 = _costInvoiceMoneyDao.GetCostInvoiceMoneyList(DateYear, DateMonth);

            DateTime startTime = Convert.ToDateTime(string.Format("{0}-{1}-01 00:00:00", DateYear, DateMonth));
            DateTime endTime   = startTime.AddMonths(1);
            IList <CostReportInfo> costReportList = _costReport.GetReportList(startTime, endTime).Where(ent => ent.InvoiceType == (int)CostReportInvoiceType.Invoice).OrderByDescending(r => r.ReportDate).ToList();
            var filialeList = CacheCollection.Filiale.GetHeadList();
            IList <CostInvoiceMoneyInfo> list2 = new List <CostInvoiceMoneyInfo>();

            if (list1.Count > 0)
            {
                foreach (var filialeInfo in filialeList)
                {
                    var info = new CostInvoiceMoneyInfo();
                    var item = list1.FirstOrDefault(ent => ent.FilialeId == filialeInfo.ID);
                    if (item != null)
                    {
                        info.FilialeId   = filialeInfo.ID;
                        info.FilialeName = filialeInfo.Name;
                        info.Limit       = item.Limit;
                    }
                    else
                    {
                        info.FilialeId   = filialeInfo.ID;
                        info.FilialeName = filialeInfo.Name;
                        info.Limit       = Convert.ToDecimal("0.00");
                    }
                    var list = costReportList.Where(ent => ent.AssumeFilialeId == filialeInfo.ID).ToList();
                    info.WaitCollect      = GetWaitCollect(list);
                    info.WaitChargeOff    = GetWaitChargeOff(list);
                    info.AlreadyChargeOff = GetAlreadyChargeOff(list);
                    list2.Add(info);
                }
                RadGridCostInvoiceMoney.DataSource = list2;
            }
            else
            {
                IList <CostInvoiceMoneyInfo> list3 = (from filialeInfo in filialeList
                                                      let list = costReportList.Where(ent => ent.AssumeFilialeId == filialeInfo.ID).ToList()
                                                                 select new CostInvoiceMoneyInfo
                {
                    FilialeId = filialeInfo.ID,
                    FilialeName = filialeInfo.Name,
                    Limit = Convert.ToDecimal("0.00"),
                    DateYear = DateYear,
                    DateMonth = DateMonth,
                    WaitCollect = GetWaitCollect(list),
                    WaitChargeOff = GetWaitChargeOff(list),
                    AlreadyChargeOff = GetAlreadyChargeOff(list)
                }).ToList();
                RadGridCostInvoiceMoney.DataSource = list3;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <param name="auditingBranchIdList"></param>
        /// <param name="invoiceType"></param>
        /// <param name="states"></param>
        /// <returns></returns>
        public IList <CostReportInfo> GetReportList(DateTime startTime, DateTime endTime, IList <Guid> auditingBranchIdList, IList <int> invoiceType, IList <int> states)
        {
            var    typeString = string.Join(",", invoiceType.ToArray());
            string stateString;

            switch (states[0])
            {
            case 0:
                stateString = " IN(0,3) ";    //票据待受理,审核不通过
                break;

            case 10:
                stateString = " =10 ";    //票据待选
                typeString  = "1,2,3,4";
                break;

            default:
                stateString = " NOT IN(0,3) ";
                break;
            }
            return(_costReport.GetReportList(startTime, endTime, string.Empty, typeString, stateString));
        }
Exemplo n.º 3
0
        //Grid数据源
        protected void GridDataBind()
        {
            IList <CostReportInfo> list;
            var reportId = Request.QueryString["ReportId"];

            if (string.IsNullOrEmpty(reportId))
            {
                list = new List <CostReportInfo>();
            }
            else
            {
                DateTime       startTime  = DateTime.Now.AddDays(-30);
                DateTime       endTime    = DateTime.Now;
                CostReportInfo reportInfo = _costReport.GetReportByReportId(new Guid(reportId));
                list = _costReport.GetReportList();
                if (list.Count > 0)
                {
                    list = list.Where(p => (p.ReportPersonnelId == reportInfo.ReportPersonnelId || p.AssumeBranchId == reportInfo.AssumeBranchId) && p.ReportDate >= startTime && p.ReportDate <= endTime && p.State != (int)CostReportState.Auditing && p.ReportId != reportInfo.ReportId && p.AuditingMan == Personnel.PersonnelId).ToList();
                }
            }
            RG_Report.DataSource = list.OrderByDescending(c => c.ReportDate);
        }
        //Grid数据源
        protected void GridDataBind()
        {
            var states = new List <int>();

            switch (ddl_State.SelectedValue)
            {
            case "0":     //已处理
                states.Add((int)CostReportState.AlreadyAuditing);
                states.Add((int)CostReportState.WaitVerify);
                states.Add((int)CostReportState.NoAuditing);
                break;

            case "1":     //未处理
                states.Add((int)CostReportState.Auditing);
                break;
            }

            var costReportList = _costReport.GetReportList(states);
            var query          = costReportList.AsQueryable();

            #region 查询条件
            if (!string.IsNullOrEmpty(txt_ReportNo.Text))
            {
                query = query.Where(p => p.ReportNo.Equals(txt_ReportNo.Text.Trim()));
            }

            if (Hid_TimeType.Value.Equals("1"))
            {
                if (!string.IsNullOrEmpty(txt_DateTimeStart.Text))
                {
                    var startTime = DateTime.Parse(txt_DateTimeStart.Text);
                    query = query.Where(p => p.ReportDate >= startTime);
                }
                if (!string.IsNullOrEmpty(txt_DateTimeEnd.Text))
                {
                    var endtime = DateTime.Parse(txt_DateTimeEnd.Text);
                    query = query.Where(p => p.ReportDate < endtime.AddDays(1));
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(txt_DateTimeStart.Text))
                {
                    var startTime = DateTime.Parse(txt_DateTimeStart.Text);
                    query = query.Where(p => p.AuditingDate >= startTime);
                }
                if (!string.IsNullOrEmpty(txt_DateTimeEnd.Text))
                {
                    var endtime = DateTime.Parse(txt_DateTimeEnd.Text);
                    query = query.Where(p => p.AuditingDate < endtime.AddDays(1));
                }
            }
            if (!string.IsNullOrEmpty(txt_ReportName.Text))
            {
                query = query.Where(p => p.ReportName.Contains(txt_ReportName.Text.Trim()));
            }
            if (!string.IsNullOrEmpty(rcb_ReportPersonnel.SelectedValue) && !rcb_ReportPersonnel.SelectedValue.Equals(Guid.Empty.ToString()))
            {
                query = query.Where(p => p.ReportPersonnelId.Equals(new Guid(rcb_ReportPersonnel.SelectedValue)));
            }
            if (!string.IsNullOrEmpty(txt_ReportCostStart.Text))
            {
                query = query.Where(p => p.ReportCost >= decimal.Parse(txt_ReportCostStart.Text));
            }
            if (!string.IsNullOrEmpty(txt_ReportCostEnd.Text))
            {
                query = query.Where(p => p.ReportCost <= decimal.Parse(txt_ReportCostEnd.Text));
            }
            if (!string.IsNullOrEmpty(ddl_AssumeFiliale.SelectedValue))
            {
                query = query.Where(p => p.AssumeFilialeId.Equals(new Guid(ddl_AssumeFiliale.SelectedValue)));
            }
            query = query.Where(p => p.UrgentOrDefer.Equals(int.Parse(rbl_UrgentOrDefer.SelectedValue)));
            #endregion

            #region 获取权限数据集

            #region 获取数据集中所有申报人的部门集合
            var reportPersonnelIdList = query.Select(act => act.ReportPersonnelId).Distinct().ToList();
            var branchIds             = MISService.GetBranchIdsByPersonnelIds(reportPersonnelIdList);
            #endregion

            #region 费用申报审批权限
            var costReportAuditingList = _costReportAuditingPower.GetCanAuditingInfo(Personnel.FilialeId, Personnel.BranchId, Personnel.PositionId).Where(p => p.Kind == (int)CostReportAuditingType.Auditing);
            #endregion

            foreach (CostReportAuditingInfo info in costReportAuditingList)
            {
                //筛选该部门中在相应“审批金额范围”内的数据
                var branchAuditingList = query.Where(p => info.MinAmount <= p.ReportCost + p.PayCost && p.ReportCost + p.PayCost <= info.MaxAmount).ToList();
                foreach (var item in branchAuditingList)
                {
                    //此筛选条件没有放到where中的原因:因为有些用户缺少部门信息,所以有些“ReportPersonnelId”在branchIds中不存在,如果放到where中筛选会报错
                    if (branchIds.ContainsKey(item.ReportPersonnelId) && info.ReportBranchId.Contains(branchIds[item.ReportPersonnelId].ToString()))
                    {
                        if (ReportList.Count(p => p.ReportId.Equals(item.ReportId)).Equals(0))
                        {
                            ReportList.Add(item);
                        }
                    }
                }
            }
            #endregion

            #region 合计
            var totalName  = RG_Report.MasterTableView.Columns.FindByUniqueName("TotalName");
            var reportCost = RG_Report.MasterTableView.Columns.FindByUniqueName("ReportCost");
            var payCost    = RG_Report.MasterTableView.Columns.FindByUniqueName("PayCost");
            if (query.Any())
            {
                var sumReportCost = query.Sum(p => Math.Abs(p.ReportCost));
                var sumPayCost    = query.Sum(p => Math.Abs(p.PayCost));
                totalName.FooterText  = "合计:";
                reportCost.FooterText = string.Format("{0}", ERP.UI.Web.Common.WebControl.NumberSeparator(sumReportCost));
                payCost.FooterText    = string.Format("{0}", ERP.UI.Web.Common.WebControl.NumberSeparator(sumPayCost));
            }
            else
            {
                totalName.FooterText  = string.Empty;
                reportCost.FooterText = string.Empty;
                payCost.FooterText    = string.Empty;
            }
            #endregion

            RG_Report.DataSource = query.OrderByDescending(r => r.ReportDate).ToList();
        }
        //Grid数据源
        protected void GridDataBind()
        {
            var states = new List <int>();

            switch (ddl_State.SelectedValue)
            {
            case "0":     //已处理
                states.Add((int)CostReportState.Pay);
                states.Add((int)CostReportState.Complete);
                break;

            case "1":     //未处理
                //CostReportState.WaitVerify 此状态对于“个人”是【待付款确认】,对于“公司”是【待收款确认】
                states.Add((int)CostReportState.AlreadyAuditing);
                states.Add((int)CostReportState.WaitVerify);
                break;
            }

            var costReportList = _costReport.GetReportList(states);
            var query          = costReportList.AsQueryable();

            #region 查询条件
            if (!string.IsNullOrEmpty(txt_ReportNo.Text))
            {
                query = query.Where(p => p.ReportNo.Equals(txt_ReportNo.Text.Trim()));
            }

            if (Hid_TimeType.Value.Equals("1"))
            {
                if (!string.IsNullOrEmpty(txt_DateTimeStart.Text))
                {
                    var startTime = DateTime.Parse(txt_DateTimeStart.Text);
                    query = query.Where(p => p.ReportDate >= startTime);
                }
                if (!string.IsNullOrEmpty(txt_DateTimeEnd.Text))
                {
                    var endtime = DateTime.Parse(txt_DateTimeEnd.Text);
                    query = query.Where(p => p.ReportDate < endtime.AddDays(1));
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(txt_DateTimeStart.Text))
                {
                    var startTime = DateTime.Parse(txt_DateTimeStart.Text);
                    query = query.Where(p => p.ExecuteDate >= startTime);
                }
                if (!string.IsNullOrEmpty(txt_DateTimeEnd.Text))
                {
                    var endtime = DateTime.Parse(txt_DateTimeEnd.Text);
                    query = query.Where(p => p.ExecuteDate < endtime.AddDays(1));
                }
            }

            if (!string.IsNullOrEmpty(txt_ReportName.Text))
            {
                query = query.Where(p => p.ReportName.Contains(txt_ReportName.Text.Trim()));
            }
            if (!string.IsNullOrEmpty(rcb_ReportPersonnel.SelectedValue) && !rcb_ReportPersonnel.SelectedValue.Equals(Guid.Empty.ToString()))
            {
                query = query.Where(p => p.ReportPersonnelId.Equals(new Guid(rcb_ReportPersonnel.SelectedValue)));
            }
            if (!string.IsNullOrEmpty(txt_PayCompany.Text))
            {
                query = query.Where(p => p.PayCompany.Equals(txt_PayCompany.Text.Trim()));
            }
            if (!string.IsNullOrEmpty(ddl_PayBankAccount.SelectedValue))
            {
                query = query.Where(p => p.PayBankAccountId.Equals(new Guid(ddl_PayBankAccount.SelectedValue)));
            }
            if (!string.IsNullOrEmpty(ddl_AssumeFiliale.SelectedValue))
            {
                query = query.Where(p => p.AssumeFilialeId.Equals(new Guid(ddl_AssumeFiliale.SelectedValue)));
            }
            #endregion

            #region 合计
            var totalName  = RG_Report.MasterTableView.Columns.FindByUniqueName("TotalName");
            var reportCost = RG_Report.MasterTableView.Columns.FindByUniqueName("ReportCost");
            var payCost    = RG_Report.MasterTableView.Columns.FindByUniqueName("PayCost");
            if (query.Any())
            {
                var sumReportCost = query.Sum(p => Math.Abs(p.ReportCost));
                var sumPayCost    = query.Sum(p => Math.Abs(p.PayCost));
                totalName.FooterText  = "合计:";
                reportCost.FooterText = string.Format("{0}", ERP.UI.Web.Common.WebControl.NumberSeparator(sumReportCost));
                payCost.FooterText    = string.Format("{0}", ERP.UI.Web.Common.WebControl.NumberSeparator(sumPayCost));
            }
            else
            {
                totalName.FooterText  = string.Empty;
                reportCost.FooterText = string.Empty;
                payCost.FooterText    = string.Empty;
            }
            #endregion

            var list = query.ToList();
            RG_Report.DataSource = list;
            LoadPayBankAccountData(list);
        }
        //Grid数据源
        protected void GridDataBind()
        {
            var states = new List <int>();

            switch (ddl_State.SelectedValue)
            {
            case "0":     //已处理
                states.Add((int)CostReportState.AlreadyAuditing);
                states.Add((int)CostReportState.CompletedMayApply);
                //states.Add((int)CostReportState.Auditing);
                states.Add((int)CostReportState.WaitVerify);
                states.Add((int)CostReportState.Complete);
                break;

            case "1":     //未处理
                states.Add((int)CostReportState.NoAuditing);
                break;
            }
            var costReportList = _costReport.GetReportList(states);
            var query          = costReportList.AsQueryable();

            #region 查询条件
            if (!string.IsNullOrEmpty(txt_ReportNo.Text))
            {
                query = query.Where(p => p.ReportNo.Equals(txt_ReportNo.Text.Trim()));
            }
            if (Hid_TimeType.Value.Equals("1"))
            {
                if (!string.IsNullOrEmpty(txt_DateTimeStart.Text))
                {
                    var startTime = DateTime.Parse(txt_DateTimeStart.Text);
                    query = query.Where(p => p.ReportDate >= startTime);
                }
                if (!string.IsNullOrEmpty(txt_DateTimeEnd.Text))
                {
                    var endtime = DateTime.Parse(txt_DateTimeEnd.Text);
                    query = query.Where(p => p.ReportDate < endtime.AddDays(1));
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(txt_DateTimeStart.Text))
                {
                    var startTime = DateTime.Parse(txt_DateTimeStart.Text);
                    query = query.Where(p => p.AcceptDate >= startTime);
                }
                if (!string.IsNullOrEmpty(txt_DateTimeEnd.Text))
                {
                    var endtime = DateTime.Parse(txt_DateTimeEnd.Text);
                    query = query.Where(p => p.AcceptDate < endtime.AddDays(1));
                }
            }
            if (!string.IsNullOrEmpty(txt_ReportName.Text))
            {
                query = query.Where(p => p.ReportName.Contains(txt_ReportName.Text.Trim()));
            }
            if (!string.IsNullOrEmpty(rcb_ReportPersonnel.SelectedValue) && !rcb_ReportPersonnel.SelectedValue.Equals(Guid.Empty.ToString()))
            {
                query = query.Where(p => p.ReportPersonnelId.Equals(new Guid(rcb_ReportPersonnel.SelectedValue)));
            }
            if (!string.IsNullOrEmpty(txt_InvoiceAndReceiptNo.Text))
            {
                query = query.Where(p => p.InvoiceNo.Equals(txt_InvoiceAndReceiptNo.Text) || p.ReceiptNo.Equals(txt_InvoiceAndReceiptNo.Text));
            }
            if (!string.IsNullOrEmpty(ddl_AssumeFiliale.SelectedValue))
            {
                query = query.Where(p => p.AssumeFilialeId.Equals(new Guid(ddl_AssumeFiliale.SelectedValue)));
            }
            if (!string.IsNullOrEmpty(ddl_ReportKind.SelectedValue))
            {
                query = query.Where(p => p.ReportKind.Equals(int.Parse(ddl_ReportKind.SelectedValue)));
            }
            query = query.Where(p => p.InvoiceType.Equals((int)CostReportInvoiceType.Invoice) || p.InvoiceType.Equals((int)CostReportInvoiceType.VatInvoice) || p.InvoiceType.Equals((int)CostReportInvoiceType.Voucher));
            #endregion

            #region 获取权限数据集

            #region 获取数据集中所有申报人的部门集合
            var reportPersonnelIdList = query.Select(act => act.ReportPersonnelId).Distinct().ToList();
            var branchIds             = MISService.GetBranchIdsByPersonnelIds(reportPersonnelIdList);
            #endregion

            #region 费用申报受理权限
            var costReportAuditingList = _costReportAuditingPower.GetCanAuditingInfo(Personnel.FilialeId, Personnel.BranchId, Personnel.PositionId).Where(p => p.Kind == (int)CostReportAuditingType.Invoice);
            #endregion

            foreach (CostReportAuditingInfo info in costReportAuditingList)
            {
                foreach (var item in query)
                {
                    if (branchIds.ContainsKey(item.ReportPersonnelId) && info.ReportBranchId.Contains(branchIds[item.ReportPersonnelId].ToString()))
                    {
                        if (ReportList.Count(p => p.ReportId.Equals(item.ReportId)).Equals(0))
                        {
                            ReportList.Add(item);
                        }
                    }
                }
            }
            #endregion

            #region 合计
            var totalName  = RG_Report.MasterTableView.Columns.FindByUniqueName("TotalName");
            var reportCost = RG_Report.MasterTableView.Columns.FindByUniqueName("ReportCost");
            if (query.Any())
            {
                var sumReportCost = query.Sum(p => Math.Abs(p.ReportCost));
                totalName.FooterText  = "合计:";
                reportCost.FooterText = string.Format("{0}", ERP.UI.Web.Common.WebControl.NumberSeparator(sumReportCost));
            }
            else
            {
                totalName.FooterText  = string.Empty;
                reportCost.FooterText = string.Empty;
            }
            #endregion

            RG_Report.DataSource = query.OrderByDescending(r => r.ReportDate).ToList();
        }
        //Grid数据源
        protected void GridDataBind()
        {
            var costReportList = _costReport.GetReportList(Personnel.PersonnelId).OrderByDescending(r => r.ReportDate);
            var query          = costReportList.AsQueryable();

            #region 查询条件
            if (!string.IsNullOrEmpty(txt_ReportNo.Text))
            {
                query = query.Where(p => p.ReportNo.Equals(txt_ReportNo.Text.Trim()));
            }
            if (!string.IsNullOrEmpty(txt_ReportDateStart.Text))
            {
                var startTime = DateTime.Parse(txt_ReportDateStart.Text);
                query = query.Where(p => p.ReportDate >= startTime);
            }
            if (!string.IsNullOrEmpty(txt_ReportDateEnd.Text))
            {
                var endtime = DateTime.Parse(txt_ReportDateEnd.Text);
                query = query.Where(p => p.ReportDate < endtime.AddDays(1));
            }

            if (!string.IsNullOrEmpty(txt_ReportName.Text))
            {
                query = query.Where(p => p.ReportName.Contains(txt_ReportName.Text.Trim()));
            }

            switch (ddl_State.SelectedValue)
            {
            case "0":     //已处理
                query = query.Where(p =>
                                    p.State == (int)CostReportState.AuditingNoPass ||
                                    p.State == (int)CostReportState.InvoiceNoPass ||
                                    p.State == (int)CostReportState.Complete);
                break;

            case "1":     //未处理
                query = query.Where(p =>
                                    p.State == (int)CostReportState.Auditing ||
                                    p.State == (int)CostReportState.NoAuditing ||
                                    p.State == (int)CostReportState.AlreadyAuditing ||
                                    p.State == (int)CostReportState.WaitVerify ||
                                    p.State == (int)CostReportState.Pay ||
                                    p.State == (int)CostReportState.CompletedMayApply);
                break;

            case "-1":     //全部
                break;

            default:
                query = query.Where(p => p.State != (int)CostReportState.Complete);
                break;
            }
            #endregion

            #region 合计
            var totalName  = RG_Report.MasterTableView.Columns.FindByUniqueName("TotalName");
            var reportCost = RG_Report.MasterTableView.Columns.FindByUniqueName("ReportCost");
            var payCost    = RG_Report.MasterTableView.Columns.FindByUniqueName("PayCost");
            if (query.Any())
            {
                var sumReportCost = query.Sum(p => Math.Abs(p.ReportCost));
                var sumPayCost    = query.Sum(p => Math.Abs(p.PayCost));
                totalName.FooterText  = "合计:";
                reportCost.FooterText = string.Format("{0}", WebControl.NumberSeparator(sumReportCost));
                payCost.FooterText    = string.Format("{0}", WebControl.NumberSeparator(sumPayCost));
            }
            else
            {
                totalName.FooterText  = string.Empty;
                reportCost.FooterText = string.Empty;
                payCost.FooterText    = string.Empty;
            }
            #endregion

            RG_Report.DataSource = query.ToList();
        }