public void TransferOtherPage(Guid SystemID) { Guid sysID = SystemID; if (ddlMonth.SelectedValue == "") { DateTime datetime = StaticResource.Instance.GetReportDateTime(); finMonth = datetime.Month; finYear = datetime.Year; } else { finMonth = int.Parse(ddlMonth.SelectedValue); //年下拉 finYear = int.Parse(ddlYear.SelectedValue); } C_System sysModel = StaticResource.Instance[sysID, DateTime.Now]; if (chkIsLastestVersion.Checked) { B_MonthlyReport B_monthRpt = B_MonthlyreportOperator.Instance.GetMonthlyReport(sysID, finYear, finMonth); if (B_monthRpt != null) { sysModel = StaticResource.Instance[sysID, B_monthRpt.CreateTime]; } } else { A_MonthlyReport A_monthRpt = A_MonthlyreportOperator.Instance.GetAMonthlyReport(sysID, finYear, finMonth); if (A_monthRpt != null) { sysModel = StaticResource.Instance[sysID, A_monthRpt.CreateTime]; } } if (sysModel.Category == 1) { Response.Redirect("TargetRpt.aspx?_sysid=" + HttpUtility.UrlEncode(sysID.ToString()) + "&_finMonth=" + HttpUtility.UrlEncode(finMonth.ToString()) + "&_finYear=" + HttpUtility.UrlEncode(finYear.ToString()) + "&IsLastestVersion=" + chkIsLastestVersion.Checked); } else if (sysModel.Category == 2) { Response.Redirect("ProMonthReport.aspx?_sysid=" + HttpUtility.UrlEncode(sysID.ToString()) + "&_finMonth=" + HttpUtility.UrlEncode(finMonth.ToString()) + "&_finYear=" + HttpUtility.UrlEncode(finYear.ToString()) + "&IsLastestVersion=" + chkIsLastestVersion.Checked); } else if (sysModel.Category == 3) { return; } else if (sysModel.Category == 4) { Response.Redirect("TargetDirectlyRpt.aspx?_sysid=" + HttpUtility.UrlEncode(sysID.ToString()) + "&_finMonth=" + HttpUtility.UrlEncode(finMonth.ToString()) + "&_finYear=" + HttpUtility.UrlEncode(finYear.ToString()) + "&IsLastestVersion=" + chkIsLastestVersion.Checked); } }
/// <summary> /// 获取A表的数据插入B表 /// </summary> /// <param name="bmr"></param> public void AddBMRD(B_MonthlyReport bmr) { IList <B_MonthlyReportDetail> listBMRD = B_MonthlyreportdetailOperator.Instance.GetMonthlyreportdetailList(bmr.ID); bool IsExistence = B_MonthlyreportdetailOperator.Instance.GetMonthlyReportDetailCount(bmr.ID); List <B_MonthlyReportDetail> B_ReportDetails = new List <B_MonthlyReportDetail>(); var targetPlan = StaticResource.Instance.GetDefaultTargetPlanList(Guid.Parse(ddlSystem.SelectedValue), FinYear).FirstOrDefault(); if (targetPlan == null || targetPlan.TargetPlanID == null || targetPlan.TargetPlanID == Guid.Empty) { UserControl.SetButtonSpanStyle(-1); return; } var targetPlanId = targetPlan.TargetPlanID; if (IsExistence == false) { A_MonthlyReport AMonthlyReport = A_MonthlyreportOperator.Instance.GetAMonthlyReport(Guid.Parse(ddlSystem.SelectedValue), Guid.Empty, FinYear, FinMonth, targetPlanId); //如果A表有数据从A表取数据,否则取B表上一版本的数据。 if (AMonthlyReport != null) { //从A表获取数据插入B表 bmr.Description = AMonthlyReport.Description; //月报说明 B_MonthlyreportOperator.Instance.UpdateMonthlyreport(bmr); //更新月报说明 B_ReportDetails = B_MonthlyreportdetailOperator.Instance.GetMonthlyReportDetail_ByAToB(FinYear, FinMonth, AMonthlyReport.SystemID, bmr.AreaID, bmr.ID, targetPlanId); } else { //获取B表的审批中的数据,做成草稿 B_MonthlyReport BMonthlyReport = B_MonthlyreportOperator.Instance.GetMonthlyReport(Guid.Parse(ddlSystem.SelectedValue), Guid.Empty, FinYear, FinMonth, bmr.ID, targetPlanId); if (BMonthlyReport != null) { //从B表获取上一版本数据插入B表 B_ReportDetails = B_MonthlyreportdetailOperator.Instance.GetMonthlyReportDetail_ByBToB(FinYear, FinMonth, BMonthlyReport.SystemID, BMonthlyReport.ID, bmr.ID); } } //判断当前B_MonthlyReportID在明细表中是否有数据。 if (B_ReportDetails.Count > 0) { bmr.Status = 5; B_MonthlyreportOperator.Instance.UpdateMonthlyreport(bmr);//更新月度经营表 //B_MonthlyreportdetailOperator.Instance.AddOrUpdateTargetDetail(B_ReportDetails, "Insert");//更新月度经营明细表 } } UserControl.SetButtonSpanStyle(bmr.Status); }
/// <summary> /// 获取A表的数据插入B表 /// </summary> /// <param name="bmr"></param> public void AddBMRD(B_MonthlyReport bmr) { //IList<B_MonthlyReportDetail> listBMRD = B_MonthlyreportdetailOperator.Instance.GetMonthlyreportdetailList(bmr.ID); var targetPlan = StaticResource.Instance.GetDefaultTargetPlanList(Guid.Parse(ddlSystem.SelectedValue), FinYear).FirstOrDefault(); if (targetPlan == null || targetPlan.TargetPlanID == null || targetPlan.TargetPlanID == Guid.Empty) { return; } var targetPlanId = targetPlan.TargetPlanID; bool IsExistence = B_MonthlyreportdetailOperator.Instance.GetMonthlyReportDetailCount(bmr.ID); List <B_MonthlyReportDetail> B_ReportDetails = new List <B_MonthlyReportDetail>(); //listBMRD.Count == 0 Guid AreaID = Guid.Parse(ddlAreaID.Visible ? ddlAreaID.SelectedValue : Guid.Empty.ToString()); if (IsExistence == false) // 明细里不存在数据 { //A_MonthlyReport AMonthlyReport = A_MonthlyreportOperator.Instance.GetAMonthlyReport(Guid.Parse(ddlSystem.SelectedValue), FinYear, FinMonth); A_MonthlyReport AMonthlyReport = A_MonthlyreportOperator.Instance.GetAMonthlyReport(Guid.Parse(ddlSystem.SelectedValue), AreaID, FinYear, FinMonth, targetPlanId); //如果A表有数据从A表取数据,否则取B表上一版本的数据。 if (AMonthlyReport != null) { //从A表获取数据插入B表 bmr.Description = AMonthlyReport.Description; //月报说明 B_MonthlyreportOperator.Instance.UpdateMonthlyreport(bmr); //更新月报说明 B_ReportDetails = B_MonthlyreportdetailOperator.Instance.GetMonthlyReportDetail_ByAToB(FinYear, FinMonth, AMonthlyReport.SystemID, bmr.AreaID, bmr.ID, targetPlanId); } else { //B_MonthlyReport BMonthlyReport = B_MonthlyreportOperator.Instance.GetMonthlyReport(Guid.Parse(ddlSystem.SelectedValue), FinYear, FinMonth, bmr.ID); B_MonthlyReport BMonthlyReport = B_MonthlyreportOperator.Instance.GetMonthlyReport(Guid.Parse(ddlSystem.SelectedValue), AreaID, FinYear, FinMonth, bmr.ID, targetPlanId); if (BMonthlyReport != null) { //从B表获取上一版本数据插入B表 B_ReportDetails = B_MonthlyreportdetailOperator.Instance.GetMonthlyReportDetail_ByBToB(FinYear, FinMonth, BMonthlyReport.SystemID, BMonthlyReport.ID, bmr.ID); } } //判断当前B_MonthlyReportID在明细表中是否有数据。 if (B_ReportDetails.Count > 0) { bmr.Status = 5; B_MonthlyreportOperator.Instance.UpdateMonthlyreport(bmr); //更新月度经营表 // B_MonthlyreportdetailOperator.Instance.AddOrUpdateTargetDetail(B_ReportDetails, "Insert");//更新月度经营明细表 } } }
public static A_MonthlyReport ToAModel(this MonthlyReport value) { A_MonthlyReport result = new A_MonthlyReport { ID = value.ID, SystemID = value.SystemID, Description = value.Description, IsDeleted = value.IsDeleted, FinMonth = value.FinMonth, FinYear = value.FinYear, CreateTime = value.CreateTime, CreatorName = value.CreatorName, ModifierName = value.ModifierName, ModifyTime = value.ModifyTime, Status = value.Status, SystemBatchID = value.SystemBatchID }; return(result); }
/// <summary> /// Initial the Data Source of MonthReport and MonthlyReportDetail. /// if IsLatestVersion is true, the data source will be B_ table and WFStatus == Progress. /// otherwise, the data source is A_ atble /// </summary> /// <param name="IsLatestVersion">if the data source should be B_ Table</param> void InitialData(bool IsLatestVersion, bool IsAll) { if (IsLatestVersion) { if (LastestMonthlyReport != null) { Report = LastestMonthlyReport.ToVModel(); if (_MonthReportID == Guid.Empty) { _MonthReportID = Report.ID; } } ReportDetails = new List <MonthlyReportDetail>(); if (DataSource == "Draft") { ReportDetails = B_MonthlyreportdetailOperator.Instance.GetMonthlyReportDetailList_Draft(_System.ID, FinYear, FinMonth, _MonthReportID, TargetPlanID, _SystemBatchID, IsAll); } else { ReportDetails = B_MonthlyreportdetailOperator.Instance.GetMonthlyReportDetailList_Approve(_System.ID, FinYear, FinMonth, _MonthReportID, TargetPlanID, _SystemBatchID, IsAll); } //LastestMonthlyReportDetails.ForEach(P => ReportDetails.Add(P.ToVModel())); } else { if (ValidatedMonthlyReport != null) { Report = ValidatedMonthlyReport.ToVModel(); if (_MonthReportID == Guid.Empty) { _MonthReportID = Report.ID; } } ReportDetails = new List <MonthlyReportDetail>(); ReportDetails = A_MonthlyreportdetailOperator.Instance.GetMonthlyReportDetailList_Result(_System.ID, FinYear, FinMonth, TargetPlanID); //ValidatedMonthlyReportDetails.ForEach(P => ReportDetails.Add(P.ToVModel())); } if (UserPermission) { //筛选当前用户有权限的项目公司信息(因为权限数据缺失暂时注释) var companyIDArray = BLL.BizBLL.S_OrganizationalActionOperator.Instance.GetUserCompanyDataNoIsDelete(_System.ID, CurrentLoginName).Select(m => m.ID).ToArray(); if (companyIDArray.Length > 0) { ReportDetails = ReportDetails.Where(m => companyIDArray.Contains(m.CompanyID)).ToList(); if (ReportDetails.Any()) { _MonthReportID = ReportDetails[0].MonthlyReportID; if (IsLatestVersion) { _LastestMonthlyReport = B_MonthlyreportOperator.Instance.GetMonthlyreport(ReportDetails[0].MonthlyReportID); Report = LastestMonthlyReport.ToVModel(); } else { _ValidatedMonthlyReport = A_MonthlyreportOperator.Instance.GetMonthlyreport(ReportDetails[0].MonthlyReportID); Report = ValidatedMonthlyReport.ToVModel(); } } } else { ReportDetails = new List <MonthlyReportDetail>(); } } }
/// <summary> /// 将B表的数据,同步到A表中 /// </summary> /// <param name="rpt"></param> private void BtoAData(B_MonthlyReport rpt, List <B_MonthlyReportDetail> rptDetailList) { A_MonthlyReport rptA = null; List <A_MonthlyReportDetail> rptTempDetailList = new List <A_MonthlyReportDetail>(); List <A_MonthlyReportDetail> rptADetailList = null; //A主表的的数据 rptA = A_MonthlyreportOperator.Instance.GetAMonthlyReport(rpt.SystemID, rpt.FinYear, rpt.FinMonth); //A表明细数据 rptADetailList = A_MonthlyreportdetailOperator.Instance.GetAMonthlyreportdetailList(rpt.SystemID, rpt.FinYear, rpt.FinMonth).ToList(); //判断当月主表是否是null if (rptA == null) { A_MonthlyreportOperator.Instance.AddMonthlyreport(new A_MonthlyReport() { ID = rpt.ID, TargetPlanID = rpt.TargetPlanID, AreaID = rpt.AreaID, FinYear = rpt.FinYear, FinMonth = rpt.FinMonth, Description = rpt.Description, SystemID = rpt.SystemID, Status = 5, SystemBatchID = rpt.SystemBatchID, CreatorName = this.CurrentUser, CreateTime = DateTime.Now }); //判断A 明细 if (rptADetailList.Count == 0) { #region 明细数据 //将B 表数据添加到 A表中 rptDetailList.ForEach(p => rptTempDetailList.Add(p.ToAModel(true))); #endregion } else { //删除A表明细的所有数据 A_MonthlyreportdetailOperator.Instance.DeleteMonthlyreportdetailList(rptADetailList); #region 明细数据 //将B 表数据添加到 A表中 rptDetailList.ForEach(p => rptTempDetailList.Add(p.ToAModel(true))); #endregion } //添加明细数据 A_MonthlyreportdetailOperator.Instance.AddMonthlyreportDetailList(rptTempDetailList); } else { //上来删除主表的ID A_MonthlyreportOperator.Instance.DeleteModel(rptA); //新增B表的主表数据 A_MonthlyreportOperator.Instance.AddMonthlyreport(new A_MonthlyReport() { ID = rpt.ID, TargetPlanID = rpt.TargetPlanID, AreaID = rpt.AreaID, FinYear = rpt.FinYear, FinMonth = rpt.FinMonth, Description = rpt.Description, SystemID = rpt.SystemID, Status = 5, SystemBatchID = rpt.SystemBatchID, CreatorName = this.CurrentUser, CreateTime = DateTime.Now }); //B表转换到A表 if (rptADetailList.Count == 0) { #region 明细数据 //将B 表数据添加到 A表中 rptDetailList.ForEach(p => rptTempDetailList.Add(p.ToAModel(true))); #endregion } else { //删除A表明细的所有数据 A_MonthlyreportdetailOperator.Instance.DeleteMonthlyreportdetailList(rptADetailList); #region 明细数据 //将B 表数据添加到 A表中 rptDetailList.ForEach(p => rptTempDetailList.Add(p.ToAModel(true))); #endregion } //添加明细数据 A_MonthlyreportdetailOperator.Instance.AddMonthlyreportDetailList(rptTempDetailList); } }