/// **************************************************************************** /// <summary> /// 提交数据 /// </summary> /// **************************************************************************** public void SubmitData() { if (this.ApplicationCode != "") { DAL.QueryStrategy.BiddingReturnStrategyBuilder sb = new RmsPM.DAL.QueryStrategy.BiddingReturnStrategyBuilder(); sb.AddStrategy(new Strategy(DAL.QueryStrategy.BiddingReturnStrategyName.BiddingCode, this.BiddingCode)); string sql = sb.BuildMainQueryString(); EntityData entity = new EntityData("BiddingReturn"); dao.FillEntity(sql, entity); //删除原有排名 BLL.BiddingSystem.DelHistoryPlace(this.BiddingCode); //产生一张新表 DataTable dt = new DataTable(); dt.Columns.Add("BiddingReturnCode", System.Type.GetType("System.String")); dt.Columns.Add("Money", System.Type.GetType("System.Decimal")); dt.Columns.Add("Remark", System.Type.GetType("System.String")); dt.Columns.Add("ReturnDate", System.Type.GetType("System.String")); dt.Columns.Add("State", System.Type.GetType("System.String")); dt.Columns.Add("BiddingDtlCode", System.Type.GetType("System.String")); DataRow dr; //读取表中信息,并产生排名 for (int i = 0; i < this.dgListEdit.Items.Count; i++) { dr = dt.NewRow(); dr["BiddingReturnCode"] = this.dgListEdit.Items[i].Cells[0].Text.Trim(); dr["Money"] = this.GetControl(i).TotalMoney; dr["Remark"] = ((HtmlTextArea)this.dgListEdit.Items[i].FindControl("txtRemark")).Value.Trim(); dr["ReturnDate"] = ((AspWebControl.Calendar) this.dgListEdit.Items[i].FindControl("txtReturnDate")).Value; dr["BiddingDtlCode"] = this.dgListEdit.Items[i].Cells[8].Text.Trim(); //dr["State"]=i+1; dt.Rows.Add(dr); } BLL.Bidding bd = new BLL.Bidding(); bd.BiddingCode = this.BiddingCode; BLL.BiddingReturn br = new BLL.BiddingReturn(); br.BiddingEmitCode = bd.BiddingLastEmit; DataTable dtreturn = br.GetBiddingReturns(); foreach (DataRow drr in dtreturn.Rows) { if (dt.Select("BiddingReturnCode ='" + drr["BiddingReturnCode"].ToString() + "'").Length == 0) { dr = dt.NewRow(); dr["BiddingReturnCode"] = drr["BiddingReturnCode"]; dr["BiddingDtlCode"] = drr["BiddingDtlCode"]; dr["Money"] = drr["Money"]; dr["Remark"] = drr["Remark"]; dr["ReturnDate"] = drr["ReturnDate"]; //dr.ItemArray.CopyTo(drr.ItemArray, 0); dt.Rows.Add(dr); } } DataView dv = new DataView(dt); dv.Sort = "BiddingDtlCode,Money"; //for(int i=0;i<dv.Rows.Count;i++) int j = 0; string tempBDtlCode = ""; decimal tempMoney = 0; foreach (DataRowView dr2 in dv) { if (tempBDtlCode != dr2["BiddingDtlCode"].ToString()) { tempBDtlCode = dr2["BiddingDtlCode"].ToString(); j = 0; tempMoney = 0; } DataRow[] dr1 = entity.CurrentTable.Select("BiddingReturnCode='" + dr2["BiddingReturnCode"].ToString() + "' and " + "BiddingDtlCode='" + dr2["BiddingDtlCode"].ToString() + "'"); if (dr1.Length > 0) { dr1[0]["Money"] = dr2["Money"]; dr1[0]["Remark"] = dr2["Remark"]; dr1[0]["ReturnDate"] = dr2["ReturnDate"]; //State字段中存放商务标排名,规则为:如果回标金额为0或者为空时不参与商务标排名;金额一样的单位,名次一样。 if (!dr2["Money"].ToString().Equals("0") && !dr2["Money"].ToString().Equals("")) { if (tempMoney != System.Convert.ToDecimal(dr2["Money"])) { j++; } dr1[0]["State"] = j; } else { dr1[0]["State"] = ""; } tempMoney = System.Convert.ToDecimal(dr2["Money"]); } } dao.SubmitEntity(entity); BLL.Bidding bidding = new BLL.Bidding(); bidding.BiddingCode = this.BiddingCode; bidding.State = NowState; bidding.dao = dao; bidding.BiddingSubmit(); //更新备注 BLL.BiddingEmit addRemark = new RmsPM.BLL.BiddingEmit(); addRemark.BiddingEmitCode = this.BiddingEmitCode; addRemark.TotalRemark = this.txtTotalRemark.Text; addRemark.dao = dao; addRemark.BiddingEmitUpdate(); } else { //删除历史排序记录 BLL.BiddingSystem.DelHistoryPlace(this.BiddingCode); DataTable dt = (DataTable)ViewState["dt"]; BLL.BiddingSupplier BSup = new RmsPM.BLL.BiddingSupplier(); DAL.QueryStrategy.BiddingReturnStrategyBuilder sb = new RmsPM.DAL.QueryStrategy.BiddingReturnStrategyBuilder(); sb.AddStrategy(new Strategy(DAL.QueryStrategy.BiddingReturnStrategyName.BiddingEmitCode, this.BiddingEmitCode)); string sql = sb.BuildMainQueryString(); EntityData entity = new EntityData("BiddingReturn"); dao.FillEntity(sql, entity); if (dt.Rows.Count > 0) { dao.DeleteAllRow(entity); dao.SubmitEntity(entity); string stat = "0"; string tempsuppliercodestr = ""; for (int i = 0; i < dt.Rows.Count; i++) { if (((CheckBox)dgListView.Items[i].FindControl("CheckBox1")).Checked == true) { DataRow dr = entity.GetNewRecord(); dr["BiddingReturnCode"] = dt.Rows[i]["BiddingReturnCode"].ToString(); dr["BiddingDtlCode"] = dt.Rows[i]["BiddingDtlCode"].ToString(); dr["SupplierCode"] = dt.Rows[i]["SupplierCode"].ToString(); dr["OrderCode"] = dt.Rows[i]["OrderCode"].ToString(); dr["BiddingEmitCode"] = this.BiddingEmitCode; dr["Abnegate"] = 0; entity.AddNewRecord(dr); //更新供应商表 stat = "1"; //添加评分信息 RmsPM.BLL.BiddingGradeMessage cbiddingGradeMessage = new RmsPM.BLL.BiddingGradeMessage(); cbiddingGradeMessage.ApplicationCode = dt.Rows[i]["BiddingReturnCode"].ToString(); cbiddingGradeMessage.BiddingGradeTypeCode = "100002"; if (cbiddingGradeMessage.GetBiddings().Rows.Count == 0) { cbiddingGradeMessage.BiddingGradeMessageCode = ""; cbiddingGradeMessage.ProjectManage = ""; cbiddingGradeMessage.State = "1"; cbiddingGradeMessage.dao = dao; cbiddingGradeMessage.BiddingGradeMessageAdd(); } ////////////////网上招投标数据产生//////////////////// if (tempsuppliercodestr.IndexOf(dt.Rows[i]["SupplierCode"].ToString()) == -1 && this.CheckBox2.Checked) { tempsuppliercodestr += "," + dt.Rows[i]["SupplierCode"].ToString(); EmitToInsert(dt.Rows[i]["SupplierCode"].ToString(), this.BiddingEmitCode); } /////////////////////////////////////////////////////// } //更新供应商列表 BSup.BiddingSupplierCode = this.dgListView.DataKeys[i].ToString(); BSup.State = stat; BSup.dao = dao; BSup.BiddingSupplierUpdate(); //BSup.BiddingSupplierUpdate(); } dao.SubmitEntity(entity); entity.Dispose(); } //保存开标人 if (this.CheckBox2.Checked) { BiddingBFL.Emit_SendMail(this.BiddingEmitCode, Server.MapPath(ConfigurationManager.AppSettings["VirtualDirectory"].ToString()) + @"\EmailTemplate.xml"); foreach (ListItem opener in chkOpener.Items) { if (opener.Selected) { BiddingBFL.InsertBiddingOpener(this.BiddingEmitCode, opener.Value); } } } } }
public static void GetSHTreeDataSource(DataTable dtConsiderDiathesis, DataTable dtBiddingSupplier, DataTable returndt, string GradeMessageCode, string CodeName, string ParentCodeName, string ParentCode, string Code, string LeftStr, int Deep, decimal PercentageValue, string ConsiderDiathesisCode) { int num5; if (Code == "") { returndt.Columns.Add("code", Type.GetType("System.String")); returndt.Columns.Add("freeflag", Type.GetType("System.String")); returndt.Columns.Add("issubtotal", Type.GetType("System.String")); returndt.Columns.Add("ColumnCount", Type.GetType("System.Int32")); returndt.Clear(); dtConsiderDiathesis.Columns.Add("code", Type.GetType("System.String")); dtConsiderDiathesis.Columns.Add("freeflag", Type.GetType("System.String")); dtConsiderDiathesis.Columns.Add("issubtotal", Type.GetType("System.String")); dtConsiderDiathesis.Columns.Add("ColumnCount", Type.GetType("System.Int32")); for (int i = 0; i < dtBiddingSupplier.Rows.Count; i++) { returndt.Columns.Add("Point" + (i + 1), Type.GetType("System.String")); returndt.Columns.Add("Code" + (i + 1), Type.GetType("System.String")); returndt.Columns.Add("GradeMessageCode" + (i + 1), Type.GetType("System.String")); returndt.Columns["Point" + (i + 1)].Caption = dtBiddingSupplier.Rows[i]["SupplierName"].ToString(); dtConsiderDiathesis.Columns.Add("Point" + (i + 1), Type.GetType("System.String")); dtConsiderDiathesis.Columns.Add("Code" + (i + 1), Type.GetType("System.String")); dtConsiderDiathesis.Columns.Add("GradeMessageCode" + (i + 1), Type.GetType("System.String")); dtConsiderDiathesis.Columns["Point" + (i + 1)].Caption = dtBiddingSupplier.Rows[i]["SupplierName"].ToString(); } } DataRow[] rowArray = dtConsiderDiathesis.Select(ParentCodeName + "='" + ParentCode.ToString() + "' and BiddingGradeTypeCode='100001'"); DataTable currentTable = BiddingGradeMessage.GetAllBiddingGradeMessage().CurrentTable; string text = ""; for (int j = 0; j < dtBiddingSupplier.Rows.Count; j++) { if (j != (dtBiddingSupplier.Rows.Count - 1)) { text = string.Concat(new object[] { text, "'", dtBiddingSupplier.Rows[j]["BiddingSupplierCode"], "'," }); } else { text = string.Concat(new object[] { text, "'", dtBiddingSupplier.Rows[j]["BiddingSupplierCode"], "'" }); } } int num3 = 0; string text2 = ""; DataTable biddings = new DataTable(); if (text != "") { foreach (DataRow row in currentTable.Select("ApplicationCode in (" + text + ") and BiddingGradeTypeCode='100001'")) { if (num3 != (currentTable.Select("ApplicationCode in (" + text + ") and BiddingGradeTypeCode='100001'").Length - 1)) { text2 = string.Concat(new object[] { text2, "'", row["BiddingGradeMessageCode"], "'," }); } else { text2 = string.Concat(new object[] { text2, "'", row["BiddingGradeMessageCode"], "'" }); } num3++; } BiddingGrade grade = new BiddingGrade(); grade.BiddingGradeMessageCode = text2; biddings = grade.GetBiddings(); } int num4 = 1; foreach (DataRow row2 in rowArray) { if (num4 == 1) { row2["freeflag"] = "1"; } else { row2["freeflag"] = "0"; } row2["ColumnCount"] = dtBiddingSupplier.Rows.Count; row2["code"] = Code + ((num4.ToString().Length < 2) ? ("0" + num4.ToString()) : num4.ToString()); row2["Percentage"] = Convert.ToDecimal(row2["Percentage"]) * 100M; row2["issubtotal"] = "0"; DataRow row3 = returndt.NewRow(); row3.ItemArray = row2.ItemArray; returndt.Rows.Add(row3); for (num5 = 0; num5 < dtBiddingSupplier.Rows.Count; num5++) { row3["Point" + (num5 + 1)] = 0; row3["Code" + (num5 + 1)] = ""; row3["GradeMessageCode" + (num5 + 1)] = ""; } int num6 = 0; if (text != "") { foreach (DataRow row4 in currentTable.Select("ApplicationCode in (" + text + ") and BiddingGradeTypeCode='100001'")) { num6++; row3["GradeMessageCode" + num6] = row4["BiddingGradeMessageCode"]; foreach (DataRow row5 in biddings.Select(string.Concat(new object[] { "BiddingGradeMessageCode='", row4["BiddingGradeMessageCode"], "' and BiddingConsiderDiathesisCode='", row2["BiddingConsiderDiathesisCode"], "'" }))) { row3["Code" + num6] = row5["BiddingGradeCode"]; row3["Point" + num6] = row5["GradePoint"]; } } } } DataRow row6 = returndt.NewRow(); row6["BiddingConsiderDiathesisCode"] = ""; row6["BiddingConsiderDiathesis"] = "总计"; row6["GradeGuideline"] = ""; row6["freeflag"] = "0"; row6["ColumnCount"] = dtBiddingSupplier.Rows.Count; row6["code"] = Code + ((num4.ToString().Length < 2) ? ("0" + num4.ToString()) : num4.ToString()); row6["Percentage"] = Convert.ToDecimal(1) * 100M; row6["issubtotal"] = "1"; returndt.Rows.Add(row6); for (num5 = 0; num5 < dtBiddingSupplier.Rows.Count; num5++) { row6["Point" + (num5 + 1)] = 0; row6["Code" + (num5 + 1)] = ""; row6["GradeMessageCode" + (num5 + 1)] = ""; } for (int k = 0; k < (returndt.Rows.Count - 1); k++) { for (int m = 0; m < Convert.ToInt32(returndt.Rows[0]["ColumnCount"]); m++) { row6["Point" + (m + 1)] = Convert.ToString((decimal)(Convert.ToDecimal(row6["Point" + (m + 1)]) + ((Convert.ToDecimal(returndt.Rows[k]["Point" + (m + 1)]) * Convert.ToDecimal(returndt.Rows[k]["Percentage"])) / 100M))); } } }