public void Delete(string RequestID, string Type, string rowIndex) { string sqldel = ""; if (Type == "T") { sqldel += "select * from Eflow where RequestID='" + RequestID + "' and [Type]='T';"; sqldel += "select * from ETravel where ID='" + RequestID + "';"; sqldel += "select * from ETraveleDetail where [No]='" + RequestID + "';"; //sqldel += "delete from Eflow where RequestID='" + RequestID + "' and [Type]='T';"; //sqldel += "delete from ETravel where ID='" + RequestID + "';"; //sqldel += "delete from ETraveleDetail where [No]='" + RequestID + "';"; sqldel += "update ETravel set Void=1 where ID='" + RequestID + "';"; } else if (Type == "G") { sqldel += "select * from Eflow where RequestID='" + RequestID + "' and [Type]='G';"; sqldel += "select * from Ecommon where ID='" + RequestID + "';"; sqldel += "select * from EeommonDetail where [No]='" + RequestID + "';"; //sqldel += "delete from Eflow where RequestID='" + RequestID + "' and [Type]='G';"; //sqldel += "delete from Ecommon where ID='" + RequestID + "';"; //sqldel += "delete from EeommonDetail where [No]='" + RequestID + "';"; sqldel += "update Ecommon set Void=1 where ID='" + RequestID + "';"; } cs.DBCommand dbc = new cs.DBCommand(); string sqlre = dbc.UpdateData("eReimbursement", sqldel, "Update"); //X.AddScript("Store1.removeAt(" + rowIndex + ");Store1.load();"); }
protected bool SaveDetail(string detailjson) { JavaScriptSerializer ser = new JavaScriptSerializer(); List<DetailExpense> Details = ser.Deserialize<List<DetailExpense>>(detailjson); DateTime dtnull = new DateTime(1, 1, 1, 0, 0, 0); cs.DBCommand dbc = new cs.DBCommand(); //删除现有数据 string deletesql = "delete from ETraveleDetail where [No]='" + hdTravelRequestID.Value.ToString() + "'"; string newid1 = dbc.UpdateData("eReimbursement", deletesql, "Update"); foreach (DetailExpense detail in Details) { if (newid1 == "-1") { ErrorHandle("Data Error."); return false; } //新增 string word = "[No],[Tocity],[AccountName],[AccountCode],[AccountDes],[Cur],[Pamount],[Camount],[TSation],[Createdby],[CreadedDate],[Tdate],[Department1]"; string value = ""; value += "'" + hdTravelRequestID.Value.ToString() + "',"; value += "'" + detail.Tocity + "',"; value += "'" + detail.AccountName + "',"; value += "'" + detail.AccountCode + "',"; value += "'" + detail.AccountDes.Replace("'", "''") + "',"; value += "'" + detail.Cur + "',"; value += detail.Pamount == "" ? "null," : detail.Pamount + ","; value += detail.Camount == "" ? "null," : detail.Camount + ","; value += "'" + detail.TSation + "',"; value += "'" + cbxOwner.Value.ToString() + "',";//edit value += "'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; value += detail.Tdate == "" ? "null" : "'" + detail.Tdate + "',"; value += "'" + detail.Department1 + "'"; string updatesql = "insert into ETraveleDetail (" + word + ") values(" + value + ");select [ID]=@@IDENTITY from ETraveleDetail"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert"); if (newid == "-1") { ErrorHandle("Data Error."); return false; } } return true; }
protected bool SaveDetail(string detail, string header0string, string header1string, string header2string, string Cur, string dept) { cs.DBCommand dbc = new cs.DBCommand(); //删除现有数据 string deletesql = "delete from ETraveleDetail where [No]='" + hdTravelRequestID.Value.ToString() + "'"; string newid1 = dbc.UpdateData("eReimbursement", deletesql, "Update"); SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["eReimbursement"].ConnectionString); //如果出差站点为空,则不保存信息 StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(detail, null); XmlNode xml = eSubmit.Xml; XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.InnerXml); int dtcol = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes.Count; //doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).ChildNodes[j].InnerText; int dtrow = doc.SelectNodes("records").Item(0).SelectNodes("record").Count; int groupcount = (dtcol - 3) / 2;//多少个站点会被更新,如果站点为空则不更新 decimal psum = 0, csum = 0;//记录该申请单的费用合计 for (int i = 0; i < groupcount; i++) { if (header0string.Split(',')[i] != "NA")//站点为空则不更新 { DataSet ds2 = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(hdOwnerID.Value.ToString()); string station = "",Tstation=""; if (ds2.Tables[0].Rows.Count == 1) { DataTable dt1 = ds2.Tables[0]; station = dt1.Rows[0]["stationCode"].ToString(); DataTable dttemp = new DataTable(); string sqltemp = "select * from ESUSER where Userid='" + hdOwnerID.Value.ToString() + "'"; dttemp = dbc.GetData("eReimbursement", sqltemp); if (dttemp.Rows.Count > 0) { station = dttemp.Rows[0]["Station"].ToString(); } } Tstation = header1string.Split(',')[i] == "NA" ? station : header1string.Split(',')[i]; double re = System.Math.Round(DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(station) / DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(Tstation), 4); //共新增11行固定数据 for (int j = 0; j < 11; j++) { try { SqlCommand scdetail = sqlConn.CreateCommand(); scdetail.CommandText = "insert into ETraveleDetail ([No],[Tocity],[AccountCode],[Cur],[Pamount],[Camount],[TSation],[Createdby],[CreadedDate],[Tdate],[Department1],[DetailCode],[Tdate0],[CenterAmountP],[CenterAmountC]) values (@No,@Tocity,@AccountCode,@Cur,@Pamount,@Camount,@TSation,@Createdby,@CreadedDate,@Tdate,@Department1,@DetailCode,@Tdate0,@CenterAmountP,@CenterAmountC)"; SqlParameter spdetail = new SqlParameter("@No", SqlDbType.VarChar, 50); spdetail.Value = hdTravelRequestID.Value.ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Tocity", SqlDbType.VarChar, 10); spdetail.Value = header0string.Split(',')[i]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@AccountCode", SqlDbType.VarChar, 50); switch (j) { case 4: spdetail.Value = "62010900"; break; case 5: spdetail.Value = "62011900"; break; case 6: spdetail.Value = "62010500"; break; default: spdetail.Value = "62012000"; break; } scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Cur", SqlDbType.VarChar, 50); spdetail.Value = Cur; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Pamount", SqlDbType.Decimal); if (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[1 + i * 2].InnerText != "") { spdetail.Value = System.Math.Round(Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[1 + i * 2].InnerText), 2); psum += System.Math.Round(Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[1 + i * 2].InnerText), 2); } else { spdetail.Value = DBNull.Value; } scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@CenterAmountP", SqlDbType.Decimal); if (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[1 + i * 2].InnerText != "") { spdetail.Value = Convert.ToDecimal(System.Math.Round(Convert.ToDouble(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[1 + i * 2].InnerText) * re, 2)); } else { spdetail.Value = DBNull.Value; } scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Camount", SqlDbType.Decimal); if (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[2 + i * 2].InnerText != "") { spdetail.Value = System.Math.Round(Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[2 + i * 2].InnerText), 2); csum += System.Math.Round(Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[2 + i * 2].InnerText), 2); } else { spdetail.Value = DBNull.Value; } scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@CenterAmountC", SqlDbType.Decimal); if (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[2 + i * 2].InnerText != "") { spdetail.Value = Convert.ToDecimal(System.Math.Round(Convert.ToDouble(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[2 + i * 2].InnerText) * re, 2)); } else { spdetail.Value = DBNull.Value; } scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@TSation", SqlDbType.VarChar, 50); spdetail.Value = header1string.Split(',')[i] == "NA" ? "" : header1string.Split(',')[i]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Createdby", SqlDbType.VarChar, 50); spdetail.Value = hdOwnerID.Value.ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@CreadedDate", SqlDbType.DateTime); spdetail.Value = DateTime.Now; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Tdate", SqlDbType.DateTime); if (header2string.Split(',')[i * 2 + 1] == "NA") { spdetail.Value = DBNull.Value; } else { spdetail.Value = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]); } scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Tdate0", SqlDbType.DateTime); if (header2string.Split(',')[i * 2] == "NA") { spdetail.Value = DBNull.Value; } else { spdetail.Value = Convert.ToDateTime(header2string.Split(',')[i * 2]); } scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Department1", SqlDbType.VarChar, 50); spdetail.Value = dept; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@DetailCode", SqlDbType.Int); spdetail.Value = j; scdetail.Parameters.Add(spdetail); sqlConn.Open(); int row = scdetail.ExecuteNonQuery(); sqlConn.Close(); } catch (Exception er) { throw er; } } } } try { SqlCommand scdetail = sqlConn.CreateCommand(); scdetail.CommandText = "update ETravel set Pamout=@Pamout,Camount=@Camount,Tamount=@Tamount where [ID]=@ID"; SqlParameter spdetail = new SqlParameter("@ID", SqlDbType.VarChar, 50); spdetail.Value = hdTravelRequestID.Value.ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Pamout", SqlDbType.Decimal); spdetail.Value = psum; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Camount", SqlDbType.Decimal); spdetail.Value = csum; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Tamount", SqlDbType.Decimal); spdetail.Value = psum + csum; scdetail.Parameters.Add(spdetail); sqlConn.Open(); int row = scdetail.ExecuteNonQuery(); sqlConn.Close(); } catch (Exception) { throw; } return true; }
public void SaveAll(string type, string detail, string MailList, string header0string, string header1string, string header2string, string Cur, string dept) { if (Request.Cookies.Get("eReimUserID") == null || hdUser.Value.ToString() != Request.Cookies.Get("eReimUserID").Value) { if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { X.AddScript("Ext.Msg.show({ title: '提示', msg: '已切换用户,将刷新页面.', buttons: { ok: 'Ok' }, fn: function (btn) { window.location.reload(); } });"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Current user changed,reloading...', buttons: { ok: 'Ok' }, fn: function (btn) { window.location.reload(); } });"); } return; } DateTime dtnull = new DateTime(1, 1, 1, 0, 0, 0); cs.DBCommand dbc = new cs.DBCommand(); ////检查是否已经为该申请人设置过审批人 string sqlCheckFlow = ""; //if (Radio1.Checked) ////if (cbxBudget.Value.ToString() == "YES")//使用Budget审批流程 //{ sqlCheckFlow = "select * from GroupFlow where [Type]!=2 and GID=(select GID from GroupUsers where UserID='" + hdOwnerID.Value.ToString() + "')"; //} //else//使用unBudget审批流程 //{ // sqlCheckFlow = "select * from GroupFlow where [Type]=2 and GID=(select GID from GroupUsers where UserID='" + hdOwnerID.Value.ToString() + "')"; //} DataTable dtGroupFlowData = dbc.GetData("eReimbursement", sqlCheckFlow); //if (dtGroupFlowData.Rows.Count < 1) //{ // if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") // { // ErrorHandle("请先设置审批人."); // } // else // { // ErrorHandle("Not set Approve flow,please contact with Local MIS."); // } // return; //} //处理抄送人列表 string CCMailList = ""; JavaScriptSerializer ser = new JavaScriptSerializer(); List<CCMailList> CCMailList1 = ser.Deserialize<List<CCMailList>>(MailList); foreach (CCMailList mail in CCMailList1) { CCMailList += mail.Email + ","; } CCMailList = CCMailList.Length > 0 ? CCMailList.Substring(0, CCMailList.Length - 1) : ""; string userid = hdOwnerID.Value.ToString(); string ostation = ""; string station = ""; string department = ""; DataSet ds2 = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(userid); if (ds2.Tables[0].Rows.Count == 1) { DataTable dt1 = ds2.Tables[0]; //dpt = dt1.Rows[0]["DepartmentName"].ToString(); ostation = dt1.Rows[0]["CostCenter"].ToString(); station = dt1.Rows[0]["stationCode"].ToString(); department = dt1.Rows[0]["CRPDepartmentName"].ToString(); //DataTable dttemp = new DataTable(); //string sqltemp = "select * from ESUSER where Userid='" + userid + "'"; //dttemp = dbc.GetData("eReimbursement", sqltemp); //if (dttemp.Rows.Count > 0) //{ // ostation = dttemp.Rows[0]["Station"].ToString(); //} } string para = type; for (int i = 0; i < header0string.Split(',').Length; i++) { //判断出差站点名称是否合法 //if (header0string.Split(',')[i] != "NA")//站点为空则不更新 //{ // bool isstation = DIMERCO.SDK.Utilities.LSDK.isStationExist(header0string.Split(',')[i]); // if (!isstation)//如果不是合法站点,提示可选站点 // { // DataSet GetCityInfo = DIMERCO.SDK.Utilities.LSDK.GetCityInfo(header0string.Split(',')[i], 5); // DataTable dtGetCityInfo = (DataTable)GetCityInfo.Tables[0]; // string suggestStation = ""; // for (int j = 0; j < dtGetCityInfo.Rows.Count; j++) // { // suggestStation += dtGetCityInfo.Rows[j]["CityCode"].ToString() + ","; // } // if (suggestStation.Trim()!="") // { // suggestStation = suggestStation.Substring(0, suggestStation.Length - 1); // X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Invalid DSTN(" + header0string.Split(',')[i] + ").Suggestion:" + suggestStation + ".', buttons: { ok: 'Ok' }, fn: function (btn) { } });"); // return; // } // else // { // X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Please input valid DSTN.', buttons: { ok: 'Ok' }, fn: function (btn) { } });"); // return; // } // } //} //判断成本中心名称是否合法 if (header0string.Split(',')[i] != "NA" && header1string.Split(',')[i]!="NA")//站点为空则不更新 { bool isstation = DIMERCO.SDK.Utilities.LSDK.isCostCenterExist(header1string.Split(',')[i]); if (!isstation)//如果不是合法站点,提示可选站点 { DataSet GetCityInfo = DIMERCO.SDK.Utilities.LSDK.getCostCenterBYStationCode(header1string.Split(',')[i], 5); DataTable dtGetCityInfo = (DataTable)GetCityInfo.Tables[0]; string suggestStation = ""; for (int j = 0; j < dtGetCityInfo.Rows.Count; j++) { suggestStation += dtGetCityInfo.Rows[j]["StationCode"].ToString() + ","; } if (suggestStation.Trim() != "") { suggestStation = suggestStation.Substring(0, suggestStation.Length - 1); X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Invalid Cost Center(" + header1string.Split(',')[i] + ").Suggestion:" + suggestStation + ".', buttons: { ok: 'Ok' }, fn: function (btn) { } });"); return; } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Please input valid Cost Center.', buttons: { ok: 'Ok' }, fn: function (btn) { } });"); return; } } } } //140306 if (true) { DataTable dtbudget = new DataTable(); dtbudget.Columns.Add("EName", typeof(System.String)); dtbudget.Columns.Add("COACode", typeof(System.String)); dtbudget.Columns.Add("Current", typeof(System.Decimal)); dtbudget.Columns.Add("PU", typeof(System.Decimal)); dtbudget.Columns.Add("PB", typeof(System.Decimal)); dtbudget.Columns.Add("PPercent", typeof(System.Decimal)); dtbudget.Columns.Add("DU", typeof(System.Decimal)); dtbudget.Columns.Add("DB", typeof(System.Decimal)); dtbudget.Columns.Add("DPercent", typeof(System.Decimal)); dtbudget.Columns.Add("SU", typeof(System.Decimal)); dtbudget.Columns.Add("SB", typeof(System.Decimal)); dtbudget.Columns.Add("SPercent", typeof(System.Decimal)); DataTable dtA = new DataTable(); dtA.Columns.Add("COACode", typeof(System.String)); dtA.Columns.Add("Amount", typeof(System.Decimal)); dtA.Columns.Add("Date", typeof(System.DateTime)); StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(detail, null); XmlNode xml = eSubmit.Xml; XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.InnerXml); int dtcol = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes.Count; int dtrow = doc.SelectNodes("records").Item(0).SelectNodes("record").Count; int groupcount = (dtcol - 3) / 2;//多少个站点会被更新,如果站点为空则不更新 //string tstation = "", year = "", month = "", coacode = ""; for (int i = 0; i < groupcount; i++) { if (header0string.Split(',')[i] != "NA")//站点为空则不更新 { //1. Air Ticket - Int'l if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtA.NewRow(); drnew["COACode"] = "62012000"; drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]); decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtA.Rows.Add(drnew); } //Domestic if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtA.NewRow(); drnew["COACode"] = "62012000"; drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]); decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtA.Rows.Add(drnew); } //2. Hotel Bill if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtA.NewRow(); drnew["COACode"] = "62012000"; drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]); decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtA.Rows.Add(drnew); } //3. Meals if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtA.NewRow(); drnew["COACode"] = "62012000"; drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]); decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtA.Rows.Add(drnew); } //4. Entertainment if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtA.NewRow(); drnew["COACode"] = "62010900"; drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]); decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtA.Rows.Add(drnew); } //5. Car Rental/Transportation if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtA.NewRow(); drnew["COACode"] = "62011900"; drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]); decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtA.Rows.Add(drnew); } //6. Communication if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtA.NewRow(); drnew["COACode"] = "62010500"; drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]); decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtA.Rows.Add(drnew); } //7. Local Trip if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtA.NewRow(); drnew["COACode"] = "62012000"; drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]); decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtA.Rows.Add(drnew); } //8. Overseas Trip USD15/day if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtA.NewRow(); drnew["COACode"] = "62012000"; drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]); decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtA.Rows.Add(drnew); } //9. Airport Tax/Travel Insurance if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtA.NewRow(); drnew["COACode"] = "62012000"; drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]); decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtA.Rows.Add(drnew); } //10. Others if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtA.NewRow(); drnew["COACode"] = "62012000"; drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]); decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtA.Rows.Add(drnew); } } } //合计 DataTable dtB = new DataTable(); dtB.Columns.Add("COACode", typeof(System.String)); dtB.Columns.Add("Amount", typeof(System.Decimal)); if (dtA.Compute("Sum(Amount)", "COACode = 62010900").ToString() != "" && Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62010900").ToString()) != 0) { DataRow dr = dtB.NewRow(); dr["COACode"] = "62010900"; dr["Amount"] = Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62010900").ToString()); dtB.Rows.Add(dr); } if (dtA.Compute("Sum(Amount)", "COACode = 62011900").ToString() != "" && Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62011900").ToString()) != 0) { DataRow dr = dtB.NewRow(); dr["COACode"] = "62011900"; dr["Amount"] = Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62011900").ToString()); dtB.Rows.Add(dr); } if (dtA.Compute("Sum(Amount)", "COACode = 62010500").ToString() != "" && Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62010500").ToString()) != 0) { DataRow dr = dtB.NewRow(); dr["COACode"] = "62010500"; dr["Amount"] = Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62010500").ToString()); dtB.Rows.Add(dr); } if (dtA.Compute("Sum(Amount)", "COACode = 62012000").ToString() != "" && Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62012000").ToString()) != 0) { DataRow dr = dtB.NewRow(); dr["COACode"] = "62012000"; dr["Amount"] = Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62012000").ToString()); dtB.Rows.Add(dr); } ////取得传递预算的参数 //string userid = dt.Rows[0]["PersonID"].ToString(); //string dpt = dt.Rows[0]["Department"].ToString(); //string ostation = dt.Rows[0]["CostCenter"].ToString();//预算站点,与基本信息中的CostCenter一致(Station2) string tstation = ostation;//Etravel表中的Station2,目前与预算站点一致,不允许更改 string year = Convert.ToDateTime(dtA.Compute("Min(Date)", "").ToString()).Year.ToString(); string month = Convert.ToDateTime(dtA.Compute("Min(Date)", "").ToString()).Month.ToString(); //string accountcode = ""; //for (int g = 0; g < dtB.Rows.Count; g++) //{ // if (Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()) != 0) // { // DataRow dr = dtbudget.NewRow(); // dr["Current"] = Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()); // dr["Type"] = dtB.Rows[g]["Type"].ToString(); // accountcode = dtB.Rows[g]["Type"].ToString(); // DataTable dtC = new DataTable(); // dtC = Comm.RtnEB(userid, dpt, ostation, tstation, accountcode, year, month); // for (int i = 0; i < dtC.Rows.Count; i++) // { // if (dtC.Rows[i]["Type"].ToString() == "全年个人") // { // dr["PU"] = Convert.ToDecimal(dtC.Rows[i]["Used"].ToString()); // dr["PB"] = Convert.ToDecimal(dtC.Rows[i]["Budget"].ToString()); // } // else if (dtC.Rows[i]["Type"].ToString() == "全年部门") // { // dr["DU"] = Convert.ToDecimal(dtC.Rows[i]["Used"].ToString()); // dr["DB"] = Convert.ToDecimal(dtC.Rows[i]["Budget"].ToString()); // } // else if (dtC.Rows[i]["Type"].ToString() == "全年站点") // { // dr["SU"] = Convert.ToDecimal(dtC.Rows[i]["Used"].ToString()); // dr["SB"] = Convert.ToDecimal(dtC.Rows[i]["Budget"].ToString()); // } // } // dtbudget.Rows.Add(dr); // } //} ////计算%,取得名称 //for (int i = 0; i < dtbudget.Rows.Count; i++) //{ // if (Convert.ToDecimal(dtbudget.Rows[i]["PB"].ToString()) != 0)//如果Budget不为0,则计算% // { // dtbudget.Rows[i]["PPercent"] = System.Math.Round(Convert.ToDecimal(dtbudget.Rows[i]["PU"].ToString()) / Convert.ToDecimal(dtbudget.Rows[i]["PB"].ToString()), 4) * 100; // } // if (Convert.ToDecimal(dtbudget.Rows[i]["DB"].ToString()) != 0)//如果Budget不为0,则计算% // { // dtbudget.Rows[i]["DPercent"] = System.Math.Round(Convert.ToDecimal(dtbudget.Rows[i]["DU"].ToString()) / Convert.ToDecimal(dtbudget.Rows[i]["DB"].ToString()), 4) * 100; // } // if (Convert.ToDecimal(dtbudget.Rows[i]["SB"].ToString()) != 0)//如果Budget不为0,则计算% // { // dtbudget.Rows[i]["SPercent"] = System.Math.Round(Convert.ToDecimal(dtbudget.Rows[i]["SU"].ToString()) / Convert.ToDecimal(dtbudget.Rows[i]["SB"].ToString()), 4) * 100; // } // if (dtbudget.Rows[i]["Type"].ToString() == "62010900") // { // dtbudget.Rows[i]["EName"] = "Travel expense"; // } // else if (dtbudget.Rows[i]["Type"].ToString() == "62011900") // { // dtbudget.Rows[i]["EName"] = "Entertainment"; // } // else if (dtbudget.Rows[i]["Type"].ToString() == "62010500") // { // dtbudget.Rows[i]["EName"] = "Transportation"; // } // else if (dtbudget.Rows[i]["Type"].ToString() == "62012000") // { // dtbudget.Rows[i]["EName"] = "Communication"; // } //} //bool PB = false, DB = false, SB = false; //for (int i = 0; i < dtbudget.Rows.Count; i++) //{ // if (Convert.ToDecimal(dtbudget.Rows[i]["PB"].ToString()) != 0)//是否显示个人预算列 // { // PB = true; // } // if (Convert.ToDecimal(dtbudget.Rows[i]["DB"].ToString()) != 0)//是否显示部门预算列 // { // DB = true; // } // if (Convert.ToDecimal(dtbudget.Rows[i]["SB"].ToString()) != 0)//是否显示站点预算列 // { // SB = true; // } //} ////添加数据列 //var cm = GridPanelBudget.ColumnModel; //cm.Columns.Add(new Column //{ // DataIndex = "EName", // Header = "Expense Item", // Sortable = false, // Resizable = false, // MenuDisabled = true, // Width = 100 //}); //cm.Columns.Add(new Column //{ // DataIndex = "Current", // Header = "Current", // Renderer = new Renderer { Fn = "GetNumber" }, // Sortable = false, // Resizable = false, // MenuDisabled = true, // Width = 100 //}); ////显示个人预算部分 //if (PB) //{ // cm.Columns.Add(new Column // { // DataIndex = "PU", // Header = "Personal Used", // Renderer = new Renderer { Fn = "GetNumber" }, // Sortable = false, // Resizable = false, // MenuDisabled = true, // Width = 100 // }); // cm.Columns.Add(new Column // { // DataIndex = "PB", // Header = "Personal Budget", // Renderer = new Renderer { Fn = "GetNumber" }, // Sortable = false, // Resizable = false, // MenuDisabled = true, // Width = 100 // }); // cm.Columns.Add(new Column // { // DataIndex = "PPercent", // Header = "%(Used/Budget)", // Renderer = new Renderer { Fn = "GetNumberPercent" }, // Sortable = false, // Resizable = false, // MenuDisabled = true, // Width = 100 // }); //} //if (DB) //{ // cm.Columns.Add(new Column // { // DataIndex = "DU", // Header = "Department Used", // Renderer = new Renderer { Fn = "GetNumber" }, // Sortable = false, // Resizable = false, // MenuDisabled = true, // Width = 100 // }); // cm.Columns.Add(new Column // { // DataIndex = "DB", // Header = "Department Budget", // Renderer = new Renderer { Fn = "GetNumber" }, // Sortable = false, // Resizable = false, // MenuDisabled = true, // Width = 100 // }); // cm.Columns.Add(new Column // { // DataIndex = "DPercent", // Header = "%(Used/Budget)", // Renderer = new Renderer { Fn = "GetNumberPercent" }, // Sortable = false, // Resizable = false, // MenuDisabled = true, // Width = 100 // }); //} //if (SB) //{ // cm.Columns.Add(new Column // { // DataIndex = "SU", // Header = "Unit Used", // Renderer = new Renderer { Fn = "GetNumber" }, // Sortable = false, // Resizable = false, // MenuDisabled = true, // Width = 100 // }); // cm.Columns.Add(new Column // { // DataIndex = "SB", // Header = "Unit Budget", // Renderer = new Renderer { Fn = "GetNumber" }, // Sortable = false, // Resizable = false, // MenuDisabled = true, // Width = 100 // }); // cm.Columns.Add(new Column // { // DataIndex = "SPercent", // Header = "%(Used/Budget)", // Renderer = new Renderer { Fn = "GetNumberPercent" }, // Sortable = false, // Resizable = false, // MenuDisabled = true, // Width = 100 // }); //} //StoreBudget.DataSource = dtbudget; //StoreBudget.DataBind(); } string srr = ""; return; //判断Budget下是否符合预算要求 DataTable dtlocal = new DataTable(); dtlocal.Columns.Add(new DataColumn("Station", typeof(System.String))); dtlocal.Columns.Add(new DataColumn("COACode", typeof(System.String))); dtlocal.Columns.Add(new DataColumn("Year", typeof(System.Int16))); dtlocal.Columns.Add(new DataColumn("Month", typeof(System.Int16))); dtlocal.Columns.Add(new DataColumn("Amount", typeof(System.Decimal))); if (Radio1.Checked) //if (cbxBudget.Value.ToString() == "YES") { StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(detail, null); XmlNode xml = eSubmit.Xml; XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.InnerXml); int dtcol = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes.Count; //doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).ChildNodes[j].InnerText; int dtrow = doc.SelectNodes("records").Item(0).SelectNodes("record").Count; int groupcount = (dtcol - 3) / 2;//多少个站点会被更新,如果站点为空则不更新 //string tstation = "", year = "", month = "", coacode = ""; for (int i = 0; i < groupcount; i++) { if (header0string.Split(',')[i] != "NA")//站点为空则不更新 { //处理数据,准备合并后比较预算 string costcenter = header1string.Split(',')[i] == "NA" ? ostation : header1string.Split(',')[i]; //1. Air Ticket - Int'l if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtlocal.NewRow(); drnew["Station"] = costcenter; drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString(); drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString(); drnew["COACode"] = "62012000"; decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtlocal.Rows.Add(drnew); } //Domestic if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtlocal.NewRow(); drnew["Station"] = costcenter; drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString(); drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString(); drnew["COACode"] = "62012000"; decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtlocal.Rows.Add(drnew); } //2. Hotel Bill if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtlocal.NewRow(); drnew["Station"] = costcenter; drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString(); drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString(); drnew["COACode"] = "62012000"; decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtlocal.Rows.Add(drnew); } //3. Meals if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtlocal.NewRow(); drnew["Station"] = costcenter; drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString(); drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString(); drnew["COACode"] = "62012000"; decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtlocal.Rows.Add(drnew); } //4. Entertainment if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtlocal.NewRow(); drnew["Station"] = costcenter; drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString(); drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString(); drnew["COACode"] = "62010900"; decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtlocal.Rows.Add(drnew); } //5. Car Rental/Transportation if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtlocal.NewRow(); drnew["Station"] = costcenter; drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString(); drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString(); drnew["COACode"] = "62011900"; decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtlocal.Rows.Add(drnew); } //6. Communication if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtlocal.NewRow(); drnew["Station"] = costcenter; drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString(); drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString(); drnew["COACode"] = "62010500"; decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtlocal.Rows.Add(drnew); } //7. Local Trip if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtlocal.NewRow(); drnew["Station"] = costcenter; drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString(); drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString(); drnew["COACode"] = "62012000"; decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtlocal.Rows.Add(drnew); } //8. Overseas Trip USD15/day if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtlocal.NewRow(); drnew["Station"] = costcenter; drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString(); drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString(); drnew["COACode"] = "62012000"; decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtlocal.Rows.Add(drnew); } //9. Airport Tax/Travel Insurance if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtlocal.NewRow(); drnew["Station"] = costcenter; drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString(); drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString(); drnew["COACode"] = "62012000"; decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtlocal.Rows.Add(drnew); } //10. Others if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText) != 0)) { DataRow drnew = dtlocal.NewRow(); drnew["Station"] = costcenter; drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString(); drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString(); drnew["COACode"] = "62012000"; decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText); decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText); drnew["Amount"] = r1 + r2; dtlocal.Rows.Add(drnew); } } } } decimal sum1 = 0M; DataTable dt3 = new DataTable(); dt3.Columns.Add(new DataColumn("Station",typeof(System.String))); dt3.Columns.Add(new DataColumn("Year", typeof(System.Int16))); dt3.Columns.Add(new DataColumn("COACode", typeof(System.String))); dt3.Columns.Add(new DataColumn("Amount", typeof(System.Decimal))); DataTable drnw = new DataTable(); dtlocal.DefaultView.Sort = "Station ASC,Year ASC,COACode ASC"; drnw = dtlocal.DefaultView.ToTable(); for (int i = 0; i < drnw.Rows.Count; i++) { sum1 += Convert.ToDecimal(drnw.Rows[i]["Amount"].ToString()); if (i == drnw.Rows.Count - 1)//第一行,也是最后一行 { DataRow dr3 = dt3.NewRow(); dr3["Station"] = drnw.Rows[i]["Station"].ToString(); dr3["Year"] = Convert.ToInt16(drnw.Rows[i]["Year"].ToString()); dr3["COACode"] = drnw.Rows[i]["COACode"].ToString(); dr3["Amount"] = sum1; dt3.Rows.Add(dr3); } else { if ((drnw.Rows[i]["Station"].ToString() != drnw.Rows[i + 1]["Station"].ToString()) || (drnw.Rows[i]["Year"].ToString() != drnw.Rows[i + 1]["Year"].ToString()) || (drnw.Rows[i]["COACode"].ToString() != drnw.Rows[i + 1]["COACode"].ToString())) { //与下一行内容不同,新增一行合计后重置sum1 DataRow dr3 = dt3.NewRow(); dr3["Station"] = drnw.Rows[i]["Station"].ToString(); dr3["Year"] = Convert.ToInt16(drnw.Rows[i]["Year"].ToString()); dr3["COACode"] = drnw.Rows[i]["COACode"].ToString(); dr3["Amount"] = sum1; dt3.Rows.Add(dr3); sum1 = 0M; } } } string warningmsg = ""; for (int i = 0; i < dt3.Rows.Count; i++) { decimal budgetstation = 0M, budgetusedstation = 0M; DataTable dt4 = new DataTable(); dt4 = Comm.RtnEB(userid, department, ostation, dt3.Rows[i]["Station"].ToString(), dt3.Rows[i]["COACode"].ToString(), dt3.Rows[i]["Year"].ToString(), "1"); for (int j = 0; j < dt4.Rows.Count; j++) { if (dt4.Rows[j]["Type"].ToString() == "全年站点") { budgetstation = Convert.ToDecimal(dt4.Rows[j]["Budget"].ToString()); budgetusedstation = Convert.ToDecimal(dt4.Rows[j]["Used"].ToString()); if (ostation!=dt3.Rows[i]["Station"].ToString()) { budgetstation = Convert.ToDecimal(System.Math.Round(Convert.ToDouble(dt4.Rows[j]["Budget"].ToString()) * (DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(dt3.Rows[i]["Station"].ToString()) / DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(ostation)), 2)); budgetusedstation = Convert.ToDecimal(System.Math.Round(Convert.ToDouble(dt4.Rows[j]["Used"].ToString()) * (DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(dt3.Rows[i]["Station"].ToString()) / DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(ostation)), 2)); } break; } } if (dt3.Rows[i]["COACode"].ToString() == "62012000") { if (Convert.ToDecimal(dt3.Rows[i]["Amount"].ToString()) + budgetusedstation - budgetstation > Convert.ToDecimal(6.01)*500) { X.AddScript("Ext.Msg.show({ title: 'Message', msg: '差旅费部分超出 " + dt3.Rows[i]["Station"].ToString() + " 全年预算总额500美元以上,仅可按<a style=\"color:Red\">Un-Budget</a>流程申请,是否接受?', buttons: { ok: 'Ok',cancel:'No' }, fn: function (btn) { if(btn=='ok'){Radio2.setValue(true);}else{return false;} } });"); //X.AddScript("Ext.Msg.show({ title: 'Message', msg: '差旅费部分超出 " + dt3.Rows[i]["Station"].ToString() + " 全年预算总额500美元以上,仅可按<a style=\"color:Red\">Un-Budget</a>流程申请.', buttons: { ok: 'Ok' }, fn: function (btn) { return false; } });"); return; } } else { if (Convert.ToDecimal(dt3.Rows[i]["Amount"].ToString()) + budgetusedstation - budgetstation > Convert.ToDecimal(6.01) * 500) { string rw = ""; switch (dt3.Rows[i]["COACode"].ToString()) { case "62010900": rw = "交际费"; break; case "62011900": rw = "交通费"; break; case "62010500": rw = "通讯费"; break; default: break; } warningmsg += rw + "部分超出 " + dt3.Rows[i]["Station"].ToString() + " 全年预算总额500美元以上."; } } } if (warningmsg.Length>0) { //X.AddScript("Ext.Msg.show({ title: 'Message', msg: '" + warningmsg + "', buttons: { ok: 'Ok' }, fn: function (btn) { RM.SaveAll1('" + type + "','" + detail + "','" + MailList + "','" + header0string + "','" + header1string + "','" + header2string + "','" + Cur + "','" + dept + "',{eventMask:{showMask:true,target:'Page'}}); } });"); X.AddScript("Ext.Msg.show({ title: 'Message', msg: '" + warningmsg + "', buttons: { ok: 'Ok' }, fn: function (btn) { SaveAll1('" + type + "','" + warningmsg + "')} });"); } else { if (para == "ND")//保存并申请 { if (hdTravelRequestID.Value.ToString() == "")//直接新增申请,不通过草稿 { string word = "[No],[Person],[Station],[Department],[ReportFile],[Tamount],[Pamout],[Camount],[CreadedBy],[CreadedDate],[Attach],[Remark],[Bdate],[Edate],[PersonID],[CreadedByID],[ApplyDate],[CCMailList],[Budget],[Station2]"; string value = ""; value += "'" + station + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString().PadLeft(2, '0') + "',";//edit value += "'" + hdOwner.Value.ToString() + "',"; value += "'" + station + "',"; value += "'" + department + "',";//edit value += "'" + hdReport.Value.ToString() + "',"; value += hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString(); value += "," + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); value += "," + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); value += ",'" + Request.Cookies.Get("eReimUserName").Value + "'";//edit value += ",'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; value += "'" + hdScanFile.Value.ToString() + "',"; value += "'" + txtRemark.Text.Replace("'", "''") + "',"; value += "null,null"; value += ",'" + hdOwnerID.Value.ToString() + "'"; value += ",'" + Request.Cookies.Get("eReimUserID").Value + "'"; value += ",'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "'"; value += ",'" + CCMailList + "'"; value += "," + (Radio1.Checked ? "1" : "0"); //value += "," + (cbxBudget.Value.ToString() == "YES" ? "1" : "0"); value += ",'" + ostation + "'"; string updatesql = "insert into ETravel (" + word + ") values(" + value + ");update ETravel set [No]=[No]+(select [MonthCount]=right('0000'+cast(count(ID) as varchar(10)),4) from ETravel where (month(ApplyDate) in (select month(ApplyDate) from ETravel where [ID]=@@IDENTITY) and (year(ApplyDate) in (select year(ApplyDate) from ETravel where [ID]=@@IDENTITY)) and Station=(select Station from ETravel where ID=@@IDENTITY)))+'T' where ID=@@IDENTITY;select [msg]=convert(varchar,ID)+','+[No] from ETravel where ID=@@IDENTITY"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert"); string rows = ""; for (int i = 0; i < dtGroupFlowData.Rows.Count; i++) { string wordflow = "[No],[Type],[Station],[Department],[Person],[CreadedBy],[CreatedDate],[Tamount],[Step],[Status],[Approver],[ApproverID],[RequestID],[FlowFn]"; if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { wordflow += ",[Active]"; } string valueflow = ""; valueflow += "'" + newid.Split(',')[1] + "',"; valueflow += "'T',"; valueflow += "'" + station + "',"; valueflow += "'" + department + "',"; valueflow += "'" + hdOwner.Value.ToString() + "',"; valueflow += "'" + Request.Cookies.Get("eReimUserName").Value + "',"; valueflow += "'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; valueflow += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ","; valueflow += dtGroupFlowData.Rows[i]["FlowNo"].ToString() + ","; valueflow += "1,"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUser"].ToString() + "',"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUserid"].ToString() + "',"; valueflow += "'" + newid.Split(',')[0] + "'"; valueflow += ",'" + (dtGroupFlowData.Rows[i]["Fn"].ToString() == "" ? "Approver" : dtGroupFlowData.Rows[i]["Fn"].ToString()) + "'"; if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { valueflow += ",1"; } string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); } if (newid == "-1" || rows == "-1" || rows == "") { ErrorHandle("Data Error."); return; } else { hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID hdTravelRequestNo.Value = newid.Split(',')[1];//新增后记录No if (!SaveDetail(detail, header0string, header1string, header2string, Cur, dept) || !SendMail(warningmsg)) { ErrorHandle("Data Error."); return; } if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { Panel3.Title = "差旅费申请单: " + newid.Split(',')[1]; UpdateMSG("保存申请单:" + newid.Split(',')[1] + "成功."); } else { Panel3.Title = "Travel Expense Form: " + newid.Split(',')[1]; UpdateMSG("Saved Travel Expense Form: " + newid.Split(',')[1] + " successfully."); } } // } else//由草稿升级为正式申请 { string updatesql = "update ETravel set [Person]='" + hdOwner.Value.ToString(); updatesql += "',[Station]='" + station; updatesql += "',[Department]='" + department; updatesql += "',[ReportFile]='" + hdReport.Value.ToString(); updatesql += "',[Tamount]=" + (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString()); updatesql += ",[Pamout]=" + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); updatesql += ",[Camount]=" + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); updatesql += ",[Remark]='" + txtRemark.Text.Replace("'", "''") + "'"; updatesql += ",[Attach]='" + hdScanFile.Value.ToString() + "'"; updatesql += ",[Type]=0"; updatesql += ",[PersonID]='" + hdOwnerID.Value.ToString() + "'"; string oldno = hdTravelRequestNo.Value.ToString(); string newno = hdTravelRequestNo.Value.ToString().Substring(0, hdTravelRequestNo.Value.ToString().Length - 1); updatesql += ",[No]='" + newno + "',"; updatesql += "[CreadedDate]='" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; updatesql += "[CreadedBy]='" + Request.Cookies.Get("eReimUserName").Value + "',"; updatesql += "[CreadedByID]='" + Request.Cookies.Get("eReimUserID").Value + "'"; updatesql += ",[CCMailList]='" + CCMailList + "'"; updatesql += ",[Budget]=" + (Radio1.Checked ? "1" : "0"); //updatesql += ",[Budget]=" + (cbxBudget.Value.ToString() == "YES" ? "1" : "0"); updatesql += ",[Station2]='" + ostation + "'"; updatesql += " where ID=" + hdTravelRequestID.Value.ToString(); string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); //操作Flow表 string sqlDeleteEflow = "delete from Eflow where [Type]='T' and [RequestID]='" + hdTravelRequestID.Value.ToString() + "'"; string deleterows = dbc.UpdateData("eReimbursement", sqlDeleteEflow, "Update"); string rows = ""; for (int i = 0; i < dtGroupFlowData.Rows.Count; i++) { string wordflow = "[No],[Type],[Station],[Department],[Person],[CreadedBy],[CreatedDate],[Tamount],[Step],[Status],[Approver],[ApproverID],[RequestID],[FlowFn]"; if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { wordflow += ",[Active]"; } string valueflow = ""; valueflow += "'" + newno + "',"; valueflow += "'T',"; valueflow += "'" + station + "',"; valueflow += "'" + department + "',"; valueflow += "'" + hdOwner.Value.ToString() + "',"; valueflow += "'" + Request.Cookies.Get("eReimUserName").Value + "',"; valueflow += "'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; valueflow += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ","; valueflow += dtGroupFlowData.Rows[i]["FlowNo"].ToString() + ","; valueflow += "1,"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUser"].ToString() + "',"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUserid"].ToString() + "',"; valueflow += hdTravelRequestID.Value.ToString(); valueflow += ",'" + (dtGroupFlowData.Rows[i]["Fn"].ToString() == "" ? "Approver" : dtGroupFlowData.Rows[i]["Fn"].ToString()) + "'"; if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { valueflow += ",1"; } string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); } // if (newid == "-1" || rows == "-1" || rows == "") { ErrorHandle("Data Error."); return; } else { hdTravelRequestNo.Value = newno; if (!SaveDetail(detail, header0string, header1string, header2string, Cur, dept) || !SendMail(warningmsg)) { ErrorHandle("Data Error."); return; } if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { Panel3.Title = "差旅费申请单:" + newno; UpdateMSG("保存差旅费申请单:" + hdTravelRequestNo.Value.ToString() + "成功."); } else { Panel3.Title = "Travel Expense Form: " + newno; UpdateMSG("Saved Travel Expense Form: " + hdTravelRequestNo.Value.ToString() + " successfully."); } } } X.AddScript("btnAddDSTN.disable();btnGeteLeave.disable();btnSaveDraft.disable();btnSaveAndSend.disable();Radio1.disable();Radio2.disable();btnExport.enable();btnCC.disable();"); //X.AddScript("btnAddDSTN.disable();btnGeteLeave.disable();btnSaveDraft.disable();btnSaveAndSend.disable();cbxBudget.setReadOnly(true);btnExport.enable();btnCC.disable();"); } else//保存草稿 { if (hdTravelRequestID.Value.ToString() != "")//由链接进入的草稿更新 { string updatesql = "update ETravel set [Person]='" + hdOwner.Value.ToString(); updatesql += "',[Station]='" + station; updatesql += "',[Department]='" + department; updatesql += "',[ReportFile]='" + hdReport.Value.ToString(); updatesql += "',[Tamount]=" + (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString()); updatesql += ",[Pamout]=" + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); updatesql += ",[Camount]=" + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); updatesql += ",[Remark]='" + txtRemark.Text.Replace("'", "''") + "'"; updatesql += ",[Attach]='" + hdScanFile.Value.ToString() + "'"; updatesql += ",[PersonID]='" + hdOwnerID.Value.ToString() + "'"; updatesql += ",[CCMailList]='" + CCMailList + "'"; updatesql += ",[Budget]=" + (Radio1.Checked ? "1" : "0"); //updatesql += ",[Budget]=" + (cbxBudget.Value.ToString() == "YES" ? "1" : "0"); updatesql += ",[Station2]='" + ostation + "'"; updatesql += " where ID=" + hdTravelRequestID.Value.ToString(); string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); if (newid == "-1") { ErrorHandle("Data Error."); return; } else { if (!SaveDetail(detail, header0string, header1string, header2string, Cur, dept)) { ErrorHandle("Data Error."); return; } //hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID //Panel3.Title = "差旅费申请单:" + newid.Split(',')[1]; //X.AddScript("GridPanel2.submitData();"); if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { UpdateMSG("保存差旅费申请单草稿: " + hdTravelRequestNo.Value.ToString() + "成功."); } else { UpdateMSG("Saved Travel Expense Draft: " + hdTravelRequestNo.Value.ToString() + " successfully."); } } } else//如果ID为空则判断为新增草稿 { string word = "[No],[Person],[Station],[Department],[ReportFile],[Tamount],[Pamout],[Camount],[Attach],[Remark],[Bdate],[Edate],[Type],[PersonID],[ApplyDate],[CCMailList],[Station2],[Budget]"; string value = ""; value += "'" + station + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString().PadLeft(2, '0') + "',";//edit value += "'" + hdOwner.Value.ToString() + "',"; value += "'" + station + "',"; value += "'" + department + "',";//edit value += "'" + hdReport.Value.ToString() + "',"; value += (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString()); value += "," + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); value += "," + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); value += ",'" + hdScanFile.Value.ToString() + "',"; value += "'" + txtRemark.Text.Replace("'", "''") + "',"; value += "null,null,"; value += "1";//标识为草稿 value += ",'" + hdOwnerID.Value.ToString() + "'"; value += ",'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "'"; value += ",'" + CCMailList + "'"; value += ",'" + ostation + "'"; value += "," + (Radio1.Checked ? "1" : "0"); //value += "," + (cbxBudget.Value.ToString() == "YES" ? "1" : "0"); string updatesql = "insert into ETravel (" + word + ") values(" + value + ");update ETravel set [No]=[No]+(select [MonthCount]=right('0000'+cast(count(ID) as varchar(10)),4) from ETravel where (month(ApplyDate) in (select month(ApplyDate) from ETravel where [ID]=@@IDENTITY) and (year(ApplyDate) in (select year(ApplyDate) from ETravel where [ID]=@@IDENTITY)) and Station=(select Station from ETravel where ID=@@IDENTITY)))+'TD' where ID=@@IDENTITY;select [msg]=convert(varchar,ID)+','+[No] from ETravel where ID=@@IDENTITY"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert"); //操作Flow表 string wordflow = "[No],[Type],[Station],[Department],[Person],[CreadedBy],[CreatedDate],[Tamount],[RequestID],[Active]"; string valueflow = ""; valueflow += "'" + newid.Split(',')[1] + "',"; valueflow += "'T',"; valueflow += "'" + station + "',"; valueflow += "'" + department + "',"; valueflow += "'" + hdOwner.Value.ToString() + "',"; valueflow += "'" + Request.Cookies.Get("eReimUserName").Value + "',"; valueflow += "'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; valueflow += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ","; valueflow += "'" + newid.Split(',')[0] + "'"; valueflow += ",1"; string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; string rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); // if (newid == "-1" || rows == "-1") { ErrorHandle("Data Error."); return; } else { hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID hdTravelRequestNo.Value = newid.Split(',')[1];//新增后记录No if (!SaveDetail(detail, header0string, header1string, header2string, Cur, dept)) { ErrorHandle("Data Error."); return; } if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { Panel3.Title = "差旅费申请单草稿: " + newid.Split(',')[1]; UpdateMSG("新增差旅费申请单草稿: " + newid.Split(',')[1] + "成功."); } else { Panel3.Title = "Travel Expense Draft: " + newid.Split(',')[1]; UpdateMSG("Added Travel Expense Draft: " + newid.Split(',')[1] + " successfully."); } } } } } }
public void SaveAll1(string type, string detail, string MailList, string header0string, string header1string, string header2string, string Cur, string dept,string warningmsg) { DateTime dtnull = new DateTime(1, 1, 1, 0, 0, 0); cs.DBCommand dbc = new cs.DBCommand(); //检查是否已经为该申请人设置过审批人 string sqlCheckFlow = ""; if (Radio1.Checked) //if (cbxBudget.Value.ToString() == "YES")//使用Budget审批流程 { sqlCheckFlow = "select * from GroupFlow where [Type]!=2 and GID=(select GID from GroupUsers where UserID='" + hdOwnerID.Value.ToString() + "')"; } else//使用unBudget审批流程 { sqlCheckFlow = "select * from GroupFlow where [Type]=2 and GID=(select GID from GroupUsers where UserID='" + hdOwnerID.Value.ToString() + "')"; } DataTable dtGroupFlowData = dbc.GetData("eReimbursement", sqlCheckFlow); if (dtGroupFlowData.Rows.Count < 1) { if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { ErrorHandle("请先设置审批人."); } else { ErrorHandle("Not set Approve flow,please contact with Local MIS."); } return; } //处理抄送人列表 string CCMailList = ""; JavaScriptSerializer ser = new JavaScriptSerializer(); List<CCMailList> CCMailList1 = ser.Deserialize<List<CCMailList>>(MailList); foreach (CCMailList mail in CCMailList1) { CCMailList += mail.Email + ","; } CCMailList = CCMailList.Length > 0 ? CCMailList.Substring(0, CCMailList.Length - 1) : ""; string userid = hdOwnerID.Value.ToString(); string ostation = ""; string station = ""; string department = ""; DataSet ds2 = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(userid); if (ds2.Tables[0].Rows.Count == 1) { DataTable dt1 = ds2.Tables[0]; //dpt = dt1.Rows[0]["DepartmentName"].ToString(); ostation = dt1.Rows[0]["stationCode"].ToString(); station = dt1.Rows[0]["stationCode"].ToString(); department = dt1.Rows[0]["CRPDepartmentName"].ToString(); DataTable dttemp = new DataTable(); string sqltemp = "select * from ESUSER where Userid='" + userid + "'"; dttemp = dbc.GetData("eReimbursement", sqltemp); if (dttemp.Rows.Count > 0) { ostation = dttemp.Rows[0]["Station"].ToString(); } } string para = type; if (para == "ND")//保存并申请 { if (hdTravelRequestID.Value.ToString() == "")//直接新增申请,不通过草稿 { string word = "[No],[Person],[Station],[Department],[ReportFile],[Tamount],[Pamout],[Camount],[CreadedBy],[CreadedDate],[Attach],[Remark],[Bdate],[Edate],[PersonID],[CreadedByID],[ApplyDate],[CCMailList],[Budget],[Station2]"; string value = ""; value += "'" + station + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString().PadLeft(2, '0') + "',";//edit value += "'" + hdOwner.Value.ToString() + "',"; value += "'" + station + "',"; value += "'" + department + "',";//edit value += "'" + hdReport.Value.ToString() + "',"; value += hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString(); value += "," + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); value += "," + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); value += ",'" + Request.Cookies.Get("eReimUserName").Value + "'";//edit value += ",'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; value += "'" + hdScanFile.Value.ToString() + "',"; value += "'" + txtRemark.Text.Replace("'", "''") + "',"; value += "null,null"; value += ",'" + hdOwnerID.Value.ToString() + "'"; value += ",'" + Request.Cookies.Get("eReimUserID").Value + "'"; value += ",'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "'"; value += ",'" + CCMailList + "'"; value += "," + (Radio1.Checked ? "1" : "0"); //value += "," + (cbxBudget.Value.ToString() == "YES" ? "1" : "0"); value += ",'" + ostation + "'"; string updatesql = "insert into ETravel (" + word + ") values(" + value + ");update ETravel set [No]=[No]+(select [MonthCount]=right('0000'+cast(count(ID) as varchar(10)),4) from ETravel where (month(ApplyDate) in (select month(ApplyDate) from ETravel where [ID]=@@IDENTITY) and (year(ApplyDate) in (select year(ApplyDate) from ETravel where [ID]=@@IDENTITY)) and Station=(select Station from ETravel where ID=@@IDENTITY)))+'T' where ID=@@IDENTITY;select [msg]=convert(varchar,ID)+','+[No] from ETravel where ID=@@IDENTITY"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert"); string rows = ""; for (int i = 0; i < dtGroupFlowData.Rows.Count; i++) { string wordflow = "[No],[Type],[Station],[Department],[Person],[CreadedBy],[CreatedDate],[Tamount],[Step],[Status],[Approver],[ApproverID],[RequestID],[FlowFn]"; if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { wordflow += ",[Active]"; } string valueflow = ""; valueflow += "'" + newid.Split(',')[1] + "',"; valueflow += "'T',"; valueflow += "'" + station + "',"; valueflow += "'" + department + "',"; valueflow += "'" + hdOwner.Value.ToString() + "',"; valueflow += "'" + Request.Cookies.Get("eReimUserName").Value + "',"; valueflow += "'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; valueflow += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ","; valueflow += dtGroupFlowData.Rows[i]["FlowNo"].ToString() + ","; valueflow += "1,"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUser"].ToString() + "',"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUserid"].ToString() + "',"; valueflow += "'" + newid.Split(',')[0] + "'"; valueflow += ",'" + (dtGroupFlowData.Rows[i]["Fn"].ToString() == "" ? "Approver" : dtGroupFlowData.Rows[i]["Fn"].ToString()) + "'"; if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { valueflow += ",1"; } string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); } if (newid == "-1" || rows == "-1" || rows == "") { ErrorHandle("Data Error."); return; } else { hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID hdTravelRequestNo.Value = newid.Split(',')[1];//新增后记录No if (!SaveDetail(detail, header0string, header1string, header2string, Cur, dept) || !SendMail(warningmsg)) { ErrorHandle("Data Error."); return; } if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { Panel3.Title = "差旅费申请单: " + newid.Split(',')[1]; UpdateMSG("保存申请单:" + newid.Split(',')[1] + "成功."); } else { Panel3.Title = "Travel Expense Form: " + newid.Split(',')[1]; UpdateMSG("Saved Travel Expense Form: " + newid.Split(',')[1] + " successfully."); } } // } else//由草稿升级为正式申请 { string updatesql = "update ETravel set [Person]='" + hdOwner.Value.ToString(); updatesql += "',[Station]='" + station; updatesql += "',[Department]='" + department; updatesql += "',[ReportFile]='" + hdReport.Value.ToString(); updatesql += "',[Tamount]=" + (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString()); updatesql += ",[Pamout]=" + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); updatesql += ",[Camount]=" + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); updatesql += ",[Remark]='" + txtRemark.Text.Replace("'", "''") + "'"; updatesql += ",[Attach]='" + hdScanFile.Value.ToString() + "'"; updatesql += ",[Type]=0"; updatesql += ",[PersonID]='" + hdOwnerID.Value.ToString() + "'"; string oldno = hdTravelRequestNo.Value.ToString(); string newno = hdTravelRequestNo.Value.ToString().Substring(0, hdTravelRequestNo.Value.ToString().Length - 1); updatesql += ",[No]='" + newno + "',"; updatesql += "[CreadedDate]='" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; updatesql += "[CreadedBy]='" + Request.Cookies.Get("eReimUserName").Value + "',"; updatesql += "[CreadedByID]='" + Request.Cookies.Get("eReimUserID").Value + "'"; updatesql += ",[CCMailList]='" + CCMailList + "'"; updatesql += ",[Budget]=" + (Radio1.Checked ? "1" : "0"); //updatesql += ",[Budget]=" + (cbxBudget.Value.ToString() == "YES" ? "1" : "0"); updatesql += ",[Station2]='" + ostation + "'"; updatesql += " where ID=" + hdTravelRequestID.Value.ToString(); string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); //操作Flow表 string sqlDeleteEflow = "delete from Eflow where [Type]='T' and [RequestID]='" + hdTravelRequestID.Value.ToString() + "'"; string deleterows = dbc.UpdateData("eReimbursement", sqlDeleteEflow, "Update"); string rows = ""; for (int i = 0; i < dtGroupFlowData.Rows.Count; i++) { string wordflow = "[No],[Type],[Station],[Department],[Person],[CreadedBy],[CreatedDate],[Tamount],[Step],[Status],[Approver],[ApproverID],[RequestID],[FlowFn]"; if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { wordflow += ",[Active]"; } string valueflow = ""; valueflow += "'" + newno + "',"; valueflow += "'T',"; valueflow += "'" + station + "',"; valueflow += "'" + department + "',"; valueflow += "'" + hdOwner.Value.ToString() + "',"; valueflow += "'" + Request.Cookies.Get("eReimUserName").Value + "',"; valueflow += "'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; valueflow += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ","; valueflow += dtGroupFlowData.Rows[i]["FlowNo"].ToString() + ","; valueflow += "1,"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUser"].ToString() + "',"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUserid"].ToString() + "',"; valueflow += hdTravelRequestID.Value.ToString(); valueflow += ",'" + (dtGroupFlowData.Rows[i]["Fn"].ToString() == "" ? "Approver" : dtGroupFlowData.Rows[i]["Fn"].ToString()) + "'"; if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { valueflow += ",1"; } string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); } // if (newid == "-1" || rows == "-1" || rows == "") { ErrorHandle("Data Error."); return; } else { hdTravelRequestNo.Value = newno; if (!SaveDetail(detail, header0string, header1string, header2string, Cur, dept) || !SendMail(warningmsg)) { ErrorHandle("Data Error."); return; } if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { Panel3.Title = "差旅费申请单:" + newno; UpdateMSG("保存差旅费申请单:" + hdTravelRequestNo.Value.ToString() + "成功."); } else { Panel3.Title = "Travel Expense Form: " + newno; UpdateMSG("Saved Travel Expense Form: " + hdTravelRequestNo.Value.ToString() + " successfully."); } } } X.AddScript("btnAddDSTN.disable();btnGeteLeave.disable();btnSaveDraft.disable();btnSaveAndSend.disable();Radio1.disable();Radio2.disable();btnExport.enable();btnCC.disable();"); //X.AddScript("btnAddDSTN.disable();btnGeteLeave.disable();btnSaveDraft.disable();btnSaveAndSend.disable();cbxBudget.setReadOnly(true);btnExport.enable();btnCC.disable();"); } else//保存草稿 { if (hdTravelRequestID.Value.ToString() != "")//由链接进入的草稿更新 { string updatesql = "update ETravel set [Person]='" + hdOwner.Value.ToString(); updatesql += "',[Station]='" + station; updatesql += "',[Department]='" + department; updatesql += "',[ReportFile]='" + hdReport.Value.ToString(); updatesql += "',[Tamount]=" + (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString()); updatesql += ",[Pamout]=" + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); updatesql += ",[Camount]=" + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); updatesql += ",[Remark]='" + txtRemark.Text.Replace("'", "''") + "'"; updatesql += ",[Attach]='" + hdScanFile.Value.ToString() + "'"; updatesql += ",[PersonID]='" + hdOwnerID.Value.ToString() + "'"; updatesql += ",[CCMailList]='" + CCMailList + "'"; updatesql += ",[Budget]=" + (Radio1.Checked ? "1" : "0"); //updatesql += ",[Budget]=" + (cbxBudget.Value.ToString() == "YES" ? "1" : "0"); updatesql += ",[Station2]='" + ostation + "'"; updatesql += " where ID=" + hdTravelRequestID.Value.ToString(); string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); if (newid == "-1") { ErrorHandle("Data Error."); return; } else { if (!SaveDetail(detail, header0string, header1string, header2string, Cur, dept)) { ErrorHandle("Data Error."); return; } //hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID //Panel3.Title = "差旅费申请单:" + newid.Split(',')[1]; //X.AddScript("GridPanel2.submitData();"); if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { UpdateMSG("保存差旅费申请单草稿: " + hdTravelRequestNo.Value.ToString() + "成功."); } else { UpdateMSG("Saved Travel Expense Draft: " + hdTravelRequestNo.Value.ToString() + " successfully."); } } } else//如果ID为空则判断为新增草稿 { string word = "[No],[Person],[Station],[Department],[ReportFile],[Tamount],[Pamout],[Camount],[Attach],[Remark],[Bdate],[Edate],[Type],[PersonID],[ApplyDate],[CCMailList],[Station2],[Budget]"; string value = ""; value += "'" + station + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString().PadLeft(2, '0') + "',";//edit value += "'" + hdOwner.Value.ToString() + "',"; value += "'" + station + "',"; value += "'" + department + "',";//edit value += "'" + hdReport.Value.ToString() + "',"; value += (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString()); value += "," + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); value += "," + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); value += ",'" + hdScanFile.Value.ToString() + "',"; value += "'" + txtRemark.Text.Replace("'", "''") + "',"; value += "null,null,"; value += "1";//标识为草稿 value += ",'" + hdOwnerID.Value.ToString() + "'"; value += ",'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "'"; value += ",'" + CCMailList + "'"; value += ",'" + ostation + "'"; value += "," + (Radio1.Checked ? "1" : "0"); //value += "," + (cbxBudget.Value.ToString() == "YES" ? "1" : "0"); string updatesql = "insert into ETravel (" + word + ") values(" + value + ");update ETravel set [No]=[No]+(select [MonthCount]=right('0000'+cast(count(ID) as varchar(10)),4) from ETravel where (month(ApplyDate) in (select month(ApplyDate) from ETravel where [ID]=@@IDENTITY) and (year(ApplyDate) in (select year(ApplyDate) from ETravel where [ID]=@@IDENTITY)) and Station=(select Station from ETravel where ID=@@IDENTITY)))+'TD' where ID=@@IDENTITY;select [msg]=convert(varchar,ID)+','+[No] from ETravel where ID=@@IDENTITY"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert"); //操作Flow表 string wordflow = "[No],[Type],[Station],[Department],[Person],[CreadedBy],[CreatedDate],[Tamount],[RequestID],[Active]"; string valueflow = ""; valueflow += "'" + newid.Split(',')[1] + "',"; valueflow += "'T',"; valueflow += "'" + station + "',"; valueflow += "'" + department + "',"; valueflow += "'" + hdOwner.Value.ToString() + "',"; valueflow += "'" + Request.Cookies.Get("eReimUserName").Value + "',"; valueflow += "'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; valueflow += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ","; valueflow += "'" + newid.Split(',')[0] + "'"; valueflow += ",1"; string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; string rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); // if (newid == "-1" || rows == "-1") { ErrorHandle("Data Error."); return; } else { hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID hdTravelRequestNo.Value = newid.Split(',')[1];//新增后记录No if (!SaveDetail(detail, header0string, header1string, header2string, Cur, dept)) { ErrorHandle("Data Error."); return; } if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { Panel3.Title = "差旅费申请单草稿: " + newid.Split(',')[1]; UpdateMSG("新增差旅费申请单草稿: " + newid.Split(',')[1] + "成功."); } else { Panel3.Title = "Travel Expense Draft: " + newid.Split(',')[1]; UpdateMSG("Added Travel Expense Draft: " + newid.Split(',')[1] + " successfully."); } } } } }
protected void AddApp(object sender, DirectEventArgs e) { cs.DBCommand dbc = new cs.DBCommand(); string ID = Request.QueryString["RequestID"].ToString(); string userid1 = e.ExtraParams[0].Value; string username1 = e.ExtraParams[1].Value; string updatesql = "update Eflow set Active=-1,Status=2,Remark='" + txtRemark.Text.Replace("'", "''") + "',ApproveDate='" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "' where id=" + Request.QueryString["ID"].ToString(); updatesql += ";insert into Eflow ([Type],[Step],[Approver],[ApproverID],[ApproveDate],[RequestID],[Active],[Status]) values "; updatesql += "('G'," + Request.QueryString["Step"].ToString() + ",'" + username1 + "','" + userid1 + "','" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "','" + Request.QueryString["RequestID"].ToString() + "',1,1);select id from Eflow where id=@@IDENTITY"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert"); if (newid == "-1") { ErrorHandle(); return; } else { string sqlf = "select * from Ecommon where ID=" + ID; DataTable dtf = dbc.GetData("eReimbursement", sqlf); //140226 显示预算 DataTable dtbudget = new DataTable(); dtbudget.Columns.Add("RequestID", typeof(System.Int32)); dtbudget.Columns.Add("Year", typeof(System.String)); dtbudget.Columns.Add("Status", typeof(System.Int16)); dtbudget.Columns.Add("EName", typeof(System.String)); dtbudget.Columns.Add("COACode", typeof(System.String)); dtbudget.Columns.Add("LocalCur", typeof(System.String)); dtbudget.Columns.Add("CenterCur", typeof(System.String)); dtbudget.Columns.Add("Rate", typeof(System.Decimal)); dtbudget.Columns.Add("Current", typeof(System.Decimal)); dtbudget.Columns.Add("PU", typeof(System.Decimal)); dtbudget.Columns.Add("PB", typeof(System.Decimal)); dtbudget.Columns.Add("PPercent", typeof(System.Decimal)); dtbudget.Columns.Add("DU", typeof(System.Decimal)); dtbudget.Columns.Add("DB", typeof(System.Decimal)); dtbudget.Columns.Add("DPercent", typeof(System.Decimal)); dtbudget.Columns.Add("SU", typeof(System.Decimal)); dtbudget.Columns.Add("SB", typeof(System.Decimal)); dtbudget.Columns.Add("SPercent", typeof(System.Decimal)); string sqld = "select * from EeommonDetail where [No]='" + ID + "' order by id"; DataTable dtall = new DataTable(); dtall = dbc.GetData("eReimbursement", sqld); //取得预算日期 string sqlA = "select AccountCode as COACode,case when t1.Type='O' then t2.SAccountName else TDicSubType.EText end as [EName],year(Tdate) as [Year],Amount from EeommonDetail t1 left join (select * from Edic where KeyValue='SubType') TDicSubType on TDicSubType.CValue=t1.Type left join AccoundCode t2 on t2.SAccountCode=t1.AccountCode where t1.No='" + ID + "'"; DataTable dtA = dbc.GetData("eReimbursement", sqlA); //取得本币与成本中心汇率转换 decimal rate = 1; string CurLocal = dtall.Rows[0]["Cur"].ToString(); string CurBudget = DIMERCO.SDK.Utilities.LSDK.GetStationCurrencyByCode(dtall.Rows[0]["TSation"].ToString()); //合计数据 DataTable dtB = new DataTable(); dtB.Columns.Add("EName", typeof(System.String)); dtB.Columns.Add("COACode", typeof(System.String)); dtB.Columns.Add("Amount", typeof(System.Decimal)); dtB.Columns.Add("Year", typeof(System.String)); for (int g = 0; g < dtA.Rows.Count; g++) { bool er = false; for (int j = 0; j < dtB.Rows.Count; j++) { if (dtB.Rows[j]["COACode"].ToString() == dtA.Rows[g]["COACode"].ToString() && dtB.Rows[j]["Year"].ToString() == dtA.Rows[g]["Year"].ToString())//已有记录 { er = true; break; } } if (!er)//不存在重复记录 { DataRow dr = dtB.NewRow(); dr["EName"] = dtA.Rows[g]["EName"].ToString(); dr["COACode"] = dtA.Rows[g]["COACode"].ToString(); dr["Amount"] = dtA.Compute("Sum(Amount)", "Year = " + dtA.Rows[g]["Year"].ToString() + " and COACode = " + dtA.Rows[g]["COACode"].ToString()); dr["Year"] = dtA.Rows[g]["Year"].ToString(); dtB.Rows.Add(dr); } } string userid = dtf.Rows[0]["PersonID"].ToString(); string ostation = ""; string station = ""; string department = ""; DataSet ds2 = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(userid); if (ds2.Tables[0].Rows.Count == 1) { DataTable dt1 = ds2.Tables[0]; ostation = dt1.Rows[0]["CostCenter"].ToString();//记录用户预算站点,即CostCenter station = dt1.Rows[0]["stationCode"].ToString();//记录用户所在站点 department = dt1.Rows[0]["CRPDepartmentName"].ToString(); } string accountcode = ""; for (int g = 0; g < dtB.Rows.Count; g++) { if (Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()) != 0) { DataRow dr = dtbudget.NewRow(); dr["EName"] = dtB.Rows[g]["EName"].ToString(); dr["Current"] = Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()); dr["COACode"] = dtB.Rows[g]["COACode"].ToString(); dr["Year"] = dtB.Rows[g]["Year"].ToString(); accountcode = dtB.Rows[g]["COACode"].ToString(); DataTable dtC = new DataTable(); //dtC = Comm.RtnEB(userid, department, ostation, ostation, accountcode, dtB.Rows[g]["Year"].ToString(), "1"); dtC = Comm.ExRtnEB(userid, department, ostation, ostation, accountcode, dtB.Rows[g]["Year"].ToString(), "1","G",ID); for (int f = 0; f < dtC.Rows.Count; f++) { if (dtC.Rows[f]["Type"].ToString() == "全年个人") { dr["PU"] = Convert.ToDecimal(dtC.Rows[f]["Used"].ToString()); dr["PB"] = Convert.ToDecimal(dtC.Rows[f]["Budget"].ToString()); } else if (dtC.Rows[f]["Type"].ToString() == "全年部门") { dr["DU"] = Convert.ToDecimal(dtC.Rows[f]["Used"].ToString()); dr["DB"] = Convert.ToDecimal(dtC.Rows[f]["Budget"].ToString()); } else if (dtC.Rows[f]["Type"].ToString() == "全年站点") { dr["SU"] = Convert.ToDecimal(dtC.Rows[f]["Used"].ToString()); dr["SB"] = Convert.ToDecimal(dtC.Rows[f]["Budget"].ToString()); } } dtbudget.Rows.Add(dr); } } //计算%,取得名称,转为本地币种汇率,增加列记录Currency为邮件准备 for (int g = 0; g < dtbudget.Rows.Count; g++) { if (CurLocal != CurBudget) { rate = DIMERCO.SDK.Utilities.LSDK.GetBudgetConverRate(CurLocal, CurBudget, Convert.ToInt16(dtbudget.Rows[g]["Year"].ToString())); } if (Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["PPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["DPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["SPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); } dtbudget.Rows[g]["PU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString()), 2); dtbudget.Rows[g]["PB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); dtbudget.Rows[g]["DU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString()), 2); dtbudget.Rows[g]["DB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); dtbudget.Rows[g]["SU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString()), 2); dtbudget.Rows[g]["SB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); dtbudget.Rows[g]["RequestID"] = ID; dtbudget.Rows[g]["Status"] = 2; dtbudget.Rows[g]["LocalCur"] = CurLocal; dtbudget.Rows[g]["CenterCur"] = CurBudget; dtbudget.Rows[g]["Rate"] = rate; } if (!SendMail("G", Request.QueryString["RequestID"].ToString(), newid, dtbudget))//Budget已经计入Current,%不需要重新计算 { ErrorHandle("Error mail address."); return; } X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Approved.', buttons: { ok: 'Ok' }, fn: function (btn) { parent.Window1.hide();parent.Button1.fireEvent('click'); } });"); } }
protected void UploadScanFileClick(object sender, DirectEventArgs e) { //if (this.FileUploadField1.HasFile) //{ // string lstrFileName = null; //上传文件路径 // string lstrFileFolder = null; //存放文件路径 // string lstrFileNamePath = null; //上传目录及文件名 // //获得上传到服务器的目录名称,如果上传目录为空,就使用"D:\"作为缺省上传目录 // //if (dir.Value != "") lstrFileFolder = dir.Value; else lstrFileFolder = "D:\\"; // lstrFileFolder = System.Web.HttpContext.Current.Request.MapPath("Upload/"); // //lstrFileName = FileUploadField1.PostedFile.FileName; //获得文件名称 // //注:FileUploadField1.PostedFile.FileName 返回的是通过文件对话框选择的文件名,这之中包含了文件的目录信息 // lstrFileName = System.IO.Path.GetFileName(FileUploadField1.PostedFile.FileName); //去掉目录信息,返回文件名称 // //判断上传目录是否存在,不存在就建立 // if (!System.IO.Directory.Exists(lstrFileFolder)) System.IO.Directory.CreateDirectory(lstrFileFolder); // string dtime = DateTime.Now.ToString("yyyyMMddHHmmss"); // lstrFileNamePath = lstrFileFolder + "SF" + dtime + System.IO.Path.GetExtension(lstrFileName); //得到上传目录及文件名称 // FileUploadField1.PostedFile.SaveAs(lstrFileNamePath); //上传文件到服务器 // string filename = "SF" + dtime + System.IO.Path.GetExtension(lstrFileName); // HLAttachFile.Text = filename; hdScanFile.Value = filename; // HLAttachFile.NavigateUrl = "./Upload/" + filename; // string tpl = "Uploaded file: {0}<br/>Size: {1} bytes"; // //更新数据 // if (hdDetailID.Value.ToString() != "") // { // string updatesql = "update EeommonDetail set Attach='" + filename + "' where ID=" + hdDetailID.Value.ToString(); // cs.DBCommand dbc = new cs.DBCommand(); // string update = dbc.UpdateData("eReimbursement", updatesql, "Update"); // } // X.Msg.Show(new MessageBoxConfig // { // Buttons = MessageBox.Button.OK, // Icon = MessageBox.Icon.INFO, // Title = "Success", // Message = string.Format(tpl, this.FileUploadField1.PostedFile.FileName, this.FileUploadField1.PostedFile.ContentLength) // }); //} if (this.FileUploadField1.HasFile) { string lstrFileName = null; //上传文件路径 string lstrFileFolder = null; //存放文件路径 string lstrFileNamePath = null; //上传目录及文件名 cs.DBCommand dbc = new cs.DBCommand(); //获得上传到服务器的目录名称,如果上传目录为空,就使用"D:\"作为缺省上传目录 //if (dir.Value != "") lstrFileFolder = dir.Value; else lstrFileFolder = "D:\\"; lstrFileFolder = System.Web.HttpContext.Current.Request.MapPath("Upload/"); //lstrFileName = FileUploadField1.PostedFile.FileName; //获得文件名称 //注:FileUploadField1.PostedFile.FileName 返回的是通过文件对话框选择的文件名,这之中包含了文件的目录信息 lstrFileName = System.IO.Path.GetFileName(FileUploadField1.PostedFile.FileName); //去掉目录信息,返回文件名称 //判断上传目录是否存在,不存在就建立 if (!System.IO.Directory.Exists(lstrFileFolder)) System.IO.Directory.CreateDirectory(lstrFileFolder); string dtime = DateTime.Now.ToString("yyyyMMddHHmmss"); lstrFileNamePath = lstrFileFolder + "SF" + dtime + System.IO.Path.GetExtension(lstrFileName); //得到上传目录及文件名称 //151124.增加上传附件判断. string postfix = Path.GetExtension(lstrFileName); string postfixraw = Path.GetExtension(lstrFileName); int indexf = postfix.IndexOf('.'); if (indexf != -1) { postfixraw = postfixraw.Substring(1); } string station = hdStation.Value.ToString(); string sql = "select * from FileRule where StationCode='" + station + "'"; DataTable dtrule = dbc.GetData("eReimbursement", sql); if (dtrule.Rows.Count < 1) { string sqlnew = "select * from FileRule where StationCode='DEFAULT'"; DataTable dtnew = dbc.GetData("eReimbursement", sqlnew); if (dtnew.Select("Allow=0 and PostfixRaw='" + postfixraw + "'").Count() == 1) { //不允许上传该文件类型 X.AddScript("Ext.Msg.show({ title: 'Warning', msg: 'Not allowed file type.Please contact local MIS.', buttons: { ok: 'Ok' }, fn: function (btn) { return false; } });"); return; } else if (dtnew.Select("Allow=1 and PostfixRaw='" + postfixraw + "'").Count() == 1) { //允许上传的文件类型 FileUploadField1.PostedFile.SaveAs(lstrFileNamePath); //上传文件到服务器 string filename = "SF" + dtime + System.IO.Path.GetExtension(lstrFileName); HLAttachFile.Text = filename; hdScanFile.Value = filename; HLAttachFile.NavigateUrl = "./Upload/" + filename; string tpl = "Uploaded file: {0}<br/>Size: {1} bytes"; //更新数据 if (hdDetailID.Value.ToString() != "") { string updatesql = "update EeommonDetail set Attach='" + filename + "' where ID=" + hdDetailID.Value.ToString(); string update = dbc.UpdateData("eReimbursement", updatesql, "Update"); } X.Msg.Show(new MessageBoxConfig { Buttons = MessageBox.Button.OK, Icon = MessageBox.Icon.INFO, Title = "Success", Message = string.Format(tpl, this.FileUploadField1.PostedFile.FileName, this.FileUploadField1.PostedFile.ContentLength) }); } else { //未知文件类型 FileUploadField1.PostedFile.SaveAs(lstrFileNamePath); //上传文件到服务器 //压缩文件 cs.ZipFloClass zip = new cs.ZipFloClass(); string filename = "SF" + dtime + postfix; string filepath = lstrFileNamePath; string zipfilepath = lstrFileFolder + "SF" + dtime + ".zip"; zip.ZipSingleFile(lstrFileName, filepath, zipfilepath); string newfilename = "SF" + dtime + ".zip"; HLAttachFile.Text = newfilename; hdScanFile.Value = newfilename; HLAttachFile.NavigateUrl = "./Upload/" + newfilename; string tpl = "Uploaded file: {0}<br/>Size: {1} bytes"; //更新数据 if (hdDetailID.Value.ToString() != "") { string updatesql = "update EeommonDetail set Attach='" + newfilename + "' where ID=" + hdDetailID.Value.ToString(); string update = dbc.UpdateData("eReimbursement", updatesql, "Update"); } X.Msg.Show(new MessageBoxConfig { Buttons = MessageBox.Button.OK, Icon = MessageBox.Icon.INFO, Title = "Success", Message = string.Format(tpl, this.FileUploadField1.PostedFile.FileName, this.FileUploadField1.PostedFile.ContentLength) }); } } else { if (dtrule.Select("Allow=0 and PostfixRaw='" + postfixraw + "'").Count() == 1) { //不允许上传该文件类型 X.AddScript("Ext.Msg.show({ title: 'Warning', msg: 'Not allowed file type.Please contact local MIS.', buttons: { ok: 'Ok' }, fn: function (btn) { return false; } });"); return; } else if (dtrule.Select("Allow=1 and PostfixRaw='" + postfixraw + "'").Count() == 1) { //允许上传的文件类型 FileUploadField1.PostedFile.SaveAs(lstrFileNamePath); //上传文件到服务器 string filename = "SF" + dtime + System.IO.Path.GetExtension(lstrFileName); HLAttachFile.Text = filename; hdScanFile.Value = filename; HLAttachFile.NavigateUrl = "./Upload/" + filename; string tpl = "Uploaded file: {0}<br/>Size: {1} bytes"; //更新数据 if (hdDetailID.Value.ToString() != "") { string updatesql = "update EeommonDetail set Attach='" + filename + "' where ID=" + hdDetailID.Value.ToString(); string update = dbc.UpdateData("eReimbursement", updatesql, "Update"); } X.Msg.Show(new MessageBoxConfig { Buttons = MessageBox.Button.OK, Icon = MessageBox.Icon.INFO, Title = "Success", Message = string.Format(tpl, this.FileUploadField1.PostedFile.FileName, this.FileUploadField1.PostedFile.ContentLength) }); } else { //未知文件类型 FileUploadField1.PostedFile.SaveAs(lstrFileNamePath); //上传文件到服务器 //压缩文件 cs.ZipFloClass zip = new cs.ZipFloClass(); string filename = "SF" + dtime + postfix; string filepath = lstrFileNamePath; string zipfilepath = lstrFileFolder + "SF" + dtime + ".zip"; zip.ZipSingleFile(lstrFileName, filepath, zipfilepath); string newfilename = "SF" + dtime + ".zip"; HLAttachFile.Text = newfilename; hdScanFile.Value = newfilename; HLAttachFile.NavigateUrl = "./Upload/" + newfilename; string tpl = "Uploaded file: {0}<br/>Size: {1} bytes"; //更新数据 if (hdDetailID.Value.ToString() != "") { string updatesql = "update EeommonDetail set Attach='" + newfilename + "' where ID=" + hdDetailID.Value.ToString(); string update = dbc.UpdateData("eReimbursement", updatesql, "Update"); } X.Msg.Show(new MessageBoxConfig { Buttons = MessageBox.Button.OK, Icon = MessageBox.Icon.INFO, Title = "Success", Message = string.Format(tpl, this.FileUploadField1.PostedFile.FileName, this.FileUploadField1.PostedFile.ContentLength) }); } } } }
protected void AddApp(object sender, DirectEventArgs e) { cs.DBCommand dbc = new cs.DBCommand(); string ID = Request.QueryString["RequestID"].ToString(); string userid1 = e.ExtraParams[0].Value; string username1 = e.ExtraParams[1].Value; string updatesql = "update Eflow set Active=-1,Status=2,Remark='" + txtRemark.Text.Replace("'", "''") + "',ApproveDate='" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "' where id=" + Request.QueryString["ID"].ToString(); updatesql += ";insert into Eflow ([Type],[Step],[Approver],[ApproverID],[ApproveDate],[RequestID],[Active],[Status]) values "; updatesql += "('T'," + Request.QueryString["Step"].ToString() + ",'" + username1 + "','" + userid1 + "','" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "','" + Request.QueryString["RequestID"].ToString() + "',1,1);select id from Eflow where id=@@IDENTITY"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert"); if (newid == "-1") { ErrorHandle(); return; } else { string sqlf = "select * from ETravel where ID=" + ID; DataTable dtf = dbc.GetData("eReimbursement", sqlf); string sqld = "select * from ETraveleDetail where [No]='" + ID + "' order by id"; DataTable dtall = new DataTable(); dtall = dbc.GetData("eReimbursement", sqld); //预算 //140226 显示预算 DataTable dtbudget = new DataTable(); dtbudget.Columns.Add("RequestID", typeof(System.Int32)); dtbudget.Columns.Add("Status", typeof(System.Int16)); dtbudget.Columns.Add("EName", typeof(System.String)); dtbudget.Columns.Add("COACode", typeof(System.String)); dtbudget.Columns.Add("LocalCur", typeof(System.String)); dtbudget.Columns.Add("CenterCur", typeof(System.String)); dtbudget.Columns.Add("Rate", typeof(System.Decimal)); dtbudget.Columns.Add("Current", typeof(System.Decimal)); dtbudget.Columns.Add("PA", typeof(System.Decimal)); dtbudget.Columns.Add("CA", typeof(System.Decimal)); dtbudget.Columns.Add("PU", typeof(System.Decimal)); dtbudget.Columns.Add("PB", typeof(System.Decimal)); dtbudget.Columns.Add("PPercent", typeof(System.Decimal)); dtbudget.Columns.Add("DU", typeof(System.Decimal)); dtbudget.Columns.Add("DB", typeof(System.Decimal)); dtbudget.Columns.Add("DPercent", typeof(System.Decimal)); dtbudget.Columns.Add("SU", typeof(System.Decimal)); dtbudget.Columns.Add("SB", typeof(System.Decimal)); dtbudget.Columns.Add("SPercent", typeof(System.Decimal)); //取得预算日期 string sqlA = "select convert(varchar(10),min(Tdate0),111) as BudgetDate from ETraveleDetail where No='" + ID + "'"; DataTable dtA = dbc.GetData("eReimbursement", sqlA); //取得本币与成本中心汇率转换 decimal rate = 1; string CurLocal = dtall.Rows[0]["Cur"].ToString(); string CurBudget = DIMERCO.SDK.Utilities.LSDK.GetStationCurrencyByCode(dtall.Rows[0]["TSation"].ToString()); if (CurLocal != CurBudget) { rate = DIMERCO.SDK.Utilities.LSDK.GetBudgetConverRate(CurLocal, CurBudget, Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Year); } //取得4大类合计 //string sqlB = "select sum(T1) as T1,sum(T2) as T2,sum(T3) as T3,sum(T4) as T4 from (select case when AccountCode='62012000' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T1],case when AccountCode='62010900' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T2],case when AccountCode='62011900' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T3],case when AccountCode='62010500' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T4] from ETraveleDetail where No=" + ID + ") t"; string sqlB = "select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62012000' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62012000' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62010900' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62010900' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62011900' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62011900' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62010500' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62010500'"; DataTable dtB = dbc.GetData("eReimbursement", sqlB); //取得传递预算的参数 string userid = dtf.Rows[0]["PersonID"].ToString(); string dpt = dtf.Rows[0]["Department"].ToString(); string ostation = dtf.Rows[0]["Station2"].ToString();//预算站点,与基本信息中的CostCenter一致(Station2) string tstation = ostation;//Etravel表中的Station2,目前与预算站点一致,不允许更改 string year = Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Year.ToString(); string month = Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Month.ToString(); string accountcode = ""; for (int g = 0; g < dtB.Rows.Count; g++) { if (Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()) != 0) { DataRow dr = dtbudget.NewRow(); dr["Current"] = Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()); dr["PA"] = Convert.ToDecimal(dtB.Rows[g]["PA"].ToString()); dr["CA"] = Convert.ToDecimal(dtB.Rows[g]["CA"].ToString()); dr["COACode"] = dtB.Rows[g]["COACode"].ToString(); accountcode = dtB.Rows[g]["COACode"].ToString(); DataTable dtC = new DataTable(); dtC = Comm.ExRtnEB(userid, dpt, ostation, tstation, accountcode, year, month, "T", ID); for (int h = 0; h < dtC.Rows.Count; h++) { if (dtC.Rows[h]["Type"].ToString() == "全年个人") { dr["PU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["PB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } else if (dtC.Rows[h]["Type"].ToString() == "全年部门") { dr["DU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["DB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } else if (dtC.Rows[h]["Type"].ToString() == "全年站点") { dr["SU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["SB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } } dtbudget.Rows.Add(dr); } } //计算%,取得名称,预算转换为本地汇率 for (int g = 0; g < dtbudget.Rows.Count; g++) { if (Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["PPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["DPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["SPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); } if (dtbudget.Rows[g]["COACode"].ToString() == "62012000") { dtbudget.Rows[g]["EName"] = "Travel expense"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62010900") { dtbudget.Rows[g]["EName"] = "Entertainment"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62011900") { dtbudget.Rows[g]["EName"] = "Transportation"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62010500") { dtbudget.Rows[g]["EName"] = "Communication"; } dtbudget.Rows[g]["PU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString()), 2); dtbudget.Rows[g]["PB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); dtbudget.Rows[g]["DU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString()), 2); dtbudget.Rows[g]["DB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); dtbudget.Rows[g]["SU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString()), 2); dtbudget.Rows[g]["SB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); dtbudget.Rows[g]["RequestID"] = ID; dtbudget.Rows[g]["Status"] = 3; dtbudget.Rows[g]["LocalCur"] = CurLocal; dtbudget.Rows[g]["CenterCur"] = CurBudget; dtbudget.Rows[g]["Rate"] = rate; } //DataTable dtBudget = new DataTable(); if (!SendMail("T", Request.QueryString["RequestID"].ToString(), newid, dtbudget))//Budget已经计入Current,%不需要重新计算 { ErrorHandle("Error mail address."); return; } X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Approved.', buttons: { ok: 'Ok' }, fn: function (btn) { parent.Window1.hide();parent.Button1.fireEvent('click'); } });"); } }
protected void Save(object sender, DirectEventArgs e) { //检查是否登录超时 if (Request.Cookies.Get("eReimUserID") == null) { if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { X.AddScript("Ext.Msg.show({ title: '提示', msg: '登录超时,将刷新页面.', buttons: { ok: 'Ok' }, fn: function (btn) { window.location.reload(); } });"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Time out,reloading...', buttons: { ok: 'Ok' }, fn: function (btn) { window.location.reload(); } });"); } return; } cs.DBCommand dbc = new cs.DBCommand(); string para = e.ExtraParams[0].Value; SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["eReimbursement"].ConnectionString); string ID = Request.QueryString["RequestID"].ToString(); string sql = "select * from Eflow where RequestID='" + Request.QueryString["RequestID"].ToString() + "' and [Type]='" + Request.QueryString["Type"].ToString() + "' order by Step,id"; DataTable dt = new DataTable(); dt = dbc.GetData("eReimbursement", sql); string sqlf = "select * from ETravel where ID=" + ID; DataTable dtf = dbc.GetData("eReimbursement", sqlf); if (dt != null) { for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i]["Active"].ToString() == "1") { if (para=="3")//拒绝申请 { string updatesql = "update Eflow set Active=2,Status=3,Remark='" + txtRemark.Text.Replace("'", "''") + "',ApproveDate='" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "' where id=" + dt.Rows[i]["id"].ToString(); if (dt.Rows[i]["Type"].ToString() == "T") { updatesql += ";update ETravel set Status=3 where ID=" + dt.Rows[i]["RequestID"].ToString(); } else { updatesql += ";update Ecommon set Status=3 where ID=" + dt.Rows[i]["RequestID"].ToString(); } string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); if (newid != "1") { ErrorHandle("Data Error."); return; } else { //保存预算信息 try { string sqld = "select * from ETraveleDetail where [No]='" + ID + "' order by id"; DataTable dtall = new DataTable(); dtall = dbc.GetData("eReimbursement", sqld); //预算 //140226 显示预算 DataTable dtbudget = new DataTable(); dtbudget.Columns.Add("RequestID", typeof(System.Int32)); dtbudget.Columns.Add("Status", typeof(System.Int16)); dtbudget.Columns.Add("EName", typeof(System.String)); dtbudget.Columns.Add("COACode", typeof(System.String)); dtbudget.Columns.Add("LocalCur", typeof(System.String)); dtbudget.Columns.Add("CenterCur", typeof(System.String)); dtbudget.Columns.Add("Rate", typeof(System.Decimal)); dtbudget.Columns.Add("Current", typeof(System.Decimal)); dtbudget.Columns.Add("PA", typeof(System.Decimal)); dtbudget.Columns.Add("CA", typeof(System.Decimal)); dtbudget.Columns.Add("PU", typeof(System.Decimal)); dtbudget.Columns.Add("PB", typeof(System.Decimal)); dtbudget.Columns.Add("PPercent", typeof(System.Decimal)); dtbudget.Columns.Add("DU", typeof(System.Decimal)); dtbudget.Columns.Add("DB", typeof(System.Decimal)); dtbudget.Columns.Add("DPercent", typeof(System.Decimal)); dtbudget.Columns.Add("SU", typeof(System.Decimal)); dtbudget.Columns.Add("SB", typeof(System.Decimal)); dtbudget.Columns.Add("SPercent", typeof(System.Decimal)); //取得预算日期 string sqlA = "select convert(varchar(10),min(Tdate0),111) as BudgetDate from ETraveleDetail where No='" + ID + "'"; DataTable dtA = dbc.GetData("eReimbursement", sqlA); //取得本币与成本中心汇率转换 decimal rate = 1; string CurLocal = dtall.Rows[0]["Cur"].ToString(); string CurBudget = DIMERCO.SDK.Utilities.LSDK.GetStationCurrencyByCode(dtall.Rows[0]["TSation"].ToString()); if (CurLocal != CurBudget) { rate = DIMERCO.SDK.Utilities.LSDK.GetBudgetConverRate(CurLocal, CurBudget, Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Year); } //取得4大类合计 //string sqlB = "select sum(T1) as T1,sum(T2) as T2,sum(T3) as T3,sum(T4) as T4 from (select case when AccountCode='62012000' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T1],case when AccountCode='62010900' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T2],case when AccountCode='62011900' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T3],case when AccountCode='62010500' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T4] from ETraveleDetail where No=" + ID + ") t"; string sqlB = "select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62012000' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62012000' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62010900' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62010900' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62011900' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62011900' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62010500' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62010500'"; DataTable dtB = dbc.GetData("eReimbursement", sqlB); //取得传递预算的参数 string userid = dtf.Rows[0]["PersonID"].ToString(); string dpt = dtf.Rows[0]["Department"].ToString(); string ostation = dtf.Rows[0]["Station2"].ToString();//预算站点,与基本信息中的CostCenter一致(Station2) string tstation = ostation;//Etravel表中的Station2,目前与预算站点一致,不允许更改 string year = Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Year.ToString(); string month = Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Month.ToString(); string accountcode = ""; for (int g = 0; g < dtB.Rows.Count; g++) { if (Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()) != 0) { DataRow dr = dtbudget.NewRow(); dr["Current"] = Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()); dr["PA"] = Convert.ToDecimal(dtB.Rows[g]["PA"].ToString()); dr["CA"] = Convert.ToDecimal(dtB.Rows[g]["CA"].ToString()); dr["COACode"] = dtB.Rows[g]["COACode"].ToString(); accountcode = dtB.Rows[g]["COACode"].ToString(); DataTable dtC = new DataTable(); dtC = Comm.ExRtnEB(userid, dpt, ostation, tstation, accountcode, year, month, "T", ID); for (int h = 0; h < dtC.Rows.Count; h++) { if (dtC.Rows[h]["Type"].ToString() == "全年个人") { dr["PU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["PB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } else if (dtC.Rows[h]["Type"].ToString() == "全年部门") { dr["DU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["DB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } else if (dtC.Rows[h]["Type"].ToString() == "全年站点") { dr["SU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["SB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } } dtbudget.Rows.Add(dr); } } //计算%,取得名称,预算转换为本地汇率 for (int g = 0; g < dtbudget.Rows.Count; g++) { if (Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["PPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["DPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["SPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); } if (dtbudget.Rows[g]["COACode"].ToString() == "62012000") { dtbudget.Rows[g]["EName"] = "Travel expense"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62010900") { dtbudget.Rows[g]["EName"] = "Entertainment"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62011900") { dtbudget.Rows[g]["EName"] = "Transportation"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62010500") { dtbudget.Rows[g]["EName"] = "Communication"; } dtbudget.Rows[g]["PU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString()), 2); dtbudget.Rows[g]["PB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); dtbudget.Rows[g]["DU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString()), 2); dtbudget.Rows[g]["DB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); dtbudget.Rows[g]["SU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString()), 2); dtbudget.Rows[g]["SB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); dtbudget.Rows[g]["RequestID"] = ID; dtbudget.Rows[g]["Status"] = 3; dtbudget.Rows[g]["LocalCur"] = CurLocal; dtbudget.Rows[g]["CenterCur"] = CurBudget; dtbudget.Rows[g]["Rate"] = rate; } for (int g = 0; g < dtbudget.Rows.Count; g++) { SqlCommand scdetail = sqlConn.CreateCommand(); scdetail.CommandText = "Insert into Budget_Complete (FormType,RequestID,Status,COACode,EName,LocalCur,CenterCur,Rate,LocalAmount,PA,CA,PU,PB,PPercent,DU,DB,DPercent,SU,SB,SPercent) values (@FormType,@RequestID,@Status,@COACode,@EName,@LocalCur,@CenterCur,@Rate,@LocalAmount,@PA,@CA,@PU,@PB,@PPercent,@DU,@DB,@DPercent,@SU,@SB,@SPercent)"; SqlParameter spdetail = new SqlParameter("@RequestID", SqlDbType.Int); spdetail.Value = Convert.ToInt32(ID); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@FormType", SqlDbType.VarChar, 10); spdetail.Value = "T"; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Status", SqlDbType.Int); spdetail.Value = Convert.ToInt16(dtbudget.Rows[g]["Status"].ToString()); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@COACode", SqlDbType.VarChar,50); spdetail.Value = dtbudget.Rows[g]["COACode"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@EName", SqlDbType.VarChar, 50); spdetail.Value = dtbudget.Rows[g]["EName"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@LocalCur", SqlDbType.VarChar, 10); spdetail.Value = dtbudget.Rows[g]["LocalCur"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@CenterCur", SqlDbType.VarChar, 10); spdetail.Value = dtbudget.Rows[g]["CenterCur"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Rate", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["Rate"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@LocalAmount", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["Current"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@PA", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["PA"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@CA", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["CA"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@PU", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["PU"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@PB", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["PB"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@PPercent", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["PPercent"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@DU", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["DU"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@DB", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["DB"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@DPercent", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["DPercent"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@SU", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["SU"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@SB", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["SB"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@SPercent", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["SPercent"]; scdetail.Parameters.Add(spdetail); sqlConn.Open(); int row = scdetail.ExecuteNonQuery(); sqlConn.Close(); } if (!SendMail("T", Request.QueryString["RequestID"].ToString(), dt.Rows[i]["id"].ToString(), dtbudget))//Budget已经计入Current,%不需要重新计算 { ErrorHandle("Error mail address."); return; } } catch (Exception) { throw; } X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Rejected and form complete.', buttons: { ok: 'Ok' }, fn: function (btn) { parent.Window1.hide();parent.Button1.fireEvent('click'); } });"); } } else//同意申请 { if (i == dt.Rows.Count-1) { string updatesql = "update Eflow set Active=2,Status=2,Remark='" + txtRemark.Text.Replace("'", "''") + "',ApproveDate='" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "' where id=" + dt.Rows[i]["id"].ToString(); if (dt.Rows[i]["Type"].ToString() == "T") { updatesql += ";update ETravel set Status=2 where ID=" + dt.Rows[i]["RequestID"].ToString(); } else { updatesql += ";update Ecommon set Status=2 where ID=" + dt.Rows[i]["RequestID"].ToString(); } string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); if (newid != "1") { ErrorHandle("Data Error."); return; } else { //保存预算信息 try { string sqld = "select * from ETraveleDetail where [No]='" + ID + "' order by id"; DataTable dtall = new DataTable(); dtall = dbc.GetData("eReimbursement", sqld); //预算 //140226 显示预算 DataTable dtbudget = new DataTable(); dtbudget.Columns.Add("RequestID", typeof(System.Int32)); dtbudget.Columns.Add("Status", typeof(System.Int16)); dtbudget.Columns.Add("EName", typeof(System.String)); dtbudget.Columns.Add("COACode", typeof(System.String)); dtbudget.Columns.Add("LocalCur", typeof(System.String)); dtbudget.Columns.Add("CenterCur", typeof(System.String)); dtbudget.Columns.Add("Rate", typeof(System.Decimal)); dtbudget.Columns.Add("Current", typeof(System.Decimal)); dtbudget.Columns.Add("PA", typeof(System.Decimal)); dtbudget.Columns.Add("CA", typeof(System.Decimal)); dtbudget.Columns.Add("PU", typeof(System.Decimal)); dtbudget.Columns.Add("PB", typeof(System.Decimal)); dtbudget.Columns.Add("PPercent", typeof(System.Decimal)); dtbudget.Columns.Add("DU", typeof(System.Decimal)); dtbudget.Columns.Add("DB", typeof(System.Decimal)); dtbudget.Columns.Add("DPercent", typeof(System.Decimal)); dtbudget.Columns.Add("SU", typeof(System.Decimal)); dtbudget.Columns.Add("SB", typeof(System.Decimal)); dtbudget.Columns.Add("SPercent", typeof(System.Decimal)); //取得预算日期 string sqlA = "select convert(varchar(10),min(Tdate0),111) as BudgetDate from ETraveleDetail where No='" + ID + "'"; DataTable dtA = dbc.GetData("eReimbursement", sqlA); //取得本币与成本中心汇率转换 decimal rate = 1; string CurLocal = dtall.Rows[0]["Cur"].ToString(); string CurBudget = DIMERCO.SDK.Utilities.LSDK.GetStationCurrencyByCode(dtall.Rows[0]["TSation"].ToString()); if (CurLocal != CurBudget) { rate = DIMERCO.SDK.Utilities.LSDK.GetBudgetConverRate(CurLocal, CurBudget, Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Year); } //取得4大类合计 //string sqlB = "select sum(T1) as T1,sum(T2) as T2,sum(T3) as T3,sum(T4) as T4 from (select case when AccountCode='62012000' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T1],case when AccountCode='62010900' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T2],case when AccountCode='62011900' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T3],case when AccountCode='62010500' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T4] from ETraveleDetail where No=" + ID + ") t"; string sqlB = "select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62012000' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62012000' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62010900' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62010900' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62011900' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62011900' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62010500' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62010500'"; DataTable dtB = dbc.GetData("eReimbursement", sqlB); //取得传递预算的参数 string userid = dtf.Rows[0]["PersonID"].ToString(); string dpt = dtf.Rows[0]["Department"].ToString(); string ostation = dtf.Rows[0]["Station2"].ToString();//预算站点,与基本信息中的CostCenter一致(Station2) string tstation = ostation;//Etravel表中的Station2,目前与预算站点一致,不允许更改 string year = Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Year.ToString(); string month = Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Month.ToString(); string accountcode = ""; for (int g = 0; g < dtB.Rows.Count; g++) { if (Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()) != 0) { DataRow dr = dtbudget.NewRow(); dr["Current"] = Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()); dr["PA"] = Convert.ToDecimal(dtB.Rows[g]["PA"].ToString()); dr["CA"] = Convert.ToDecimal(dtB.Rows[g]["CA"].ToString()); dr["COACode"] = dtB.Rows[g]["COACode"].ToString(); accountcode = dtB.Rows[g]["COACode"].ToString(); DataTable dtC = new DataTable(); dtC = Comm.ExRtnEB(userid, dpt, ostation, tstation, accountcode, year, month, "T", ID); for (int h = 0; h < dtC.Rows.Count; h++) { if (dtC.Rows[h]["Type"].ToString() == "全年个人") { dr["PU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["PB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } else if (dtC.Rows[h]["Type"].ToString() == "全年部门") { dr["DU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["DB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } else if (dtC.Rows[h]["Type"].ToString() == "全年站点") { dr["SU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["SB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } } dtbudget.Rows.Add(dr); } } //计算%,取得名称,预算转换为本地汇率 for (int g = 0; g < dtbudget.Rows.Count; g++) { if (Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["PPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["DPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["SPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); } if (dtbudget.Rows[g]["COACode"].ToString() == "62012000") { dtbudget.Rows[g]["EName"] = "Travel expense"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62010900") { dtbudget.Rows[g]["EName"] = "Entertainment"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62011900") { dtbudget.Rows[g]["EName"] = "Transportation"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62010500") { dtbudget.Rows[g]["EName"] = "Communication"; } dtbudget.Rows[g]["PU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString()), 2); dtbudget.Rows[g]["PB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); dtbudget.Rows[g]["DU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString()), 2); dtbudget.Rows[g]["DB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); dtbudget.Rows[g]["SU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString()), 2); dtbudget.Rows[g]["SB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); dtbudget.Rows[g]["RequestID"] = ID; dtbudget.Rows[g]["Status"] = 2; dtbudget.Rows[g]["LocalCur"] = CurLocal; dtbudget.Rows[g]["CenterCur"] = CurBudget; dtbudget.Rows[g]["Rate"] = rate; } for (int g = 0; g < dtbudget.Rows.Count; g++) { SqlCommand scdetail = sqlConn.CreateCommand(); scdetail.CommandText = "Insert into Budget_Complete (FormType,RequestID,Status,COACode,EName,LocalCur,CenterCur,Rate,LocalAmount,PA,CA,PU,PB,PPercent,DU,DB,DPercent,SU,SB,SPercent) values (@FormType,@RequestID,@Status,@COACode,@EName,@LocalCur,@CenterCur,@Rate,@LocalAmount,@PA,@CA,@PU,@PB,@PPercent,@DU,@DB,@DPercent,@SU,@SB,@SPercent)"; SqlParameter spdetail = new SqlParameter("@RequestID", SqlDbType.Int); spdetail.Value = Convert.ToInt32(ID); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@FormType", SqlDbType.VarChar, 10); spdetail.Value = "T"; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Status", SqlDbType.Int); spdetail.Value = Convert.ToInt16(dtbudget.Rows[g]["Status"].ToString()); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@COACode", SqlDbType.VarChar, 50); spdetail.Value = dtbudget.Rows[g]["COACode"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@EName", SqlDbType.VarChar, 50); spdetail.Value = dtbudget.Rows[g]["EName"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@LocalCur", SqlDbType.VarChar, 10); spdetail.Value = dtbudget.Rows[g]["LocalCur"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@CenterCur", SqlDbType.VarChar, 10); spdetail.Value = dtbudget.Rows[g]["CenterCur"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Rate", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["Rate"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@LocalAmount", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["Current"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@PA", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["PA"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@CA", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["CA"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@PU", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["PU"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@PB", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["PB"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@PPercent", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["PPercent"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@DU", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["DU"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@DB", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["DB"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@DPercent", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["DPercent"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@SU", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["SU"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@SB", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["SB"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@SPercent", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["SPercent"]; scdetail.Parameters.Add(spdetail); sqlConn.Open(); int row = scdetail.ExecuteNonQuery(); sqlConn.Close(); } if (!SendMail("T", Request.QueryString["RequestID"].ToString(), dt.Rows[i]["id"].ToString(), dtbudget))//Budget已经计入Current,%不需要重新计算 { ErrorHandle("Error mail address."); return; } } catch (Exception) { throw; } X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Approved and form complete.', buttons: { ok: 'Ok' }, fn: function (btn) { parent.Window1.hide();parent.Button1.fireEvent('click'); } });"); } } else { string updatesql = "update Eflow set Active=-1,Status=2,Remark='" + txtRemark.Text.Replace("'", "''") + "',ApproveDate='" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "' where id=" + dt.Rows[i]["id"].ToString(); updatesql += ";update Eflow set Active=1 where id=" + dt.Rows[i + 1]["id"].ToString(); string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); if (newid != "1") { ErrorHandle(newid); return; } else { string sqld = "select * from ETraveleDetail where [No]='" + ID + "' order by id"; DataTable dtall = new DataTable(); dtall = dbc.GetData("eReimbursement", sqld); //预算 //140226 显示预算 DataTable dtbudget = new DataTable(); dtbudget.Columns.Add("RequestID", typeof(System.Int32)); dtbudget.Columns.Add("Status", typeof(System.Int16)); dtbudget.Columns.Add("EName", typeof(System.String)); dtbudget.Columns.Add("COACode", typeof(System.String)); dtbudget.Columns.Add("LocalCur", typeof(System.String)); dtbudget.Columns.Add("CenterCur", typeof(System.String)); dtbudget.Columns.Add("Rate", typeof(System.Decimal)); dtbudget.Columns.Add("Current", typeof(System.Decimal)); dtbudget.Columns.Add("PA", typeof(System.Decimal)); dtbudget.Columns.Add("CA", typeof(System.Decimal)); dtbudget.Columns.Add("PU", typeof(System.Decimal)); dtbudget.Columns.Add("PB", typeof(System.Decimal)); dtbudget.Columns.Add("PPercent", typeof(System.Decimal)); dtbudget.Columns.Add("DU", typeof(System.Decimal)); dtbudget.Columns.Add("DB", typeof(System.Decimal)); dtbudget.Columns.Add("DPercent", typeof(System.Decimal)); dtbudget.Columns.Add("SU", typeof(System.Decimal)); dtbudget.Columns.Add("SB", typeof(System.Decimal)); dtbudget.Columns.Add("SPercent", typeof(System.Decimal)); //取得预算日期 string sqlA = "select convert(varchar(10),min(Tdate0),111) as BudgetDate from ETraveleDetail where No='" + ID + "'"; DataTable dtA = dbc.GetData("eReimbursement", sqlA); //取得本币与成本中心汇率转换 decimal rate = 1; string CurLocal = dtall.Rows[0]["Cur"].ToString(); string CurBudget = DIMERCO.SDK.Utilities.LSDK.GetStationCurrencyByCode(dtall.Rows[0]["TSation"].ToString()); if (CurLocal != CurBudget) { rate = DIMERCO.SDK.Utilities.LSDK.GetBudgetConverRate(CurLocal, CurBudget, Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Year); } //取得4大类合计 //string sqlB = "select sum(T1) as T1,sum(T2) as T2,sum(T3) as T3,sum(T4) as T4 from (select case when AccountCode='62012000' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T1],case when AccountCode='62010900' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T2],case when AccountCode='62011900' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T3],case when AccountCode='62010500' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T4] from ETraveleDetail where No=" + ID + ") t"; string sqlB = "select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62012000' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62012000' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62010900' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62010900' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62011900' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62011900' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62010500' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62010500'"; DataTable dtB = dbc.GetData("eReimbursement", sqlB); //取得传递预算的参数 string userid = dtf.Rows[0]["PersonID"].ToString(); string dpt = dtf.Rows[0]["Department"].ToString(); string ostation = dtf.Rows[0]["Station2"].ToString();//预算站点,与基本信息中的CostCenter一致(Station2) string tstation = ostation;//Etravel表中的Station2,目前与预算站点一致,不允许更改 string year = Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Year.ToString(); string month = Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Month.ToString(); string accountcode = ""; for (int g = 0; g < dtB.Rows.Count; g++) { if (Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()) != 0) { DataRow dr = dtbudget.NewRow(); dr["Current"] = Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()); dr["PA"] = Convert.ToDecimal(dtB.Rows[g]["PA"].ToString()); dr["CA"] = Convert.ToDecimal(dtB.Rows[g]["CA"].ToString()); dr["COACode"] = dtB.Rows[g]["COACode"].ToString(); accountcode = dtB.Rows[g]["COACode"].ToString(); DataTable dtC = new DataTable(); dtC = Comm.ExRtnEB(userid, dpt, ostation, tstation, accountcode, year, month, "T", ID); for (int h = 0; h < dtC.Rows.Count; h++) { if (dtC.Rows[h]["Type"].ToString() == "全年个人") { dr["PU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["PB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } else if (dtC.Rows[h]["Type"].ToString() == "全年部门") { dr["DU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["DB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } else if (dtC.Rows[h]["Type"].ToString() == "全年站点") { dr["SU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["SB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } } dtbudget.Rows.Add(dr); } } //计算%,取得名称,预算转换为本地汇率 for (int g = 0; g < dtbudget.Rows.Count; g++) { if (Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["PPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["DPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["SPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); } if (dtbudget.Rows[g]["COACode"].ToString() == "62012000") { dtbudget.Rows[g]["EName"] = "Travel expense"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62010900") { dtbudget.Rows[g]["EName"] = "Entertainment"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62011900") { dtbudget.Rows[g]["EName"] = "Transportation"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62010500") { dtbudget.Rows[g]["EName"] = "Communication"; } dtbudget.Rows[g]["PU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString()), 2); dtbudget.Rows[g]["PB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); dtbudget.Rows[g]["DU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString()), 2); dtbudget.Rows[g]["DB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); dtbudget.Rows[g]["SU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString()), 2); dtbudget.Rows[g]["SB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); dtbudget.Rows[g]["RequestID"] = ID; dtbudget.Rows[g]["Status"] = 3; dtbudget.Rows[g]["LocalCur"] = CurLocal; dtbudget.Rows[g]["CenterCur"] = CurBudget; dtbudget.Rows[g]["Rate"] = rate; } if (!SendMail("T", Request.QueryString["RequestID"].ToString(), dt.Rows[i + 1]["id"].ToString(), dtbudget))//Budget已经计入Current,%不需要重新计算 { ErrorHandle("Error mail address."); return; } X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Approved.', buttons: { ok: 'Ok' }, fn: function (btn) { parent.Window1.hide();parent.Button1.fireEvent('click'); } });"); } } } break; } } } }
//用于保存差旅费明细 protected void SubmitData(object sender, StoreSubmitDataEventArgs e) { DateTime dtnull = new DateTime(1, 1, 1, 0, 0, 0); cs.DBCommand dbc = new cs.DBCommand(); //检查是否已经被该人设置过审批人 string sqlCheckFlow = "select * from GroupFlow where GID=(select GID from GroupUsers where UserID='" + cbxOwner.Text + "')"; DataTable dtCheckFlow = dbc.GetData("eReimbursement", sqlCheckFlow); if (dtCheckFlow.Rows.Count < 1) { return; } string json = e.Json; XmlNode xml = e.Xml; List<Detail> Details = e.Object<Detail>(); //删除现有数据 string deletesql = "delete from ETraveleDetail where [No]='" + hdTravelRequestID.Value.ToString() + "'"; string newid1 = dbc.UpdateData("eReimbursement", deletesql, "Update"); foreach (Detail detail in Details) { if (newid1 == "-1") { ErrorHandle("Data Error."); return; } //新增 string word = "[No],[Tocity],[AccountName],[AccountCode],[AccountDes],[Cur],[Pamount],[Camount],[TSation],[Createdby],[CreadedDate],[Tdate]"; string value = ""; value += "'" + hdTravelRequestID.Value.ToString() + "',"; value += "'" + detail.Tocity + "',"; value += "'" + detail.AccountName + "',"; value += "'" + detail.AccountCode + "',"; value += "'" + detail.AccountDes + "',"; value += "'" + detail.Cur + "',"; value += detail.Pamount == "" ? "null," : detail.Pamount + ","; value += detail.Camount == "" ? "null," : detail.Camount + ","; value += "'" + detail.TSation + "',"; value += "'" + cbxOwner.Text + "',";//edit value += "'" + DateTime.Now.ToString() + "',"; value += detail.Tdate == "" ? "null" : "'" + detail.Tdate + "'"; string updatesql = "insert into ETraveleDetail (" + word + ") values(" + value + ");select [ID]=@@IDENTITY from ETraveleDetail"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert"); if (newid == "-1") { ErrorHandle("Data Error."); return; } } //发送提醒邮件 string sql = "select * from V_Eflow_ETravel where [Type]='T' and Step!=0 and RequestID=" + hdTravelRequestID.Value.ToString() + " order by Step,FlowID"; DataTable dtMail = new DataTable(); dtMail = dbc.GetData("eReimbursement", sql); if (dtMail != null && dtMail.Rows.Count > 0) { DIMERCO.SDK.MailMsg mail = new DIMERCO.SDK.MailMsg(); mail.Title = "Dimerco eReimbursement (" + dtMail.Rows[0]["Person"].ToString() + ") - Seek For Your Approval"; mail.FromDispName = "eReimbursement"; mail.From = "*****@*****.**"; string mailto = ""; DataSet dsTo = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(dtMail.Rows[0]["ApproverID"].ToString()); if (dsTo.Tables[0].Rows.Count == 1) { mailto += dsTo.Tables[0].Rows[0]["eMail"].ToString() + ","; } else { ErrorHandle("Error mail address of Approver."); return; } string mailcc = ""; DataSet dsCC = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(dtMail.Rows[0]["PersonID"].ToString()); if (dsCC.Tables[0].Rows.Count == 1) { mailcc += dsCC.Tables[0].Rows[0]["eMail"].ToString() + ","; } else { ErrorHandle("Error mail address of Owner."); return; } if (dtMail.Rows[0]["CreadedByID"].ToString() != "" && dtMail.Rows[0]["CreadedByID"].ToString() != dtMail.Rows[0]["PersonID"].ToString())//代理人 { dsCC = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(dtMail.Rows[0]["CreadedByID"].ToString()); mailcc += dsCC.Tables[0].Rows[0]["eMail"].ToString() + ","; } mail.To = mailto; mail.Cc = mailcc; string divstyle = "style='font-size:small;'"; string divstyleCurrent = "style='font-size:small;color:blue;'"; string tdstyle = "style='border:silver 1px ridge; font-size:small;background-color: #FFFFFF'"; StringBuilder sb = new StringBuilder(); sb.Append("<div>"); sb.Append("<div " + divstyle + "> Dear " + dtMail.Rows[0]["Approver"].ToString() + ",</div><br />"); sb.Append("<div " + divstyle + ">The following eReimbursement application for your approval:</div><br /><br />"); sb.Append("<div " + divstyle + ">eReimbursement Approval Remarks :</div><br />"); sb.Append("<div " + divstyle + ">Owner:" + dtMail.Rows[0]["Person"].ToString() + "</div>"); sb.Append("<div " + divstyle + ">Station:" + dtMail.Rows[0]["Station"].ToString() + "</div>"); sb.Append("<div " + divstyle + ">Department:" + dtMail.Rows[0]["Department"].ToString() + "</div>"); string period = ""; period += dtMail.Rows[0]["Bdate"].ToString() == "" ? "From NA " : ("From " + Convert.ToDateTime(dtMail.Rows[0]["Bdate"].ToString()).ToString("yyyy/MM/dd") + " "); period += dtMail.Rows[0]["Edate"].ToString() == "" ? "To NA" : "To " + Convert.ToDateTime(dtMail.Rows[0]["Edate"].ToString()).ToString("yyyy/MM/dd"); sb.Append("<div " + divstyle + ">Period:" + period + "</div><br />"); sb.Append("<div><table><thead><tr><th colspan=\"9\" " + tdstyle + ">Expense Detail</th></tr><tr>"); sb.Append("<th " + tdstyle + "></th>"); sb.Append("<th " + tdstyle + ">Location</th>"); sb.Append("<th " + tdstyle + ">Date</th>"); sb.Append("<th " + tdstyle + ">Expense Type</th>"); sb.Append("<th " + tdstyle + ">Currency</th>"); sb.Append("<th " + tdstyle + ">Employee Pay</th>"); sb.Append("<th " + tdstyle + ">Company Pay</th>"); sb.Append("<th " + tdstyle + ">Collection Station</th>"); sb.Append("<th " + tdstyle + ">Remark</th></tr></thead>"); sb.Append("<tbody>"); decimal ptotal = 0; decimal ctotal = 0; string sqldetail = "select t2.SAccountName,t1.* from ETraveleDetail t1 left join AccoundCode t2 on t2.SAccountCode=t1.AccountCode where t1.[No]='" + hdTravelRequestID.Value.ToString() + "'"; DataTable dtdetail = new DataTable(); dtdetail = dbc.GetData("eReimbursement", sqldetail); for (int i = 0; i < dtdetail.Rows.Count; i++) { sb.Append("<tr><th " + tdstyle + ">" + (i + 1).ToString() + "</th>"); sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[i]["Tocity"].ToString() + "</td>"); string tdate = dtdetail.Rows[i]["Tdate"].ToString() == "" ? "" : Convert.ToDateTime(dtdetail.Rows[i]["Tdate"].ToString()).ToString("yyyy/MM/dd"); sb.Append("<td " + tdstyle + ">" + tdate + "</td>"); sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[i]["SAccountName"].ToString() + "</td>"); sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[i]["Cur"].ToString() + "</td>"); sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[i]["Pamount"].ToString() + "</td>"); sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[i]["Camount"].ToString() + "</td>"); sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[i]["TSation"].ToString() + "</td>"); sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[i]["AccountDes"].ToString() + "</td></tr>"); ptotal += dtdetail.Rows[i]["Pamount"].ToString() == "" ? 0 : Convert.ToDecimal(dtdetail.Rows[i]["Pamount"].ToString()); ctotal += dtdetail.Rows[i]["Camount"].ToString() == "" ? 0 : Convert.ToDecimal(dtdetail.Rows[i]["Camount"].ToString()); } sb.Append("</tbody>"); sb.Append("<tfoot><tr>"); sb.Append("<th " + tdstyle + ">Total:</th>"); sb.Append("<td " + tdstyle + "></td>"); sb.Append("<td " + tdstyle + "></td>"); sb.Append("<td " + tdstyle + "></td>"); sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[0]["Cur"].ToString() + "</td>"); sb.Append("<td " + tdstyle + ">" + ptotal.ToString() + "</td>"); sb.Append("<td " + tdstyle + ">" + ctotal.ToString() + "</td>"); sb.Append("<td " + tdstyle + "></td>"); sb.Append("<td " + tdstyle + "></td>"); sb.Append("</tr></tfoot></table></div><br />"); StringBuilder sb1 = new StringBuilder(); sb1.Append("<div><span " + divstyle + ">Approval Flow:</span>"); for (int i = 0; i < dtMail.Rows.Count; i++) { if (i == 0) { sb1.Append("<div " + divstyleCurrent + ">" + (i + 1).ToString() + ".Current Approver:" + dtMail.Rows[i]["Approver"].ToString() + "</div>"); } else { sb1.Append("<div " + divstyle + ">" + (i + 1).ToString() + ".Approver:" + dtMail.Rows[i]["Approver"].ToString() + "</div>"); } } sb1.Append("</div><br />"); sb.Append(sb1.ToString()); string url = "http://" + Request.Url.Authority + "/Approve.aspx"; sb.Append("<div><a href=\"" + url + "?FlowID=" + dtMail.Rows[0]["FlowID"].ToString() + "\" style=\"color: #0000FF\">Click here to visit Dimerco eReimbursement.</a></div>"); sb.Append("</div>"); mail.Body = sb.ToString(); mail.Send(); } }
protected void Save(object sender, DirectEventArgs e) { DateTime dtnull = new DateTime(1, 1, 1, 0, 0, 0); cs.DBCommand dbc = new cs.DBCommand(); //检查是否已经为该申请人设置过审批人 string sqlCheckFlow = "select * from GroupFlow where GID=(select GID from GroupUsers where UserID='" + cbxOwner.Text + "')"; DataTable dtCheckFlow = dbc.GetData("eReimbursement", sqlCheckFlow); if (dtCheckFlow.Rows.Count < 1) { ErrorHandle("请先设置审批人."); return; } string para = e.ExtraParams[0].Value; if (para == "ND")//保存并申请 { if (hdTravelRequestID.Value.ToString() == "")//直接新增申请,不通过草稿 { string word = "[No],[Person],[Station],[Department],[ReportFile],[Tamount],[Pamout],[Camount],[CreadedBy],[CreadedDate],[Attach],[Remark],[Bdate],[Edate],[PersonID],[CreadedByID]"; string value = ""; value += "'" + labelStation.Text + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString().PadLeft(2, '0') + "',";//edit value += "'" + X.GetValue("cbxOwner") + "',"; value += "'" + labelStation.Text + "',"; value += "'" + labelDepartment.Text + "',";//edit value += "'" + hdReport.Value.ToString() + "',"; value += hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString(); value += "," + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); value += "," + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); value += ",'" + Session["UserName"].ToString() + "'";//edit value += ",'" + DateTime.Now.ToString() + "',"; value += "'" + hdScanFile.Value.ToString() + "',"; value += "'" + txtRemark.Text + "',"; string Bdate = ""; if (dfBdate.SelectedDate != dtnull) { Bdate = dfBdate.SelectedDate.ToString(); } value += Bdate == "" ? "null," : "'" + Bdate + "',"; string Edate = ""; if (dfEdate.SelectedDate != dtnull) { Edate = dfEdate.SelectedDate.ToString(); } value += Edate == "" ? "null" : "'" + Edate + "'"; value += ",'" + cbxOwner.Text + "'"; value += ",'" + Session["UserID"].ToString() + "'"; string updatesql = "insert into ETravel (" + word + ") values(" + value + ");update ETravel set [No]=[No]+convert(varchar,ID)+'T' where ID=@@IDENTITY;select [msg]=convert(varchar,ID)+','+[No] from ETravel where ID=@@IDENTITY"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert"); //操作Flow表 string sqlGetGroupFlowData = "select * from GroupFlow where GID=(select GID from GroupUsers where UserID='" + cbxOwner.Text + "')"; DataTable dtGroupFlowData = new DataTable(); dtGroupFlowData = dbc.GetData("eReimbursement", sqlGetGroupFlowData); string rows = ""; for (int i = 0; i < dtGroupFlowData.Rows.Count; i++) { string wordflow = "[No],[Type],[Station],[Department],[Person],[CreadedBy],[CreatedDate],[Tamount],[Step],[Status],[Approver],[ApproverID],[Remark],[RequestID]"; if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { wordflow += ",[Active]"; } string valueflow = ""; valueflow += "'" + newid.Split(',')[1] + "',"; valueflow += "'T',"; valueflow += "'" + labelStation.Text + "',"; valueflow += "'" + labelDepartment.Text + "',"; valueflow += "'" + X.GetValue("cbxOwner") + "',"; valueflow += "'" + Session["UserName"].ToString() + "',"; valueflow += "'" + DateTime.Now.ToString() + "',"; valueflow += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ","; valueflow += dtGroupFlowData.Rows[i]["FlowNo"].ToString() + ","; valueflow += "1,"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUser"].ToString() + "',"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUserid"].ToString() + "',"; valueflow += "'" + txtRemark.Text + "',"; valueflow += "'" + newid.Split(',')[0] + "'"; if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { valueflow += ",1"; } string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); } if (newid == "-1" || rows == "-1" || rows == "") { ErrorHandle("Data Error."); return; } else { hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID hdTravelRequestNo.Value = newid.Split(',')[1];//新增后记录No Panel3.Title = "差旅费申请单:" + newid.Split(',')[1]; UpdateMSG("保存申请单:" + newid.Split(',')[1] + "成功."); } // } else//由草稿升级为正式申请 { string updatesql = "update ETravel set [Person]='" + X.GetValue("cbxOwner"); updatesql += "',[Station]='" + labelStation.Text; updatesql += "',[Department]='" + labelDepartment.Text; updatesql += "',[ReportFile]='" + hdReport.Value.ToString(); updatesql += "',[Tamount]=" + (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString()); updatesql += ",[Pamout]=" + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); updatesql += ",[Camount]=" + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); updatesql += ",[Remark]='" + txtRemark.Text + "'"; updatesql += ",[Attach]='" + hdScanFile.Value.ToString() + "'"; updatesql += ",[Type]=0"; updatesql += ",[PersonID]='" + cbxOwner.Text + "'"; string oldno = hdTravelRequestNo.Value.ToString(); string newno = hdTravelRequestNo.Value.ToString().Substring(0, hdTravelRequestNo.Value.ToString().Length - 1); updatesql += ",[No]='" + newno + "',"; updatesql += "[CreadedDate]='" + DateTime.Now.ToString() + "',"; updatesql += "[CreadedBy]='" + Session["UserName"].ToString() + "',"; updatesql += "[CreadedByID]='" + Session["UserID"].ToString() + "'"; string Bdate = ""; if (dfBdate.SelectedDate != dtnull) { Bdate = dfBdate.SelectedDate.ToString(); } updatesql += Bdate == "" ? ",Bdate=null" : ",Bdate='" + Bdate + "'"; string Edate = ""; if (dfEdate.SelectedDate != dtnull) { Edate = dfEdate.SelectedDate.ToString(); } updatesql += Edate == "" ? ",Edate=null" : ",Edate='" + Edate + "'"; updatesql += " where ID=" + hdTravelRequestID.Value.ToString(); string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); //操作Flow表 string sqlDeleteEflow = "delete from Eflow where [No]='" + oldno + "'"; string deleterows = dbc.UpdateData("eReimbursement", sqlDeleteEflow, "Update"); string sqlGetGroupFlowData = "select * from GroupFlow where GID=(select GID from GroupUsers where UserID='" + cbxOwner.Text + "')"; DataTable dtGroupFlowData = new DataTable(); dtGroupFlowData = dbc.GetData("eReimbursement", sqlGetGroupFlowData); string rows = ""; for (int i = 0; i < dtGroupFlowData.Rows.Count; i++) { string wordflow = "[No],[Type],[Station],[Department],[Person],[CreadedBy],[CreatedDate],[Tamount],[Step],[Status],[Approver],[ApproverID],[Remark],[RequestID]"; if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { wordflow += ",[Active]"; } string valueflow = ""; valueflow += "'" + newno + "',"; valueflow += "'T',"; valueflow += "'" + labelStation.Text + "',"; valueflow += "'" + labelDepartment.Text + "',"; valueflow += "'" + X.GetValue("cbxOwner") + "',"; valueflow += "'" + Session["UserName"].ToString() + "',"; valueflow += "'" + DateTime.Now.ToString() + "',"; valueflow += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ","; valueflow += dtGroupFlowData.Rows[i]["FlowNo"].ToString() + ","; valueflow += "1,"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUser"].ToString() + "',"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUserid"].ToString() + "',"; valueflow += "'" + txtRemark.Text + "'"; valueflow += "," + hdTravelRequestID.Value.ToString(); if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { valueflow += ",1"; } string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); } // if (newid == "-1" || rows == "-1" || rows == "") { ErrorHandle("Data Error."); return; } else { hdTravelRequestNo.Value = newno; Panel3.Title = "差旅费申请单:" + newno; UpdateMSG("保存申请单:" + hdTravelRequestNo.Value.ToString() + "成功."); } } X.AddScript("btnGeteLeave.disable();btnEditDetail.disable();btnNewDetail.disable();btnSaveDraft.disable();btnSaveAndSend.disable();"); } else//保存草稿 { if (hdTravelRequestID.Value.ToString() != "")//由链接进入的草稿更新 { string updatesql = "update ETravel set [Person]='" + X.GetValue("cbxOwner"); updatesql += "',[Station]='" + labelStation.Text; updatesql += "',[Department]='" + labelDepartment.Text; updatesql += "',[ReportFile]='" + hdReport.Value.ToString(); updatesql += "',[Tamount]=" + (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString()); updatesql += ",[Pamout]=" + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); updatesql += ",[Camount]=" + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); updatesql += ",[Remark]='" + txtRemark.Text + "'"; updatesql += ",[Attach]='" + hdScanFile.Value.ToString() + "'"; updatesql += ",[PersonID]='" + cbxOwner.Text + "'"; string Bdate = ""; if (dfBdate.SelectedDate != dtnull) { Bdate = dfBdate.SelectedDate.ToString(); } updatesql += Bdate == "" ? ",Bdate=null" : ",Bdate='" + Bdate + "'"; string Edate = ""; if (dfEdate.SelectedDate != dtnull) { Edate = dfEdate.SelectedDate.ToString(); } updatesql += Edate == "" ? ",Edate=null" : ",Edate='" + Edate + "'"; updatesql += " where ID=" + hdTravelRequestID.Value.ToString(); string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); //更新Eflow表 string sqlupdateflow = "update Eflow set [Station]='" + labelStation.Text + "',"; sqlupdateflow += "[Department]='" + labelDepartment.Text + "',"; sqlupdateflow += "[Person]='" + X.GetValue("cbxOwner") + "',"; sqlupdateflow += "[Tamount]=" + (hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ","); sqlupdateflow += "[Remark]='" + txtRemark.Text + "'"; sqlupdateflow += " where [No]='" + hdTravelRequestNo.Value.ToString() + "'"; string rows = dbc.UpdateData("eReimbursement", sqlupdateflow, "Update"); if (newid == "-1" || rows != "1") { ErrorHandle("Data Error."); return; } else { //hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID //Panel3.Title = "差旅费申请单:" + newid.Split(',')[1]; //X.AddScript("GridPanel2.submitData();"); UpdateMSG("保存草稿:" + hdTravelRequestNo.Value.ToString() + "成功."); } } else//如果ID为空则判断为新增草稿 { string word = "[No],[Person],[Station],[Department],[ReportFile],[Tamount],[Pamout],[Camount],[Attach],[Remark],[Bdate],[Edate],[Type],[PersonID]"; string value = ""; value += "'" + labelStation.Text + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString().PadLeft(2, '0') + "',";//edit value += "'" + X.GetValue("cbxOwner") + "',"; value += "'" + "GCR" + "',"; value += "'" + "MIS" + "',";//edit value += "'" + hdReport.Value.ToString() + "',"; value += (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString()); value += "," + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); value += "," + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); value += ",'" + hdScanFile.Value.ToString() + "',"; value += "'" + txtRemark.Text + "',"; string Bdate = ""; if (dfBdate.SelectedDate != dtnull) { Bdate = dfBdate.SelectedDate.ToString(); } value += Bdate == "" ? "null," : "'" + Bdate + "',"; string Edate = ""; if (dfEdate.SelectedDate != dtnull) { Edate = dfEdate.SelectedDate.ToString(); } value += Edate == "" ? "null," : "'" + Edate + "',"; value += "1";//标识为草稿 value += ",'" + cbxOwner.Text + "'"; string updatesql = "insert into ETravel (" + word + ") values(" + value + ");update ETravel set [No]=[No]+convert(varchar,ID)+'TD' where ID=@@IDENTITY;select [msg]=convert(varchar,ID)+','+[No] from ETravel where ID=@@IDENTITY"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert"); //操作Flow表 string wordflow = "[No],[Type],[Station],[Department],[Person],[CreadedBy],[CreatedDate],[Tamount],[Remark],[RequestID],[Active]"; string valueflow = ""; valueflow += "'" + newid.Split(',')[1] + "',"; valueflow += "'T',"; valueflow += "'" + labelStation.Text + "',"; valueflow += "'" + labelDepartment.Text + "',"; valueflow += "'" + X.GetValue("cbxOwner") + "',"; valueflow += "'" + Session["UserName"].ToString() + "',"; valueflow += "'" + DateTime.Now.ToString() + "',"; valueflow += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ","; valueflow += "'" + txtRemark.Text + "',"; valueflow += "'" + newid.Split(',')[0] + "'"; valueflow += ",1"; string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; string rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); // if (newid == "-1" || rows == "-1") { ErrorHandle("Data Error."); return; } else { hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID hdTravelRequestNo.Value = newid.Split(',')[1];//新增后记录No Panel3.Title = "差旅费申请单草稿:" + newid.Split(',')[1]; UpdateMSG("新增草稿:" + newid.Split(',')[1] + "成功."); } } } }
public void SaveAll(string type, string detail, string MailList) { if (Request.Cookies.Get("eReimUserID") == null || hdUser.Value.ToString() != Request.Cookies.Get("eReimUserID").Value) { if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { X.AddScript("Ext.Msg.show({ title: '提示', msg: '登录超时或已切换用户,将刷新页面.', buttons: { ok: 'Ok' }, fn: function (btn) { window.location.reload(); } });"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Time out or user changed,reloading...', buttons: { ok: 'Ok' }, fn: function (btn) { window.location.reload(); } });"); } return; } //页面权限 //DateTime dtnull = new DateTime(1, 1, 1, 0, 0, 0); cs.DBCommand dbc = new cs.DBCommand(); //string userid = cbxPerson.Value.ToString(); //160113 垫付人 string userid = (hdOnBehalf.Value == null || hdOnBehalf.Value.ToString() == "") ? cbxPerson.Value.ToString() : hdOnBehalf.Value.ToString(); string ostation = ""; string para = type; string station = ""; string department = ""; string station_applyperson = ""; string costcenter_applyperson = ""; string dept_applyperson = ""; DataSet ds_apply = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(cbxPerson.Value.ToString()); if (ds_apply.Tables[0].Rows.Count == 1) { DataTable dt_apply = ds_apply.Tables[0]; dept_applyperson = dt_apply.Rows[0]["DepartmentName"].ToString(); station_applyperson = dt_apply.Rows[0]["stationCode"].ToString(); costcenter_applyperson = dt_apply.Rows[0]["CostCenter"].ToString(); } DataSet ds2 = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(userid); if (ds2.Tables[0].Rows.Count == 1) { DataTable dt1 = ds2.Tables[0]; //dpt = dt1.Rows[0]["DepartmentName"].ToString(); station = dt1.Rows[0]["stationCode"].ToString(); ostation = dt1.Rows[0]["CostCenter"].ToString(); department = dt1.Rows[0]["CRPDepartmentName"].ToString(); } decimal rate = 1;//记录用户币种与预算站点币种汇率 string CurLocal = DIMERCO.SDK.Utilities.LSDK.GetStationCurrencyByCode(station_applyperson); //检查是否本地维护过特殊币种 DataTable dttemp = new DataTable(); string sqltemp = "select * from ESUSER where Userid='" + cbxPerson.Value.ToString() + "'"; dttemp = dbc.GetData("eReimbursement", sqltemp); if (dttemp.Rows.Count > 0) { CurLocal = dttemp.Rows[0]["Currency"].ToString();//如果单独设置了币种 } string CurBudget = DIMERCO.SDK.Utilities.LSDK.GetStationCurrencyByCode(ostation); //预算 DataTable dtbudget = new DataTable(); dtbudget.Columns.Add("Year", typeof(System.String));//区分跨年情况 dtbudget.Columns.Add("EName", typeof(System.String)); dtbudget.Columns.Add("COACode", typeof(System.String)); dtbudget.Columns.Add("Current", typeof(System.Decimal)); dtbudget.Columns.Add("PU", typeof(System.Decimal)); dtbudget.Columns.Add("PB", typeof(System.Decimal)); dtbudget.Columns.Add("PPercent", typeof(System.Decimal)); dtbudget.Columns.Add("DU", typeof(System.Decimal)); dtbudget.Columns.Add("DB", typeof(System.Decimal)); dtbudget.Columns.Add("DPercent", typeof(System.Decimal)); dtbudget.Columns.Add("SU", typeof(System.Decimal)); dtbudget.Columns.Add("SB", typeof(System.Decimal)); dtbudget.Columns.Add("SPercent", typeof(System.Decimal)); //StoreBudget添加Field //StoreBudget.Reader[0].Fields.Clear(); StoreBudget.Reader[0].Fields.Add("Year", RecordFieldType.String); StoreBudget.Reader[0].Fields.Add("EName", RecordFieldType.String); StoreBudget.Reader[0].Fields.Add("COACode", RecordFieldType.String); StoreBudget.Reader[0].Fields.Add("Current", RecordFieldType.String); StoreBudget.Reader[0].Fields.Add("PU", RecordFieldType.String); StoreBudget.Reader[0].Fields.Add("PB", RecordFieldType.String); StoreBudget.Reader[0].Fields.Add("PPercent", RecordFieldType.String); StoreBudget.Reader[0].Fields.Add("DU", RecordFieldType.String); StoreBudget.Reader[0].Fields.Add("DB", RecordFieldType.String); StoreBudget.Reader[0].Fields.Add("DPercent", RecordFieldType.String); StoreBudget.Reader[0].Fields.Add("SU", RecordFieldType.String); StoreBudget.Reader[0].Fields.Add("SB", RecordFieldType.String); StoreBudget.Reader[0].Fields.Add("SPercent", RecordFieldType.String); //基础数据 DataTable dtA = new DataTable(); dtA.Columns.Add("EName", typeof(System.String)); dtA.Columns.Add("COACode", typeof(System.String)); dtA.Columns.Add("Amount", typeof(System.Decimal)); dtA.Columns.Add("Year", typeof(System.String)); JavaScriptSerializer ser = new JavaScriptSerializer(); List<DetailExpense> Details = ser.Deserialize<List<DetailExpense>>(detail); if (Details.Count < 1) { if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { X.AddScript("Ext.Msg.show({ title: '提示', msg: '请至少填写一项费用.', buttons: { ok: 'Ok' }, fn: function (btn) { } });"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Please input at least one expense item.', buttons: { ok: 'Ok' }, fn: function (btn) { } });"); } return; } foreach (DetailExpense details in Details) { DataRow dr = dtA.NewRow(); string EName = ""; if (details.Type == "E") { EName = "Entertainment"; } else if (details.Type == "T") { EName = "Transportation"; } else if (details.Type == "C") { EName = "Communication"; } else { EName = details.COAName; } dr["EName"] = EName; dr["COACode"] = details.AccountCode; dr["Amount"] = Convert.ToDecimal(details.Amount); if (details.Type == "C") { dr["Year"] = Convert.ToDateTime(details.EffectTime).Year.ToString(); } else { dr["Year"] = Convert.ToDateTime(details.Tdate).Year.ToString(); } dtA.Rows.Add(dr); } //合计数据 DataTable dtB = new DataTable(); dtB.Columns.Add("EName", typeof(System.String)); dtB.Columns.Add("COACode", typeof(System.String)); dtB.Columns.Add("Amount", typeof(System.Decimal)); dtB.Columns.Add("Year", typeof(System.String)); for (int i = 0; i < dtA.Rows.Count; i++) { bool er = false; for (int j = 0; j < dtB.Rows.Count; j++) { if (dtB.Rows[j]["COACode"].ToString() == dtA.Rows[i]["COACode"].ToString() && dtB.Rows[j]["Year"].ToString() == dtA.Rows[i]["Year"].ToString())//已有记录 { er = true; break; } } if (!er)//不存在重复记录 { DataRow dr = dtB.NewRow(); dr["EName"] = dtA.Rows[i]["EName"].ToString(); dr["COACode"] = dtA.Rows[i]["COACode"].ToString(); dr["Amount"] = dtA.Compute("Sum(Amount)", "Year = " + dtA.Rows[i]["Year"].ToString() + " and COACode = " + dtA.Rows[i]["COACode"].ToString()); dr["Year"] = dtA.Rows[i]["Year"].ToString(); dtB.Rows.Add(dr); } } string accountcode = ""; for (int g = 0; g < dtB.Rows.Count; g++) { if (Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()) != 0) { DataRow dr = dtbudget.NewRow(); dr["EName"] = dtB.Rows[g]["EName"].ToString(); dr["Current"] = Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()); dr["COACode"] = dtB.Rows[g]["COACode"].ToString(); dr["Year"] = dtB.Rows[g]["Year"].ToString(); accountcode = dtB.Rows[g]["COACode"].ToString(); DataTable dtC = new DataTable(); dtC = Comm.RtnEB(userid, department, ostation, ostation, accountcode, dtB.Rows[g]["Year"].ToString(), "1"); for (int i = 0; i < dtC.Rows.Count; i++) { if (dtC.Rows[i]["Type"].ToString() == "全年个人") { dr["PU"] = Convert.ToDecimal(dtC.Rows[i]["Used"].ToString()); dr["PB"] = Convert.ToDecimal(dtC.Rows[i]["Budget"].ToString()); } else if (dtC.Rows[i]["Type"].ToString() == "全年部门") { dr["DU"] = Convert.ToDecimal(dtC.Rows[i]["Used"].ToString()); dr["DB"] = Convert.ToDecimal(dtC.Rows[i]["Budget"].ToString()); } else if (dtC.Rows[i]["Type"].ToString() == "全年站点") { dr["SU"] = Convert.ToDecimal(dtC.Rows[i]["Used"].ToString()); dr["SB"] = Convert.ToDecimal(dtC.Rows[i]["Budget"].ToString()); //if (Convert.ToDecimal(dtC.Rows[i]["Budget"].ToString())==0) //{ // //输出预算内容 // DIMERCO.SDK.MailMsg mail = new DIMERCO.SDK.MailMsg(); // mail.FromDispName = "eReimbursement"; // mail.From = "*****@*****.**"; // mail.To = "*****@*****.**"; // mail.Title = "eReimbursement Bug" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:dd"); // string body = "<div>" + userid + "<br/>"; // body += "department:" + department + "<br/>"; // body += "ostation:" + ostation + "<br/>"; // body += "accountcode:" + accountcode + "<br/>"; // body += "year:" + dtB.Rows[g]["Year"].ToString() + "<br/>"; // body += "budget EB:" + dtC.Rows[i]["Budget"].ToString() + "<br/></div>"; // mail.Body = body; // mail.Send(); //} } } dtbudget.Rows.Add(dr); } } //bool UnBudget = false; //14/10/24 int budgetnew = 1;//默认预算内,0 - UnBudgeted,-1 Over-Budgeted,-2,UnBudgeted & Over-Budgeted bool PB = false, DB = false, SB = false; //计算%,取得名称,转为本地币种汇率,增加列记录Currency为邮件准备 dtbudget.Columns.Add("Currency", typeof(System.String)); for (int i = 0; i < dtbudget.Rows.Count; i++) { dtbudget.Rows[i]["Currency"] = CurLocal; if (Convert.ToDecimal(dtbudget.Rows[i]["PB"].ToString()) != 0)//如果Budget不为0,则计算% { decimal PPercent = System.Math.Round(Convert.ToDecimal(dtbudget.Rows[i]["PU"].ToString()) * 100 / Convert.ToDecimal(dtbudget.Rows[i]["PB"].ToString()), 2); decimal PPercent1 = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[i]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[i]["PU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[i]["PB"].ToString()), 2); dtbudget.Rows[i]["PPercent"] = PPercent; //if (!UnBudget) //{ // if (PPercent1 > 100) // { // UnBudget = true; // } //} //14/10/24 if (PPercent1 > 100) { if (budgetnew == 0) { budgetnew = -2; } else if (budgetnew == 1) { budgetnew = -1; } } if (!PB) { PB = true; } } if (Convert.ToDecimal(dtbudget.Rows[i]["DB"].ToString()) != 0)//如果Budget不为0,则计算% { decimal DPercent = System.Math.Round(Convert.ToDecimal(dtbudget.Rows[i]["DU"].ToString()) * 100 / Convert.ToDecimal(dtbudget.Rows[i]["DB"].ToString()), 2); decimal DPercent1 = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[i]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[i]["DU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[i]["DB"].ToString()), 2); dtbudget.Rows[i]["DPercent"] = DPercent; //if (!UnBudget) //{ // if (DPercent1 > 100) // { // UnBudget = true; // } //} //14/10/24 if (DPercent1 > 100) { if (budgetnew == 0) { budgetnew = -2; } else if (budgetnew == 1) { budgetnew = -1; } } if (!DB) { DB = true; } } if (Convert.ToDecimal(dtbudget.Rows[i]["SB"].ToString()) != 0)//如果Budget不为0,则计算% { decimal SPercent = System.Math.Round(Convert.ToDecimal(dtbudget.Rows[i]["SU"].ToString()) * 100 / Convert.ToDecimal(dtbudget.Rows[i]["SB"].ToString()), 2); decimal SPercent1 = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[i]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[i]["SU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[i]["SB"].ToString()), 2); dtbudget.Rows[i]["SPercent"] = SPercent; //if (!UnBudget) //{ // if (SPercent1 > 100) // { // UnBudget = true; // } //} //14/10/24 if (SPercent1 > 100) { if (budgetnew == 0) { budgetnew = -2; } else if (budgetnew == 1) { budgetnew = -1; } } if (!SB) { SB = true; } } if (Convert.ToDecimal(dtbudget.Rows[i]["PB"].ToString()) == 0 && Convert.ToDecimal(dtbudget.Rows[i]["DB"].ToString()) == 0 && Convert.ToDecimal(dtbudget.Rows[i]["SB"].ToString()) == 0) { //如果个人,部门,站点,全未分配预算,则判断为Un-Budget //if (!UnBudget) //{ // UnBudget = true; //} //14/10/24 if (budgetnew == -1) { budgetnew = -2; } else if (budgetnew == 1) { budgetnew = 0; } } if (CurLocal != CurBudget) { rate = DIMERCO.SDK.Utilities.LSDK.GetBudgetConverRate(CurLocal, CurBudget, Convert.ToInt16(dtbudget.Rows[i]["Year"].ToString())); if (rate == -1) { if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { X.AddScript("Ext.Msg.show({ title: '提示', msg: '汇率异常,请联系Local MIS.', buttons: { ok: 'Ok' }, fn: function (btn) { window.location.reload(); } });"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Currency rate error,please contact Local MIS.', buttons: { ok: 'Ok' }, fn: function (btn) { window.location.reload(); } });"); } return; } } dtbudget.Rows[i]["PU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[i]["PU"].ToString()), 2); dtbudget.Rows[i]["PB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[i]["PB"].ToString()), 2); dtbudget.Rows[i]["DU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[i]["DU"].ToString()), 2); dtbudget.Rows[i]["DB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[i]["DB"].ToString()), 2); dtbudget.Rows[i]["SU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[i]["SU"].ToString()), 2); dtbudget.Rows[i]["SB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[i]["SB"].ToString()), 2); } //160113 垫付人 if (hdOnBehalf.Value == null || hdOnBehalf.Value.ToString()=="") { //添加数据列 var cm = GridPanelBudget.ColumnModel; cm.Columns.Clear(); cm.Columns.Add(new Column { DataIndex = "EName", Header = "Expense Item", Sortable = false, Resizable = false, MenuDisabled = true, Width = 160 }); cm.Columns.Add(new Column { DataIndex = "Current", Header = "Current", Renderer = new Renderer { Fn = "GetNumber" }, Sortable = false, Resizable = false, MenuDisabled = true, Width = 100 }); cm.Columns.Add(new Column { DataIndex = "Year", Header = "Budget Year", Sortable = false, Resizable = false, MenuDisabled = true, Width = 100 }); //显示个人预算部分 if (PB) { cm.Columns.Add(new Column { DataIndex = "PU", Header = "Personal Used", Renderer = new Renderer { Fn = "GetNumber" }, Sortable = false, Resizable = false, MenuDisabled = true, Width = 100 }); cm.Columns.Add(new Column { DataIndex = "PB", Header = "Personal Budget", Renderer = new Renderer { Fn = "GetNumber" }, Sortable = false, Resizable = false, MenuDisabled = true, Width = 100 }); cm.Columns.Add(new Column { DataIndex = "PPercent", Header = "%(Used/Budget)", Renderer = new Renderer { Fn = "GetNumberPercent" }, Sortable = false, Resizable = false, MenuDisabled = true, Width = 100 }); } if (DB) { cm.Columns.Add(new Column { DataIndex = "DU", Header = "Department Used", Renderer = new Renderer { Fn = "GetNumber" }, Sortable = false, Resizable = false, MenuDisabled = true, Width = 100 }); cm.Columns.Add(new Column { DataIndex = "DB", Header = "Department Budget", Renderer = new Renderer { Fn = "GetNumber" }, Sortable = false, Resizable = false, MenuDisabled = true, Width = 100 }); cm.Columns.Add(new Column { DataIndex = "DPercent", Header = "%(Used/Budget)", Renderer = new Renderer { Fn = "GetNumberPercent" }, Sortable = false, Resizable = false, MenuDisabled = true, Width = 100 }); } if (SB) { cm.Columns.Add(new Column { DataIndex = "SU", Header = "Unit Used", Renderer = new Renderer { Fn = "GetNumber" }, Sortable = false, Resizable = false, MenuDisabled = true, Width = 100 }); cm.Columns.Add(new Column { DataIndex = "SB", Header = "Unit Budget", Renderer = new Renderer { Fn = "GetNumber" }, Sortable = false, Resizable = false, MenuDisabled = true, Width = 100 }); cm.Columns.Add(new Column { DataIndex = "SPercent", Header = "%(Used/Budget)", Renderer = new Renderer { Fn = "GetNumberPercent" }, Sortable = false, Resizable = false, MenuDisabled = true, Width = 100 }); } StoreBudget.DataSource = dtbudget; StoreBudget.DataBind(); GridPanelBudget.Render(); } //return; //处理抄送人列表 string CCMailList = ""; JavaScriptSerializer serd = new JavaScriptSerializer(); List<CCMailList> CCMailList1 = serd.Deserialize<List<CCMailList>>(MailList); foreach (CCMailList mail in CCMailList1) { CCMailList += mail.Email + ","; } CCMailList = CCMailList.Length > 0 ? CCMailList.Substring(0, CCMailList.Length - 1) : ""; //处理申请单为Budget或Un-Budget //如果有费用大类超过预算,则提示询问 //if (UnBudget)// //{ // X.AddScript("Ext.Msg.show({ title: 'Message', msg: '部分费用超过预算,仅可按<a style=\"color:Red\">Un-Budget</a>流程申请,是否接受?', buttons: { ok: 'Ok',cancel:'No' }, fn: function (btn) { if(btn=='ok'){SaveAllNew();}else{return false;} } });"); //} //14/10/24 if (budgetnew != 1) { if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { if (budgetnew == 0) { //输出预算内容 //DIMERCO.SDK.MailMsg mail = new DIMERCO.SDK.MailMsg(); //mail.FromDispName = "eReimbursement"; //mail.From = "*****@*****.**"; //mail.To = "*****@*****.**"; //mail.Title = "eReimbursement Bug" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:dd"); //string body = "<div>" + Request.Cookies.Get("eReimUserID").Value + "<br/>Common<br/><table>"; //body += "<tr>"; //for (int j = 0; j < dtbudget.Columns.Count; j++) //{ // body += "<th>" + dtbudget.Columns[j].ColumnName + "</th>"; //} //body += "</tr>"; //for (int i = 0; i < dtbudget.Rows.Count; i++) //{ // body += "<tr>"; // for (int j = 0; j < dtbudget.Columns.Count; j++) // { // body += "<td>" + dtbudget.Rows[i][j].ToString() + "</td>"; // } // body += "</tr>"; //} //body += "</table></div>"; //mail.Body = body; //mail.Send(); //160224 如果为垫付,则直接保存不提示预算情况 if (hdOnBehalf.Value != null && hdOnBehalf.Value.ToString() != "") { X.AddScript("SaveAllNew('" + budgetnew.ToString() + "');"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: '未设置预算,仅可按<a style=\"color:Red\">UnBudgeted</a>流程申请,是否接受?', buttons: { ok: 'Ok',cancel:'No' }, fn: function (btn) { if(btn=='ok'){SaveAllNew('" + budgetnew.ToString() + "');}else{return false;} } });"); } } else if (budgetnew == -1) { //160224 如果为垫付,则直接保存不提示预算情况 if (hdOnBehalf.Value != null && hdOnBehalf.Value.ToString() != "") { X.AddScript("SaveAllNew('" + budgetnew.ToString() + "');"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: '超出预算,仅可按<a style=\"color:Red\">Over-Budgeted</a>流程申请,是否接受?', buttons: { ok: 'Ok',cancel:'No' }, fn: function (btn) { if(btn=='ok'){SaveAllNew('" + budgetnew.ToString() + "');}else{return false;} } });"); } } else if (budgetnew == -2) { //160224 如果为垫付,则直接保存不提示预算情况 if (hdOnBehalf.Value != null && hdOnBehalf.Value.ToString() != "") { X.AddScript("SaveAllNew('" + budgetnew.ToString() + "');"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: '未设置预算或超出预算,仅可按<a style=\"color:Red\">UnBudgeted</a>流程申请,是否接受?', buttons: { ok: 'Ok',cancel:'No' }, fn: function (btn) { if(btn=='ok'){SaveAllNew('" + budgetnew.ToString() + "');}else{return false;} } });"); } } } else { if (budgetnew == 0) { //输出预算内容 //DIMERCO.SDK.MailMsg mail = new DIMERCO.SDK.MailMsg(); //mail.FromDispName = "eReimbursement"; //mail.From = "*****@*****.**"; //mail.To = "*****@*****.**"; //mail.Title = "eReimbursement Bug" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:dd"); //string body = "<div>" + Request.Cookies.Get("eReimUserID").Value + "<br/>Common<br/><table>"; //body += "<tr>"; //for (int j = 0; j < dtbudget.Columns.Count; j++) //{ // body += "<th>" + dtbudget.Columns[j].ColumnName + "</th>"; //} //body += "</tr>"; //for (int i = 0; i < dtbudget.Rows.Count; i++) //{ // body += "<tr>"; // for (int j = 0; j < dtbudget.Columns.Count; j++) // { // body += "<td>" + dtbudget.Rows[i][j].ToString() + "</td>"; // } // body += "</tr>"; //} //body += "</table></div>"; //mail.Body = body; //mail.Send(); //160224 如果为垫付,则直接保存不提示预算情况 if (hdOnBehalf.Value != null && hdOnBehalf.Value.ToString() != "") { X.AddScript("SaveAllNew('" + budgetnew.ToString() + "');"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: '<a style=\"color:Red\">UnBudgeted</a>,do you accept?', buttons: { ok: 'Ok',cancel:'No' }, fn: function (btn) { if(btn=='ok'){SaveAllNew('" + budgetnew.ToString() + "');}else{return false;} } });"); } } else if (budgetnew == -1) { //160224 如果为垫付,则直接保存不提示预算情况 if (hdOnBehalf.Value != null && hdOnBehalf.Value.ToString() != "") { X.AddScript("SaveAllNew('" + budgetnew.ToString() + "');"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: '<a style=\"color:Red\">Over-Budgeted</a>,do you accept?', buttons: { ok: 'Ok',cancel:'No' }, fn: function (btn) { if(btn=='ok'){SaveAllNew('" + budgetnew.ToString() + "');}else{return false;} } });"); } } else if (budgetnew == -2) { //160224 如果为垫付,则直接保存不提示预算情况 if (hdOnBehalf.Value != null && hdOnBehalf.Value.ToString() != "") { X.AddScript("SaveAllNew('" + budgetnew.ToString() + "');"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: '<a style=\"color:Red\">UnBudgeted</a>,do you accept?', buttons: { ok: 'Ok',cancel:'No' }, fn: function (btn) { if(btn=='ok'){SaveAllNew('" + budgetnew.ToString() + "');}else{return false;} } });"); } } } return; } else//全在预算内,按预算内申请流程处理 { //判断是否设置了审批流程 string sqlCheckFlow = ""; DataTable dtGroupFlowData = new DataTable(); if (hdOnBehalf.Value == null || hdOnBehalf.Value.ToString() == "") { //sqlCheckFlow = "select * from GroupFlow where [Type]!=2 and GID=(select GID from GroupUsers where UserID='" + cbxPerson.Value.ToString() + "')"; sqlCheckFlow = "select * from GroupFlow where [Type]!=2 and GID=(select GID from GroupUsers where UserID='" + cbxPerson.Value.ToString() + "') order by FlowNo"; dtGroupFlowData = dbc.GetData("eReimbursement", sqlCheckFlow); if (dtGroupFlowData.Rows.Count < 1) { if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { ErrorHandleNojump("请先设置审批人."); } else { ErrorHandleNojump("Not set Approve flow,please contact with Local MIS."); } return; } } else//160113 垫付审批流程 { sqlCheckFlow = "select UserID,t1.* from (select * from GroupFlow where [Type]!=2 and GID in (select GID from GroupUsers where UserID='" + cbxPerson.Value.ToString() + "' or UserID='" + hdOnBehalf.Value.ToString() + "')) t1 left join (select * from GroupUsers where UserID='" + cbxPerson.Value.ToString() + "' or UserID='" + hdOnBehalf.Value.ToString() + "') t2 on t2.Gid=t1.Gid order by Gid,FlowNo"; //sqlCheckFlow = "select * from GroupFlow where [Type]!=2 and GID in (select GID from GroupUsers where UserID='" + cbxPerson.Value.ToString() + "' or UserID='"+hdOnBehalf.Value.ToString()+"') order by Gid,FlowNo"; dtGroupFlowData = dbc.GetData("eReimbursement", sqlCheckFlow); if (dtGroupFlowData.Rows.Count < 1) { if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { ErrorHandleNojump("请先设置审批人."); } else { ErrorHandleNojump("Not set Approve flow,please contact with Local MIS."); } return; } } if (type == "ND")//保存并申请 { string onbehalfname = ""; if (hdOnBehalf.Value != null && hdOnBehalf.Value.ToString() != "") { DataSet dsCon = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(hdOnBehalf.Value.ToString()); onbehalfname = dsCon.Tables[0].Rows[0]["fullName"].ToString(); } if (hdTravelRequestID.Value.ToString() != "") { if (LabelMonth.Text != DateTime.Now.Month.ToString() && DateTime.Now.Day > 5) { if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { X.AddScript("Ext.Msg.show({ title: '提示', msg: '草稿已过期,请新增本月草稿.', buttons: { ok: 'Ok' }, fn: function (btn) { return false; } });"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Draft expired,please add new draft.', buttons: { ok: 'Ok' }, fn: function (btn) { return false; } });"); } return; } string oldno = hdTravelRequestNo.Value.ToString(); string newno = hdTravelRequestNo.Value.ToString().Substring(0, hdTravelRequestNo.Value.ToString().Length - 1); string updatesql = "update Ecommon set [No]='" + newno + "',"; updatesql += "Person='" + X.GetValue("cbxPerson") + "',"; updatesql += "PersonID='" + cbxPerson.Text + "',"; updatesql += "Department='" + dept_applyperson + "',"; updatesql += "Station='" + station_applyperson + "',"; updatesql += "Tamount=" + (hdSum.Value.ToString() == "" ? "null," : ("'" + hdSum.Value.ToString() + "',")); updatesql += "[Type]=0,"; updatesql += "CreadedBy='" + Request.Cookies.Get("eReimUserName").Value + "',"; updatesql += "CreatedByID='" + Request.Cookies.Get("eReimUserID").Value + "',"; updatesql += "CreadedDate='" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "',"; updatesql += "Remark='" + txtRemark.Text.Replace("'", "''") + "',"; updatesql += "CCMailList='" + CCMailList + "'"; updatesql += ",[Budget]=1"; updatesql += ",Station2='" + ostation + "'"; //160123 垫付 if (hdOnBehalf.Value != null && hdOnBehalf.Value.ToString() != "") { updatesql += ",OnBehalfPersonID='" + hdOnBehalf.Value.ToString() + "'"; DataSet dsE = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(hdOnBehalf.Value.ToString()); if (dsE.Tables[0].Rows.Count == 1) { DataTable dtE = dsE.Tables[0]; onbehalfname = dtE.Rows[0]["fullName"].ToString(); updatesql += ",OnBehalfPersonName='" + dtE.Rows[0]["fullName"].ToString() + "'"; updatesql += ",OnBehalfPersonUnit='" + dtE.Rows[0]["stationCode"].ToString() + "'"; updatesql += ",OnBehalfPersonDept='" + dtE.Rows[0]["CRPDepartmentName"].ToString() + "'"; updatesql += ",OnBehalfPersonCostCenter='" + dtE.Rows[0]["CostCenter"].ToString() + "'"; } } updatesql += " where ID=" + hdTravelRequestID.Value.ToString(); string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); //操作Flow表 string sqlDeleteEflow = "delete from Eflow where [Type]='G' and [RequestID]='" + hdTravelRequestID.Value.ToString() + "'"; string deleterows = dbc.UpdateData("eReimbursement", sqlDeleteEflow, "Update"); string rows = ""; //160113 垫付 if (hdOnBehalf.Value != null && hdOnBehalf.Value.ToString() != "") { string personid = cbxPerson.Value.ToString(); string onbehalfid = hdOnBehalf.Value.ToString(); DataTable dtOnbehalf = new DataTable(); dtOnbehalf.Columns.Add("FlowNo"); dtOnbehalf.Columns.Add("FlowUser"); dtOnbehalf.Columns.Add("FlowUserid"); dtOnbehalf.Columns.Add("Fn"); dtOnbehalf.Columns.Add("PersonID"); //160905垫付流程变更 2016090007E DataRow drConfirm = dtOnbehalf.NewRow(); drConfirm["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); drConfirm["FlowUser"] = onbehalfname; drConfirm["FlowUserid"] = hdOnBehalf.Value.ToString(); drConfirm["Fn"] = "Confirm"; drConfirm["PersonID"] = hdOnBehalf.Value.ToString(); dtOnbehalf.Rows.Add(drConfirm); //被垫付人的Verifier if (dtGroupFlowData.Select("UserID='" + onbehalfid + "' and Fn='Verifier'").Count() >= 1) { DataRow drold = dtGroupFlowData.Select("UserID='" + onbehalfid + "' and Fn='Verifier'")[(dtGroupFlowData.Select("UserID='" + onbehalfid + "' and Fn='Verifier'").Count()) - 1]; if (dtOnbehalf.Select("FlowUserid='" + drold["FlowUserID"].ToString() + "'").Count() < 1) { DataRow dr = dtOnbehalf.NewRow(); dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); dr["FlowUser"] = drold["FlowUser"].ToString(); dr["FlowUserid"] = drold["FlowUserID"].ToString(); dr["Fn"] = "Verifier"; dr["PersonID"] = drold["UserID"].ToString(); dtOnbehalf.Rows.Add(dr); } } //被垫付人的Apporver if (dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)").Count() >= 1) { int flowcount = dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)").Count(); if (flowcount >= 2) { DataRow drold = dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)")[(dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)").Count()) - 2]; if (dtOnbehalf.Select("FlowUserid='" + drold["FlowUserID"].ToString() + "'").Count() < 1) { DataRow dr = dtOnbehalf.NewRow(); dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); dr["FlowUser"] = drold["FlowUser"].ToString(); dr["FlowUserid"] = drold["FlowUserID"].ToString(); dr["Fn"] = "Apporver"; dr["PersonID"] = drold["UserID"].ToString(); dtOnbehalf.Rows.Add(dr); } DataRow drold1 = dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)")[(dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)").Count()) - 1]; if (dtOnbehalf.Select("FlowUserid='" + drold1["FlowUserID"].ToString() + "'").Count() < 1) { DataRow dr = dtOnbehalf.NewRow(); dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); dr["FlowUser"] = drold1["FlowUser"].ToString(); dr["FlowUserid"] = drold1["FlowUserID"].ToString(); dr["Fn"] = "Apporver"; dr["PersonID"] = drold1["UserID"].ToString(); dtOnbehalf.Rows.Add(dr); } } else { DataRow drold = dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)")[(dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)").Count()) - 1]; if (dtOnbehalf.Select("FlowUserid='" + drold["FlowUserID"].ToString() + "'").Count() < 1) { DataRow dr = dtOnbehalf.NewRow(); dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); dr["FlowUser"] = drold["FlowUser"].ToString(); dr["FlowUserid"] = drold["FlowUserID"].ToString(); dr["Fn"] = "Apporver"; dr["PersonID"] = drold["UserID"].ToString(); dtOnbehalf.Rows.Add(dr); } } } //160905垫付流程变更 2016090007E ////垫付人的Apporver //if (dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Apporver' or Fn is null)").Count() >= 1) //{ // DataRow dr = dtOnbehalf.NewRow(); // DataRow drold = dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Apporver' or Fn is null)")[(dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Apporver' or Fn is null)").Count()) - 1]; // dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); // dr["FlowUser"] = drold["FlowUser"].ToString(); // dr["FlowUserid"] = drold["FlowUserID"].ToString(); // dr["Fn"] = "Apporver"; // dr["PersonID"] = drold["UserID"].ToString(); // dtOnbehalf.Rows.Add(dr); //} //垫付人的Issuer if (dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Issuer' or Fn is null)").Count() >= 1) { DataRow drold = dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Issuer' or Fn is null)")[(dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Issuer' or Fn is null)").Count()) - 1]; if (dtOnbehalf.Select("FlowUserid='" + drold["FlowUserID"].ToString() + "'").Count() < 1) { DataRow dr = dtOnbehalf.NewRow(); dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); dr["FlowUser"] = drold["FlowUser"].ToString(); dr["FlowUserid"] = drold["FlowUserID"].ToString(); dr["Fn"] = "Issuer"; dr["PersonID"] = drold["UserID"].ToString(); dtOnbehalf.Rows.Add(dr); } } for (int j = 0; j < dtOnbehalf.Rows.Count; j++) { string wordflow = "[RequestID],[Type],[Step],[Status],[Approver],[ApproverID],[FlowFn],PersonID"; //if (dtGroupFlowData.Rows[j]["FlowNo"].ToString() == "1") //{ // wordflow += ",[Active]"; //} if (j == 0) { wordflow += ",[Active]"; } string valueflow = ""; valueflow += "'" + hdTravelRequestID.Value.ToString() + "',"; valueflow += "'G',"; valueflow += dtOnbehalf.Rows[j]["FlowNo"].ToString() + ","; valueflow += "1,"; valueflow += "'" + dtOnbehalf.Rows[j]["FlowUser"].ToString() + "',"; valueflow += "'" + dtOnbehalf.Rows[j]["FlowUserid"].ToString() + "'"; valueflow += ",'" + (dtOnbehalf.Rows[j]["Fn"].ToString() == "" ? "Apporver" : dtOnbehalf.Rows[j]["Fn"].ToString()) + "'"; valueflow += ",'" + dtOnbehalf.Rows[j]["PersonID"].ToString() + "'"; //if (dtGroupFlowData.Rows[j]["FlowNo"].ToString() == "1") //{ // valueflow += ",1"; //} if (j == 0) { valueflow += ",1"; } string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); } } else { for (int j = 0; j < dtGroupFlowData.Rows.Count; j++) { string wordflow = "[RequestID],[Type],[Step],[Status],[Approver],[ApproverID],[FlowFn]"; //if (dtGroupFlowData.Rows[j]["FlowNo"].ToString() == "1") //{ // wordflow += ",[Active]"; //} if (j == 0) { wordflow += ",[Active]"; } string valueflow = ""; valueflow += "'" + hdTravelRequestID.Value.ToString() + "',"; valueflow += "'G',"; valueflow += dtGroupFlowData.Rows[j]["FlowNo"].ToString() + ","; valueflow += "1,"; valueflow += "'" + dtGroupFlowData.Rows[j]["FlowUser"].ToString() + "',"; valueflow += "'" + dtGroupFlowData.Rows[j]["FlowUserid"].ToString() + "'"; valueflow += ",'" + (dtGroupFlowData.Rows[j]["Fn"].ToString() == "" ? "Apporver" : dtGroupFlowData.Rows[j]["Fn"].ToString()) + "'"; //if (dtGroupFlowData.Rows[j]["FlowNo"].ToString() == "1") //{ // valueflow += ",1"; //} if (j == 0) { valueflow += ",1"; } string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); } } if (newid == "-1" || rows == "-1" || rows == "") { ErrorHandle("Data Error"); } else { hdTravelRequestNo.Value = newno; // || !SendMail(hdTravelRequestID.Value.ToString()) if (!SaveDetail(detail, CurLocal, ostation, CurBudget) || !SendMailNew(dtbudget))//Budget未计入Current,%需重新计算 { ErrorHandle("Data Error."); return; } if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { Panel3.Title = "通用申请单:" + newno; UpdateMSG("保存通用申请单:" + hdTravelRequestNo.Value.ToString() + "成功."); } else { Panel3.Title = "General Expense Form: " + newno; UpdateMSG("Saved General Expense Form: " + hdTravelRequestNo.Value.ToString() + " successfully."); } } } else//直接申请 { string word = "[No],[Person],[PersonID],[Department],[Station],[ApplyDate],[Remark],[Tamount],[CreadedBy],[CreatedByID],[CreadedDate],[CCMailList],[Budget],[Station2]"; //160123 垫付 if (hdOnBehalf.Value != null && hdOnBehalf.Value.ToString() != "") { word += ",OnBehalfPersonID,OnBehalfPersonName,OnBehalfPersonUnit,OnBehalfPersonDept,OnBehalfPersonCostCenter"; } string value = ""; value += "'" + station_applyperson + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString().PadLeft(2, '0') + "',";//edit value += "'" + X.GetValue("cbxPerson") + "',"; value += "'" + cbxPerson.Text + "',"; value += "'" + dept_applyperson + "',"; value += "'" + station_applyperson + "',"; value += "'" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "',"; value += "'" + txtRemark.Text.Replace("'", "''") + "',"; value += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ","; value += "'" + Request.Cookies.Get("eReimUserName").Value + "',";//session value += "'" + Request.Cookies.Get("eReimUserID").Value + "',";//session value += "'" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "'"; value += ",'" + CCMailList + "'"; value += ",1"; value += ",'" + ostation + "'"; //160123 垫付 if (hdOnBehalf.Value != null && hdOnBehalf.Value.ToString() != "") { value += ",'" + hdOnBehalf.Value.ToString() + "'"; DataSet dsE = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(hdOnBehalf.Value.ToString()); if (dsE.Tables[0].Rows.Count == 1) { DataTable dtE = dsE.Tables[0]; value += ",'" + dtE.Rows[0]["fullName"].ToString() + "'"; value += ",'" + dtE.Rows[0]["stationCode"].ToString() + "'"; value += ",'" + dtE.Rows[0]["CRPDepartmentName"].ToString() + "'"; value += ",'" + dtE.Rows[0]["CostCenter"].ToString() + "'"; } } string updatesql = "insert into Ecommon (" + word + ") values(" + value + ");update Ecommon set [No]=[No]+(select [MonthCount]=right('0000'+cast(count(ID) as varchar(10)),4) from Ecommon where (month(ApplyDate) in (select month(ApplyDate) from Ecommon where [ID]=@@IDENTITY) and (year(ApplyDate) in (select year(ApplyDate) from Ecommon where [ID]=@@IDENTITY)) and Station=(select Station from Ecommon where ID=@@IDENTITY)))+'G' where ID=@@IDENTITY;select [msg]=convert(varchar,ID)+','+[No] from Ecommon where ID=@@IDENTITY"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert"); string rows = ""; //160113 垫付 if (hdOnBehalf.Value != null && hdOnBehalf.Value.ToString() != "") { string personid = cbxPerson.Value.ToString(); string onbehalfid = hdOnBehalf.Value.ToString(); DataTable dtOnbehalf = new DataTable(); dtOnbehalf.Columns.Add("FlowNo"); dtOnbehalf.Columns.Add("FlowUser"); dtOnbehalf.Columns.Add("FlowUserid"); dtOnbehalf.Columns.Add("Fn"); dtOnbehalf.Columns.Add("PersonID"); //160905垫付流程变更 2016090007E DataRow drConfirm = dtOnbehalf.NewRow(); drConfirm["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); drConfirm["FlowUser"] = onbehalfname; drConfirm["FlowUserid"] = hdOnBehalf.Value.ToString(); drConfirm["Fn"] = "Confirm"; drConfirm["PersonID"] = hdOnBehalf.Value.ToString(); dtOnbehalf.Rows.Add(drConfirm); //被垫付人的Verifier if (dtGroupFlowData.Select("UserID='" + onbehalfid + "' and Fn='Verifier'").Count() >= 1) { DataRow drold = dtGroupFlowData.Select("UserID='" + onbehalfid + "' and Fn='Verifier'")[(dtGroupFlowData.Select("UserID='" + onbehalfid + "' and Fn='Verifier'").Count()) - 1]; if (dtOnbehalf.Select("FlowUserid='" + drold["FlowUserID"].ToString() + "'").Count() < 1) { DataRow dr = dtOnbehalf.NewRow(); dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); dr["FlowUser"] = drold["FlowUser"].ToString(); dr["FlowUserid"] = drold["FlowUserID"].ToString(); dr["Fn"] = "Verifier"; dr["PersonID"] = drold["UserID"].ToString(); dtOnbehalf.Rows.Add(dr); } } //被垫付人的Apporver if (dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)").Count() >= 1) { int flowcount = dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)").Count(); if (flowcount >= 2) { DataRow drold = dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)")[(dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)").Count()) - 2]; if (dtOnbehalf.Select("FlowUserid='" + drold["FlowUserID"].ToString() + "'").Count() < 1) { DataRow dr = dtOnbehalf.NewRow(); dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); dr["FlowUser"] = drold["FlowUser"].ToString(); dr["FlowUserid"] = drold["FlowUserID"].ToString(); dr["Fn"] = "Apporver"; dr["PersonID"] = drold["UserID"].ToString(); dtOnbehalf.Rows.Add(dr); } DataRow drold1 = dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)")[(dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)").Count()) - 1]; if (dtOnbehalf.Select("FlowUserid='" + drold1["FlowUserID"].ToString() + "'").Count() < 1) { DataRow dr = dtOnbehalf.NewRow(); dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); dr["FlowUser"] = drold1["FlowUser"].ToString(); dr["FlowUserid"] = drold1["FlowUserID"].ToString(); dr["Fn"] = "Apporver"; dr["PersonID"] = drold1["UserID"].ToString(); dtOnbehalf.Rows.Add(dr); } } else { DataRow drold = dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)")[(dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)").Count()) - 1]; if (dtOnbehalf.Select("FlowUserid='" + drold["FlowUserID"].ToString() + "'").Count() < 1) { DataRow dr = dtOnbehalf.NewRow(); dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); dr["FlowUser"] = drold["FlowUser"].ToString(); dr["FlowUserid"] = drold["FlowUserID"].ToString(); dr["Fn"] = "Apporver"; dr["PersonID"] = drold["UserID"].ToString(); dtOnbehalf.Rows.Add(dr); } } } //160905垫付流程变更 2016090007E ////垫付人的Apporver //if (dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Apporver' or Fn is null)").Count() >= 1) //{ // DataRow dr = dtOnbehalf.NewRow(); // DataRow drold = dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Apporver' or Fn is null)")[(dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Apporver' or Fn is null)").Count()) - 1]; // dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); // dr["FlowUser"] = drold["FlowUser"].ToString(); // dr["FlowUserid"] = drold["FlowUserID"].ToString(); // dr["Fn"] = "Apporver"; // dr["PersonID"] = drold["UserID"].ToString(); // dtOnbehalf.Rows.Add(dr); //} //垫付人的Issuer if (dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Issuer' or Fn is null)").Count() >= 1) { DataRow drold = dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Issuer' or Fn is null)")[(dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Issuer' or Fn is null)").Count()) - 1]; if (dtOnbehalf.Select("FlowUserid='" + drold["FlowUserID"].ToString() + "'").Count() < 1) { DataRow dr = dtOnbehalf.NewRow(); dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); dr["FlowUser"] = drold["FlowUser"].ToString(); dr["FlowUserid"] = drold["FlowUserID"].ToString(); dr["Fn"] = "Issuer"; dr["PersonID"] = drold["UserID"].ToString(); dtOnbehalf.Rows.Add(dr); } } ////被垫付人的Verifier //if (dtGroupFlowData.Select("UserID='" + onbehalfid + "' and Fn='Verifier'").Count() >= 1) //{ // DataRow dr = dtOnbehalf.NewRow(); // DataRow drold = dtGroupFlowData.Select("UserID='" + onbehalfid + "' and Fn='Verifier'")[(dtGroupFlowData.Select("UserID='" + onbehalfid + "' and Fn='Verifier'").Count()) - 1]; // dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); // dr["FlowUser"] = drold["FlowUser"].ToString(); // dr["FlowUserid"] = drold["FlowUserid"].ToString(); // dr["Fn"] = "Verifier"; // dr["PersonID"] = drold["UserID"].ToString(); // dtOnbehalf.Rows.Add(dr); //} ////被垫付人的Apporver //if (dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)").Count() >= 1) //{ // int flowcount = dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)").Count(); // if (flowcount >= 2) // { // DataRow dr = dtOnbehalf.NewRow(); // DataRow drold = dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)")[(dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)").Count()) - 2]; // dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); // dr["FlowUser"] = drold["FlowUser"].ToString(); // dr["FlowUserid"] = drold["FlowUserid"].ToString(); // dr["Fn"] = "Apporver"; // dr["PersonID"] = drold["UserID"].ToString(); // dtOnbehalf.Rows.Add(dr); // dr = dtOnbehalf.NewRow(); // drold = dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)")[(dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)").Count()) - 1]; // dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); // dr["FlowUser"] = drold["FlowUser"].ToString(); // dr["FlowUserid"] = drold["FlowUserid"].ToString(); // dr["Fn"] = "Apporver"; // dr["PersonID"] = drold["UserID"].ToString(); // dtOnbehalf.Rows.Add(dr); // } // else // { // DataRow dr = dtOnbehalf.NewRow(); // DataRow drold = dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)")[(dtGroupFlowData.Select("UserID='" + onbehalfid + "' and (Fn='Apporver' or Fn is null)").Count()) - 1]; // dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); // dr["FlowUser"] = drold["FlowUser"].ToString(); // dr["FlowUserid"] = drold["FlowUserid"].ToString(); // dr["Fn"] = "Apporver"; // dr["PersonID"] = drold["UserID"].ToString(); // dtOnbehalf.Rows.Add(dr); // } //} ////垫付人的Apporver //if (dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Apporver' or Fn is null)").Count() >= 1) //{ // DataRow dr = dtOnbehalf.NewRow(); // DataRow drold = dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Apporver' or Fn is null)")[(dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Apporver' or Fn is null)").Count()) - 1]; // dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); // dr["FlowUser"] = drold["FlowUser"].ToString(); // dr["FlowUserid"] = drold["FlowUserid"].ToString(); // dr["Fn"] = "Apporver"; // dr["PersonID"] = drold["UserID"].ToString(); // dtOnbehalf.Rows.Add(dr); //} ////垫付人的Issuer //if (dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Issuer' or Fn is null)").Count() >= 1) //{ // DataRow dr = dtOnbehalf.NewRow(); // DataRow drold = dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Issuer' or Fn is null)")[(dtGroupFlowData.Select("UserID='" + personid + "' and (Fn='Issuer' or Fn is null)").Count()) - 1]; // dr["FlowNo"] = (dtOnbehalf.Rows.Count + 1).ToString(); // dr["FlowUser"] = drold["FlowUser"].ToString(); // dr["FlowUserid"] = drold["FlowUserid"].ToString(); // dr["Fn"] = "Issuer"; // dr["PersonID"] = drold["UserID"].ToString(); // dtOnbehalf.Rows.Add(dr); //} for (int j = 0; j < dtOnbehalf.Rows.Count; j++) { string wordflow = "[RequestID],[Type],[Step],[Status],[Approver],[ApproverID],[FlowFn],PersonID"; //if (dtGroupFlowData.Rows[j]["FlowNo"].ToString() == "1") //{ // wordflow += ",[Active]"; //} if (j == 0) { wordflow += ",[Active]"; } string valueflow = ""; valueflow += "'" + newid.Split(',')[0] + "',"; valueflow += "'G',"; valueflow += dtOnbehalf.Rows[j]["FlowNo"].ToString() + ","; valueflow += "1,"; valueflow += "'" + dtOnbehalf.Rows[j]["FlowUser"].ToString() + "',"; valueflow += "'" + dtOnbehalf.Rows[j]["FlowUserid"].ToString() + "'"; valueflow += ",'" + (dtOnbehalf.Rows[j]["Fn"].ToString() == "" ? "Apporver" : dtOnbehalf.Rows[j]["Fn"].ToString()) + "'"; valueflow += ",'" + dtOnbehalf.Rows[j]["PersonID"].ToString() + "'"; if (j == 0) { valueflow += ",1"; } string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); } } else { for (int j = 0; j < dtGroupFlowData.Rows.Count; j++) { string wordflow = "[RequestID],[Type],[Step],[Status],[Approver],[ApproverID],[FlowFn]"; if (j == 0) { wordflow += ",[Active]"; } string valueflow = ""; valueflow += "'" + newid.Split(',')[0] + "',"; valueflow += "'G',"; valueflow += dtGroupFlowData.Rows[j]["FlowNo"].ToString() + ","; valueflow += "1,"; valueflow += "'" + dtGroupFlowData.Rows[j]["FlowUser"].ToString() + "',"; valueflow += "'" + dtGroupFlowData.Rows[j]["FlowUserid"].ToString() + "'"; valueflow += ",'" + (dtGroupFlowData.Rows[j]["Fn"].ToString() == "" ? "Apporver" : dtGroupFlowData.Rows[j]["Fn"].ToString()) + "'"; if (j == 0) { valueflow += ",1"; } string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); } } if (newid == "-1" || rows == "-1" || rows == "") { ErrorHandle("Data Error"); } else { hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID hdTravelRequestNo.Value = newid.Split(',')[1];//新增后记录No if (!SaveDetail(detail, CurLocal, ostation, CurBudget) || !SendMailNew(dtbudget)) { ErrorHandle("Data Error."); return; } if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { Panel3.Title = "通用申请单:" + newid.Split(',')[1]; UpdateMSG("保存通用申请单:" + hdTravelRequestNo.Value.ToString() + "成功."); } else { Panel3.Title = "General Expense Form: " + newid.Split(',')[1]; UpdateMSG("Saved General Expense Form: " + hdTravelRequestNo.Value.ToString() + " successfully."); } } } X.AddScript("btnSaveDraft.disable();btnSaveAndSend.disable();btnExport.enable();btnCC.disable();btnE.disable();btnT.disable();btnC.disable();btnO.disable();"); } else//保存草稿信息时不保存Budget状态,仅正式申请时保存 { if (hdTravelRequestID.Value.ToString() != "")//由链接进入的草稿更新 { if (LabelMonth.Text != DateTime.Now.Month.ToString() && DateTime.Now.Day > 5)//检查日期是否超期 { if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { X.AddScript("Ext.Msg.show({ title: '提示', msg: '草稿已过期,请新增本月草稿.', buttons: { ok: 'Ok' }, fn: function (btn) { return false; } });"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Draft expired,please add new draft.', buttons: { ok: 'Ok' }, fn: function (btn) { return false; } });"); } return; } string updatesql = "update Ecommon set [Person]='" + X.GetValue("cbxPerson") + "',"; updatesql += "[Station]='" + station_applyperson + "',"; updatesql += "[Department]='" + dept_applyperson + "',"; updatesql += "[Tamount]=" + (hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString()) + ","; updatesql += "[Remark]='" + txtRemark.Text.Replace("'", "''") + "',"; updatesql += "[PersonID]='" + cbxPerson.Text + "',"; updatesql += "CCMailList='" + CCMailList + "'"; updatesql += ",Budget=1"; updatesql += ",Station2='" + ostation + "'"; //160123 垫付 if (hdOnBehalf.Value != null && hdOnBehalf.Value.ToString() != "") { updatesql += ",OnBehalfPersonID='" + hdOnBehalf.Value.ToString() + "'"; DataSet dsE = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(hdOnBehalf.Value.ToString()); if (dsE.Tables[0].Rows.Count == 1) { DataTable dtE = dsE.Tables[0]; updatesql += ",OnBehalfPersonName='" + dtE.Rows[0]["fullName"].ToString() + "'"; updatesql += ",OnBehalfPersonUnit='" + dtE.Rows[0]["stationCode"].ToString() + "'"; updatesql += ",OnBehalfPersonDept='" + dtE.Rows[0]["CRPDepartmentName"].ToString() + "'"; updatesql += ",OnBehalfPersonCostCenter='" + dtE.Rows[0]["CostCenter"].ToString() + "'"; } } updatesql += " where ID=" + hdTravelRequestID.Value.ToString(); string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); if (newid == "-1") { ErrorHandle("Data Error."); } else { if (!SaveDetail(detail, CurLocal, ostation, CurBudget)) { ErrorHandle("Data Error."); return; } if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { UpdateMSG("保存通用申请单草稿: " + hdTravelRequestNo.Value.ToString() + "成功.<br />请核对后点击申请按钮."); } else { UpdateMSG("Saved General Expense Draft: " + hdTravelRequestNo.Value.ToString() + " successfully.<br />Please check up and click Apply button."); } } } else//如果ID为空则判断为新增草稿 { string word = "[No],[Person],[PersonID],[Department],[Station],[ApplyDate],[Remark],[Tamount],[Type],[CCMailList],[Budget],[Station2]"; //160115 垫付 if (hdOnBehalf.Value != null && hdOnBehalf.Value.ToString() != "") { word += ",OnBehalfPersonID,OnBehalfPersonName,OnBehalfPersonUnit,OnBehalfPersonDept,OnBehalfPersonCostCenter"; } string value = ""; value += "'" + station_applyperson + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString().PadLeft(2, '0') + "',";//edit value += "'" + X.GetValue("cbxPerson") + "',"; value += "'" + cbxPerson.Text + "',"; value += "'" + dept_applyperson + "',"; value += "'" + station_applyperson + "',"; value += "'" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "',"; value += "'" + txtRemark.Text.Replace("'", "''") + "',"; value += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ","; value += "1,"; value += "'" + CCMailList + "'"; value += ",1"; value += ",'" + ostation + "'"; //160123 垫付 if (hdOnBehalf.Value != null && hdOnBehalf.Value.ToString() != "") { value += ",'" + hdOnBehalf.Value.ToString() + "'"; DataSet dsE = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(hdOnBehalf.Value.ToString()); if (dsE.Tables[0].Rows.Count == 1) { DataTable dtE = dsE.Tables[0]; value += ",'" + dtE.Rows[0]["fullName"].ToString() + "'"; value += ",'" + dtE.Rows[0]["stationCode"].ToString() + "'"; value += ",'" + dtE.Rows[0]["CRPDepartmentName"].ToString() + "'"; value += ",'" + dtE.Rows[0]["CostCenter"].ToString() + "'"; } } string updatesql = "insert into Ecommon (" + word + ") values(" + value + ");update Ecommon set [No]=[No]+(select [MonthCount]=right('0000'+cast(count(ID) as varchar(10)),4) from Ecommon where (month(ApplyDate) in (select month(ApplyDate) from Ecommon where [ID]=@@IDENTITY) and (year(ApplyDate) in (select year(ApplyDate) from Ecommon where [ID]=@@IDENTITY)) and Station=(select Station from Ecommon where ID=@@IDENTITY)))+'GD' where ID=@@IDENTITY;select [msg]=convert(varchar,ID)+','+[No] from Ecommon where ID=@@IDENTITY"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert"); //操作Flow表 string wordflow = "[RequestID],[Type],[Active]"; string valueflow = ""; valueflow += "'" + newid.Split(',')[0] + "',"; valueflow += "'G',"; valueflow += "1"; string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; string rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); // if (newid == "-1" || rows == "-1") { ErrorHandle("Data Error."); } else { hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID hdTravelRequestNo.Value = newid.Split(',')[1];//新增后记录No if (!SaveDetail(detail, CurLocal, ostation, CurBudget)) { ErrorHandle("Data Error."); return; } if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { Panel3.Title = "通用申请单草稿: " + newid.Split(',')[1]; UpdateMSG("新增通用申请单草稿: " + newid.Split(',')[1] + "成功.<br />请核对后点击申请按钮."); } else { Panel3.Title = "General Expense Draft: " + newid.Split(',')[1]; UpdateMSG("Added General Expense Draft: " + newid.Split(',')[1] + " successfully.<br />Please check up and click Apply button."); } } } } } X.AddScript("cbxPerson.disable();cbxOnBehalfName.disable();"); }
/// <summary> /// 保存草稿明细,不保存Budget状态 /// </summary> /// <param name="detailjson">json数据</param> /// <returns>保存是否成功</returns> protected bool SaveDetail(string detailjson,string localcur,string costcenter,string costcentercur) { JavaScriptSerializer ser = new JavaScriptSerializer(); List<DetailExpense> Details = ser.Deserialize<List<DetailExpense>>(detailjson); //DateTime dtnull = new DateTime(1, 1, 1, 0, 0, 0); cs.DBCommand dbc = new cs.DBCommand(); //取得币种转换值 //删除现有数据 string deletesql = "delete from EeommonDetail where [No]='" + hdTravelRequestID.Value.ToString() + "'"; string newid1 = dbc.UpdateData("eReimbursement", deletesql, "Update"); if (newid1 == "-1") { ErrorHandle("Data Error."); return false; } foreach (DetailExpense detail in Details) { //新增 string word = "[No],[Type],[AccountName],[AccountCode],[AccountDes],[Cur],[Amount],[TSation],[Tdate],[Fcity],[Tcity],[Attach],[EType],[EcompanyCode],[Ecompany],[Eperson],[Epurpos],[Creadedby],[CreaedeDate],[EffectTime],[ETypeCode],[Department1],[PaymentType],[PaymentDate],[Vendor],[Budget],[CostCenterAmount]"; string value = ""; value += "'" + hdTravelRequestID.Value.ToString() + "',"; value += "'" + detail.Type + "',"; value += "'" + detail.AccountName + "',"; value += "'" + detail.AccountCode + "',"; value += detail.AccountDes == null ? "null," : ("'" + detail.AccountDes.Replace("'", "''") + "',"); value += "'" + localcur + "',"; value += detail.Amount == "" ? "null," : (detail.Amount + ","); value += "'" + costcenter + "',"; if (detail.Type == "C") { value += "'" + Convert.ToDateTime(detail.EffectTime).ToString("yyyy/MM/dd") + "',"; } else { value += detail.Tdate == "" ? "null," : ("'" + detail.Tdate + "',"); } value += detail.Fcity == null ? "null," : ("'" + detail.Fcity.Replace("'", "''") + "',"); value += detail.Tcity == null ? "null," : ("'" + detail.Tcity.Replace("'", "''") + "',"); value += "'" + detail.Attach + "',"; value += detail.EType == null ? "null," : ("'" + detail.EType.Replace("'", "''") + "',"); value += detail.EcompanyCode == null ? "null," : ("'" + detail.EcompanyCode.Replace("'", "''") + "',"); value += detail.Ecompany == null ? "null," : ("'" + detail.Ecompany.Replace("'", "''") + "',"); value += detail.Eperson == null ? "null," : ("'" + detail.Eperson.Replace("'", "''") + "',"); value += detail.Epurpos == null ? "null," : ("'" + detail.Epurpos.Replace("'", "''") + "',"); value += "'" + Request.Cookies.Get("eReimUserID").Value + "',";//Session value += "'" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "',"; value += detail.EffectTime == null ? "null," : ("'" + detail.EffectTime.Replace("'", "''") + "',"); value += detail.ETypeCode == null ? "null" : ("'" + detail.ETypeCode.Replace("'", "''") + "'"); value += ",'" + detail.Department1 + "'"; value += ",'" + detail.PaymentType + "'"; value += detail.PaymentDate == "" ? ",null" : (",'" + detail.PaymentDate + "'"); value += ",'" + detail.Vendor + "'"; if (detail.Budget) { value += ",0,"; } else { value += ",1,"; } //处理成本中心币种金额 //DataSet ds2 = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(cbxPerson.Text); //string station = ""; //if (ds2.Tables[0].Rows.Count == 1) //{ // DataTable dt1 = ds2.Tables[0]; // station = dt1.Rows[0]["stationCode"].ToString(); // DataTable dttemp = new DataTable(); // string sqltemp = "select * from ESUSER where Userid='" + cbxPerson.Text + "'"; // dttemp = dbc.GetData("eReimbursement", sqltemp); // if (dttemp.Rows.Count > 0) // { // station = dttemp.Rows[0]["Station"].ToString(); // } //} //string Tstation = detail.TSation == "" ? station : detail.TSation; decimal re = GetRateByUserID(DateTime.Now.Year, true, localcur,costcentercur); string ccamount = String.IsNullOrEmpty(detail.Amount) ? "0" : (System.Math.Round(Convert.ToDecimal(detail.Amount) * re, 2)).ToString(); value += ccamount; string updatesql = "insert into EeommonDetail (" + word + ") values(" + value + ")"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); if (newid == "-1") { ErrorHandle("Data Error."); return false; } } return true; }
/// <summary> /// 区分Budget保存正式Detail /// </summary> /// <param name="detailjson">json数据</param> /// <param name="Type">Budget:1/Un-Budget:0</param> /// <returns></returns> protected bool SaveDetail2(string detailjson,string Type,string RequestID) { JavaScriptSerializer ser = new JavaScriptSerializer(); List<DetailExpense> Details = ser.Deserialize<List<DetailExpense>>(detailjson); DateTime dtnull = new DateTime(1, 1, 1, 0, 0, 0); cs.DBCommand dbc = new cs.DBCommand(); //删除现有草稿的Detail数据 string deletesql = "delete from EeommonDetail where [No]=" + RequestID; string newid1 = dbc.UpdateData("eReimbursement", deletesql, "Update"); if (newid1 == "-1") { ErrorHandle("Data Error."); return false; } if (Type == "1")//预算内 { decimal tamount = 0M; foreach (DetailExpense detail in Details) { //新增 if ((detail.BudgetCurrent == "预算内" || detail.BudgetCurrent == "In Budget") && !detail.Budget) { string word = "[No],[Type],[AccountName],[AccountCode],[AccountDes],[Cur],[Amount],[TSation],[Tdate],[Fcity],[Tcity],[Attach],[EType],[EcompanyCode],[Ecompany],[Eperson],[Epurpos],[Creadedby],[CreaedeDate],[EffectTime],[ETypeCode],[Department1],[PaymentType],[PaymentDate],[Vendor],[Budget],[BudgetCurrent],[CostCenterAmount]"; string value = ""; value += "'" + RequestID + "',"; value += "'" + detail.Type + "',"; value += "'" + detail.AccountName + "',"; value += "'" + detail.AccountCode + "',"; value += detail.AccountDes == null ? "null," : ("'" + detail.AccountDes.Replace("'", "''") + "',"); value += "'" + detail.Cur + "',"; value += detail.Amount == "" ? "null," : (detail.Amount + ","); value += "'" + detail.TSation + "',"; //value += detail.Tdate == "" ? "null," : ("'" + detail.Tdate + "',"); if (detail.Type == "C") { value += "'" + Convert.ToDateTime(detail.EffectTime).ToString("yyyy/MM/dd") + "',"; } else { value += detail.Tdate == "" ? "null," : ("'" + detail.Tdate + "',"); } value += detail.Fcity == null ? "null," : ("'" + detail.Fcity.Replace("'", "''") + "',"); value += detail.Tcity == null ? "null," : ("'" + detail.Tcity.Replace("'", "''") + "',"); value += "'" + detail.Attach + "',"; value += detail.EType == null ? "null," : ("'" + detail.EType.Replace("'", "''") + "',"); value += detail.EcompanyCode == null ? "null," : ("'" + detail.EcompanyCode.Replace("'", "''") + "',"); value += detail.Ecompany == null ? "null," : ("'" + detail.Ecompany.Replace("'", "''") + "',"); value += detail.Eperson == null ? "null," : ("'" + detail.Eperson.Replace("'", "''") + "',"); value += detail.Epurpos == null ? "null," : ("'" + detail.Epurpos.Replace("'", "''") + "',"); value += "'" + Request.Cookies.Get("eReimUserID").Value + "',";//Session value += "'" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "',"; value += detail.EffectTime == null ? "null," : ("'" + detail.EffectTime.Replace("'", "''") + "',"); value += detail.ETypeCode == null ? "null" : ("'" + detail.ETypeCode.Replace("'", "''") + "'"); value += ",'" + detail.Department1 + "'"; value += ",'" + detail.PaymentType + "'"; value += detail.PaymentDate == "" ? ",null" : (",'" + detail.PaymentDate + "'"); value += ",'" + detail.Vendor + "'"; value += ",1,1,"; //处理成本中心币种金额 DataSet ds2 = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(cbxPerson.Text); string station = ""; if (ds2.Tables[0].Rows.Count == 1) { DataTable dt1 = ds2.Tables[0]; station = dt1.Rows[0]["stationCode"].ToString(); DataTable dttemp = new DataTable(); string sqltemp = "select * from ESUSER where Userid='" + cbxPerson.Text + "'"; dttemp = dbc.GetData("eReimbursement", sqltemp); if (dttemp.Rows.Count > 0) { station = dttemp.Rows[0]["Station"].ToString(); } } string Tstation = detail.TSation == "" ? station : detail.TSation; string ccamount = Convert.ToDecimal(System.Math.Round(Convert.ToDouble(detail.Amount) * (DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(station) / DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(Tstation)), 2)).ToString(); value += detail.Amount == "" ? "null" : ccamount; string updatesql = "insert into EeommonDetail (" + word + ") values(" + value + ")"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); if (newid == "-1") { ErrorHandle("Data Error."); return false; } tamount += Convert.ToDecimal(detail.Amount); } } string ecommonsql = "update Ecommon set Tamount=" + tamount + " where ID=" + RequestID; string ecommonre = dbc.UpdateData("eReimbursement", ecommonsql, "Update"); } else { decimal tamount = 0M; foreach (DetailExpense detail in Details) { //新增 if ((detail.BudgetCurrent == "超预算" || detail.BudgetCurrent == "Over Budget" || detail.BudgetCurrent == "NA") || detail.Budget) { string word = "[No],[Type],[AccountName],[AccountCode],[AccountDes],[Cur],[Amount],[TSation],[Tdate],[Fcity],[Tcity],[Attach],[EType],[EcompanyCode],[Ecompany],[Eperson],[Epurpos],[Creadedby],[CreaedeDate],[EffectTime],[ETypeCode],[Department1],[PaymentType],[PaymentDate],[Vendor],[Budget],[BudgetCurrent],[CostCenterAmount]"; string value = ""; value += "'" + RequestID + "',"; value += "'" + detail.Type + "',"; value += "'" + detail.AccountName + "',"; value += "'" + detail.AccountCode + "',"; value += detail.AccountDes == null ? "null," : ("'" + detail.AccountDes.Replace("'", "''") + "',"); value += "'" + detail.Cur + "',"; value += detail.Amount == "" ? "null," : (detail.Amount + ","); value += "'" + detail.TSation + "',"; //value += detail.Tdate == "" ? "null," : ("'" + detail.Tdate + "',"); if (detail.Type == "C") { value += "'" + Convert.ToDateTime(detail.EffectTime).ToString("yyyy/MM/dd") + "',"; } else { value += detail.Tdate == "" ? "null," : ("'" + detail.Tdate + "',"); } value += detail.Fcity == null ? "null," : ("'" + detail.Fcity.Replace("'", "''") + "',"); value += detail.Tcity == null ? "null," : ("'" + detail.Tcity.Replace("'", "''") + "',"); value += "'" + detail.Attach + "',"; value += detail.EType == null ? "null," : ("'" + detail.EType.Replace("'", "''") + "',"); value += detail.EcompanyCode == null ? "null," : ("'" + detail.EcompanyCode.Replace("'", "''") + "',"); value += detail.Ecompany == null ? "null," : ("'" + detail.Ecompany.Replace("'", "''") + "',"); value += detail.Eperson == null ? "null," : ("'" + detail.Eperson.Replace("'", "''") + "',"); value += detail.Epurpos == null ? "null," : ("'" + detail.Epurpos.Replace("'", "''") + "',"); value += "'" + Request.Cookies.Get("eReimUserID").Value + "',";//Session value += "'" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "',"; value += detail.EffectTime == null ? "null," : ("'" + detail.EffectTime.Replace("'", "''") + "',"); value += detail.ETypeCode == null ? "null" : ("'" + detail.ETypeCode.Replace("'", "''") + "'"); value += ",'" + detail.Department1 + "'"; value += ",'" + detail.PaymentType + "'"; value += detail.PaymentDate == "" ? ",null" : (",'" + detail.PaymentDate + "'"); value += ",'" + detail.Vendor + "'"; value += detail.Budget ? ",0" : ",1"; if (detail.BudgetCurrent == "超预算" || detail.BudgetCurrent == "Over Budget") { value += ",0,"; } else { value += ",-1,"; } //处理成本中心币种金额 DataSet ds2 = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(cbxPerson.Text); string station = ""; if (ds2.Tables[0].Rows.Count == 1) { DataTable dt1 = ds2.Tables[0]; station = dt1.Rows[0]["stationCode"].ToString(); DataTable dttemp = new DataTable(); string sqltemp = "select * from ESUSER where Userid='" + cbxPerson.Text + "'"; dttemp = dbc.GetData("eReimbursement", sqltemp); if (dttemp.Rows.Count > 0) { station = dttemp.Rows[0]["Station"].ToString(); } } string Tstation = detail.TSation == "" ? station : detail.TSation; string ccamount = Convert.ToDecimal(System.Math.Round(Convert.ToDouble(detail.Amount) * (DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(station) / DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(Tstation)), 2)).ToString(); value += detail.Amount == "" ? "null" : ccamount; string updatesql = "insert into EeommonDetail (" + word + ") values(" + value + ")"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); if (newid == "-1") { ErrorHandle("Data Error."); return false; } tamount += Convert.ToDecimal(detail.Amount); } } string ecommonsql = "update Ecommon set Tamount=" + tamount + " where ID=" + RequestID; string ecommonre = dbc.UpdateData("eReimbursement", ecommonsql, "Update"); } return true; }
public void SaveAll(string type, string detail, string MailList) { if (Request.Cookies.Get("eReimUserID") == null || hdUser.Value.ToString() != Request.Cookies.Get("eReimUserID").Value) { if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { X.AddScript("Ext.Msg.show({ title: '提示', msg: '已切换用户,将刷新页面.', buttons: { ok: 'Ok' }, fn: function (btn) { window.location.reload(); } });"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Current user changed,reloading...', buttons: { ok: 'Ok' }, fn: function (btn) { window.location.reload(); } });"); } return; } //如果正式申请必须上传出差报告 if (type == "ND") { if (hdReport.Value.ToString() == "") { if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { X.AddScript("Ext.Msg.show({ title: '提示', msg: '必须上传出差报告.', buttons: { ok: 'Ok' }, fn: function (btn) { return false;} });"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Please upload travel report.', buttons: { ok: 'Ok' }, fn: function (btn) {return false;} });"); } return; } } DateTime dtnull = new DateTime(1, 1, 1, 0, 0, 0); cs.DBCommand dbc = new cs.DBCommand(); string userid = cbxOwner.Value.ToString(); string ostation = ""; DataSet ds2 = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(userid); if (ds2.Tables[0].Rows.Count == 1) { DataTable dt1 = ds2.Tables[0]; //dpt = dt1.Rows[0]["DepartmentName"].ToString(); ostation = dt1.Rows[0]["stationCode"].ToString(); DataTable dttemp = new DataTable(); string sqltemp = "select * from ESUSER where Userid='" + userid + "'"; dttemp = dbc.GetData("eReimbursement", sqltemp); if (dttemp.Rows.Count > 0) { ostation = dttemp.Rows[0]["Station"].ToString(); } } //判断Budget下是否符合预算要求 if (cbxBudget.Value.ToString()=="YES") { JavaScriptSerializer ser1 = new JavaScriptSerializer(); List<DetailExpense> DetailList = ser1.Deserialize<List<DetailExpense>>(detail); for (int ig = 0; ig < DetailList.Count; ig++) { DetailExpense detailitem = DetailList[ig]; string dpt = detailitem.Department1; string tstation = detailitem.TSation == "" ? ostation : detailitem.TSation; string accountcode = detailitem.AccountCode; string Years = Convert.ToDateTime(detailitem.Tdate).Year.ToString(); string month = Convert.ToDateTime(detailitem.Tdate).Month.ToString(); DataTable dt = new DataTable(); dt = Comm.RtnEB(userid, dpt, ostation, tstation, accountcode, Years, month); if (dt != null && dt.Rows.Count > 0) { decimal stationbudget = 0, departmentbudget = 0, personbudget = 0; for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i]["Type"].ToString() == "站点") { stationbudget = Convert.ToDecimal(dt.Rows[i]["Budget"].ToString()); } } for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i]["Type"].ToString() == "部门") { departmentbudget = Convert.ToDecimal(dt.Rows[i]["Budget"].ToString()); } } for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i]["Type"].ToString() == "个人") { personbudget = Convert.ToDecimal(dt.Rows[i]["Budget"].ToString()); } } if (stationbudget == 0 && departmentbudget == 0 && personbudget == 0) { //hdBudget.Value = "0"; //ErrorHandleNojump("No budget,please check with Account."); //X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'No budget,please check with Account.', buttons: { ok: 'Ok' }, fn: function (btn) { RowSelectionModel1.selectRow("+ig.ToString()+") } });"); X.AddScript("RowSelectionModel1.selectRow(" + ig.ToString() + ")"); return; } //else //{ // hdBudget.Value = "1"; //} } else { //hdBudget.Value = "0"; ErrorHandleNojump("Data error."); return; } } //foreach (DetailExpense detailitem in DetailList) //{ //} } //return; //处理抄送人列表 string CCMailList = ""; JavaScriptSerializer ser = new JavaScriptSerializer(); List<CCMailList> CCMailList1 = ser.Deserialize<List<CCMailList>>(MailList); foreach (CCMailList mail in CCMailList1) { CCMailList += mail.Email + ","; } CCMailList = CCMailList.Length > 0 ? CCMailList.Substring(0, CCMailList.Length - 1) : ""; //检查是否已经为该申请人设置过审批人 string sqlCheckFlow = ""; if (cbxBudget.Value.ToString() == "YES")//使用Budget审批流程 { sqlCheckFlow = "select * from GroupFlow where [Type]!=2 and GID=(select GID from GroupUsers where UserID='" + cbxOwner.Value.ToString() + "')"; } else//使用unBudget审批流程 { sqlCheckFlow = "select * from GroupFlow where [Type]=2 and GID=(select GID from GroupUsers where UserID='" + cbxOwner.Value.ToString() + "')"; } DataTable dtGroupFlowData = dbc.GetData("eReimbursement", sqlCheckFlow); if (dtGroupFlowData.Rows.Count < 1) { if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { ErrorHandleNojump("请先设置审批人."); } else { ErrorHandleNojump("Not set Approve flow,please contact with Local MIS."); } return; } string para = type; string station = ""; string department = ""; DataSet ds1 = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(cbxOwner.Value.ToString()); if (ds1.Tables[0].Rows.Count == 1) { DataTable dt1 = ds1.Tables[0]; station = dt1.Rows[0]["stationCode"].ToString(); department = dt1.Rows[0]["DepartmentName"].ToString(); } if (para == "ND")//保存并申请 { if (hdTravelRequestID.Value.ToString() == "")//直接新增申请,不通过草稿 { string word = "[No],[Person],[Station],[Department],[ReportFile],[Tamount],[Pamout],[Camount],[CreadedBy],[CreadedDate],[Attach],[Remark],[Bdate],[Edate],[PersonID],[CreadedByID],[ApplyDate],[CCMailList],[Budget],[Station2]"; string value = ""; value += "'" + station + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString().PadLeft(2, '0') + "',";//edit value += "'" + X.GetValue("cbxOwner") + "',"; value += "'" + station + "',"; value += "'" + department + "',";//edit value += "'" + hdReport.Value.ToString() + "',"; value += hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString(); value += "," + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); value += "," + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); value += ",'" + Request.Cookies.Get("eReimUserName").Value + "'";//edit value += ",'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; value += "'" + hdScanFile.Value.ToString() + "',"; value += "'" + txtRemark.Text.Replace("'", "''") + "',"; string Bdate = ""; if (dfBdate.SelectedDate != dtnull) { Bdate = dfBdate.SelectedDate.ToString(); } value += Bdate == "" ? "null," : "'" + Bdate + "',"; string Edate = ""; if (dfEdate.SelectedDate != dtnull) { Edate = dfEdate.SelectedDate.ToString(); } value += Edate == "" ? "null" : "'" + Edate + "'"; value += ",'" + cbxOwner.Value.ToString() + "'"; value += ",'" + Request.Cookies.Get("eReimUserID").Value + "'"; value += ",'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "'"; value += ",'" + CCMailList + "'"; value += "," + (cbxBudget.Value.ToString() == "YES" ? "1" : "0"); value += ",'"+ostation+"'"; string updatesql = "insert into ETravel (" + word + ") values(" + value + ");update ETravel set [No]=[No]+(select [MonthCount]=right('0000'+cast(count(ID) as varchar(10)),4) from ETravel where (month(ApplyDate) in (select month(ApplyDate) from ETravel where [ID]=@@IDENTITY) and (year(ApplyDate) in (select year(ApplyDate) from ETravel where [ID]=@@IDENTITY)) and Station=(select Station from ETravel where ID=@@IDENTITY)))+'T' where ID=@@IDENTITY;select [msg]=convert(varchar,ID)+','+[No] from ETravel where ID=@@IDENTITY"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert"); //操作Flow表 //根据cbxBudget,选择不同的审批流程 //string sqlGetGroupFlowData = ""; //if (cbxBudget.Value.ToString() == "YES")//使用Budget审批流程 //{ // sqlGetGroupFlowData = "select * from GroupFlow where [Type]!=2 and GID=(select GID from GroupUsers where UserID='" + cbxOwner.Value.ToString() + "')"; //} //else//使用unBudget审批流程 //{ // sqlGetGroupFlowData = "select * from GroupFlow where [Type]=2 and GID=(select GID from GroupUsers where UserID='" + cbxOwner.Value.ToString() + "')"; //} //DataTable dtGroupFlowData = new DataTable(); //dtGroupFlowData = dbc.GetData("eReimbursement", sqlGetGroupFlowData); string rows = ""; for (int i = 0; i < dtGroupFlowData.Rows.Count; i++) { string wordflow = "[No],[Type],[Station],[Department],[Person],[CreadedBy],[CreatedDate],[Tamount],[Step],[Status],[Approver],[ApproverID],[RequestID],[FlowFn]"; if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { wordflow += ",[Active]"; } string valueflow = ""; valueflow += "'" + newid.Split(',')[1] + "',"; valueflow += "'T',"; valueflow += "'" + station + "',"; valueflow += "'" + department + "',"; valueflow += "'" + X.GetValue("cbxOwner") + "',"; valueflow += "'" + Request.Cookies.Get("eReimUserName").Value + "',"; valueflow += "'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; valueflow += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ","; valueflow += dtGroupFlowData.Rows[i]["FlowNo"].ToString() + ","; valueflow += "1,"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUser"].ToString() + "',"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUserid"].ToString() + "',"; valueflow += "'" + newid.Split(',')[0] + "'"; valueflow += ",'" + (dtGroupFlowData.Rows[i]["Fn"].ToString() == "" ? "Approver" : dtGroupFlowData.Rows[i]["Fn"].ToString()) + "'"; if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { valueflow += ",1"; } string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); } if (newid == "-1" || rows == "-1" || rows == "") { ErrorHandle("Data Error."); return; } else { hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID hdTravelRequestNo.Value = newid.Split(',')[1];//新增后记录No if (!SaveDetail(detail) || !SendMail()) { ErrorHandle("Data Error."); return; } if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { Panel3.Title = "差旅费申请单: " + newid.Split(',')[1]; UpdateMSG("保存申请单:" + newid.Split(',')[1] + "成功."); } else { Panel3.Title = "Travel Expense Form: " + newid.Split(',')[1]; UpdateMSG("Saved Travel Expense Form: " + newid.Split(',')[1] + " successfully."); } } // } else//由草稿升级为正式申请 { string updatesql = "update ETravel set [Person]='" + X.GetValue("cbxOwner"); updatesql += "',[Station]='" + station; updatesql += "',[Department]='" + department; updatesql += "',[ReportFile]='" + hdReport.Value.ToString(); updatesql += "',[Tamount]=" + (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString()); updatesql += ",[Pamout]=" + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); updatesql += ",[Camount]=" + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); updatesql += ",[Remark]='" + txtRemark.Text.Replace("'", "''") + "'"; updatesql += ",[Attach]='" + hdScanFile.Value.ToString() + "'"; updatesql += ",[Type]=0"; updatesql += ",[PersonID]='" + cbxOwner.Value.ToString() + "'"; string oldno = hdTravelRequestNo.Value.ToString(); string newno = hdTravelRequestNo.Value.ToString().Substring(0, hdTravelRequestNo.Value.ToString().Length - 1); updatesql += ",[No]='" + newno + "',"; updatesql += "[CreadedDate]='" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; updatesql += "[CreadedBy]='" + Request.Cookies.Get("eReimUserName").Value + "',"; updatesql += "[CreadedByID]='" + Request.Cookies.Get("eReimUserID").Value + "'"; string Bdate = ""; if (dfBdate.SelectedDate != dtnull) { Bdate = dfBdate.SelectedDate.ToString(); } updatesql += Bdate == "" ? ",Bdate=null" : ",Bdate='" + Bdate + "'"; string Edate = ""; if (dfEdate.SelectedDate != dtnull) { Edate = dfEdate.SelectedDate.ToString(); } updatesql += Edate == "" ? ",Edate=null" : ",Edate='" + Edate + "'"; updatesql += ",[CCMailList]='" + CCMailList + "'"; updatesql += ",[Budget]=" + (cbxBudget.Value.ToString() == "YES" ? "1" : "0"); updatesql += ",[Station2]='"+ostation+"'"; updatesql += " where ID=" + hdTravelRequestID.Value.ToString(); string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); //操作Flow表 string sqlDeleteEflow = "delete from Eflow where [Type]='T' and [RequestID]='" + hdTravelRequestID.Value.ToString() + "'"; string deleterows = dbc.UpdateData("eReimbursement", sqlDeleteEflow, "Update"); //根据cbxBudget,选择不同的审批流程 //string sqlGetGroupFlowData = ""; //if (cbxBudget.Value.ToString() == "YES")//使用Budget审批流程 //{ // sqlGetGroupFlowData = "select * from GroupFlow where [Type]!=2 and GID=(select GID from GroupUsers where UserID='" + cbxOwner.Value.ToString() + "')"; //} //else//使用unBudget审批流程 //{ // sqlGetGroupFlowData = "select * from GroupFlow where [Type]=2 and GID=(select GID from GroupUsers where UserID='" + cbxOwner.Value.ToString() + "')"; //} //DataTable dtGroupFlowData = new DataTable(); //dtGroupFlowData = dbc.GetData("eReimbursement", sqlGetGroupFlowData); string rows = ""; for (int i = 0; i < dtGroupFlowData.Rows.Count; i++) { string wordflow = "[No],[Type],[Station],[Department],[Person],[CreadedBy],[CreatedDate],[Tamount],[Step],[Status],[Approver],[ApproverID],[RequestID],[FlowFn]"; if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { wordflow += ",[Active]"; } string valueflow = ""; valueflow += "'" + newno + "',"; valueflow += "'T',"; valueflow += "'" + station + "',"; valueflow += "'" + department + "',"; valueflow += "'" + X.GetValue("cbxOwner") + "',"; valueflow += "'" + Request.Cookies.Get("eReimUserName").Value + "',"; valueflow += "'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; valueflow += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ","; valueflow += dtGroupFlowData.Rows[i]["FlowNo"].ToString() + ","; valueflow += "1,"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUser"].ToString() + "',"; valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUserid"].ToString() + "',"; valueflow += hdTravelRequestID.Value.ToString(); valueflow += ",'" + (dtGroupFlowData.Rows[i]["Fn"].ToString() == "" ? "Approver" : dtGroupFlowData.Rows[i]["Fn"].ToString()) + "'"; if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1") { valueflow += ",1"; } string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); } // if (newid == "-1" || rows == "-1" || rows == "") { ErrorHandle("Data Error."); return; } else { hdTravelRequestNo.Value = newno; if (!SaveDetail(detail) || !SendMail()) { ErrorHandle("Data Error."); return; } if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { Panel3.Title = "差旅费申请单:" + newno; UpdateMSG("保存差旅费申请单:" + hdTravelRequestNo.Value.ToString() + "成功."); } else { Panel3.Title = "Travel Expense Form: " + newno; UpdateMSG("Saved Travel Expense Form: " + hdTravelRequestNo.Value.ToString() + " successfully."); } } } X.AddScript("btnGeteLeave.disable();btnEditDetail.disable();btnNewDetail.disable();btnSaveDraft.disable();btnSaveAndSend.disable();cbxBudget.setReadOnly(true);btnExport.enable();btnCC.disable();"); } else//保存草稿 { if (hdTravelRequestID.Value.ToString() != "")//由链接进入的草稿更新 { string updatesql = "update ETravel set [Person]='" + X.GetValue("cbxOwner"); updatesql += "',[Station]='" + station; updatesql += "',[Department]='" + department; updatesql += "',[ReportFile]='" + hdReport.Value.ToString(); updatesql += "',[Tamount]=" + (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString()); updatesql += ",[Pamout]=" + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); updatesql += ",[Camount]=" + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); updatesql += ",[Remark]='" + txtRemark.Text.Replace("'", "''") + "'"; updatesql += ",[Attach]='" + hdScanFile.Value.ToString() + "'"; updatesql += ",[PersonID]='" + cbxOwner.Value.ToString() + "'"; string Bdate = ""; if (dfBdate.SelectedDate != dtnull) { Bdate = dfBdate.SelectedDate.ToString(); } updatesql += Bdate == "" ? ",Bdate=null" : ",Bdate='" + Bdate + "'"; string Edate = ""; if (dfEdate.SelectedDate != dtnull) { Edate = dfEdate.SelectedDate.ToString(); } updatesql += Edate == "" ? ",Edate=null" : ",Edate='" + Edate + "'"; updatesql += ",[CCMailList]='" + CCMailList + "'"; updatesql += ",[Budget]=" + (cbxBudget.Value.ToString() == "YES" ? "1" : "0"); updatesql += ",[Station2]='"+ostation+"'"; updatesql += " where ID=" + hdTravelRequestID.Value.ToString(); string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); ////更新Eflow表 //string sqlupdateflow = "update Eflow set [Station]='" + station + "',"; //sqlupdateflow += "[Department]='" + department + "',"; //sqlupdateflow += "[Person]='" + X.GetValue("cbxOwner") + "',"; //sqlupdateflow += "[Tamount]=" + (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString()); //sqlupdateflow += " where [No]='" + hdTravelRequestNo.Value.ToString() + "'"; //string rows = dbc.UpdateData("eReimbursement", sqlupdateflow, "Update"); if (newid == "-1") { ErrorHandle("Data Error."); return; } else { if (!SaveDetail(detail)) { ErrorHandle("Data Error."); return; } //hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID //Panel3.Title = "差旅费申请单:" + newid.Split(',')[1]; //X.AddScript("GridPanel2.submitData();"); if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { UpdateMSG("保存差旅费申请单草稿: " + hdTravelRequestNo.Value.ToString() + "成功."); } else { UpdateMSG("Saved Travel Expense Draft: " + hdTravelRequestNo.Value.ToString() + " successfully."); } } } else//如果ID为空则判断为新增草稿 { string word = "[No],[Person],[Station],[Department],[ReportFile],[Tamount],[Pamout],[Camount],[Attach],[Remark],[Bdate],[Edate],[Type],[PersonID],[ApplyDate],[CCMailList],[Station2],[Budget]"; string value = ""; value += "'" + station + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString().PadLeft(2, '0') + "',";//edit value += "'" + X.GetValue("cbxOwner") + "',"; value += "'" + station + "',"; value += "'" + department + "',";//edit value += "'" + hdReport.Value.ToString() + "',"; value += (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString()); value += "," + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString()); value += "," + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString()); value += ",'" + hdScanFile.Value.ToString() + "',"; value += "'" + txtRemark.Text.Replace("'", "''") + "',"; string Bdate = ""; if (dfBdate.SelectedDate != dtnull) { Bdate = dfBdate.SelectedDate.ToString(); } value += Bdate == "" ? "null," : "'" + Bdate + "',"; string Edate = ""; if (dfEdate.SelectedDate != dtnull) { Edate = dfEdate.SelectedDate.ToString(); } value += Edate == "" ? "null," : "'" + Edate + "',"; value += "1";//标识为草稿 value += ",'" + cbxOwner.Value.ToString() + "'"; value += ",'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "'"; value += ",'" + CCMailList + "'"; value += ",'"+ostation+"'"; value += "," + (cbxBudget.Value.ToString() == "YES" ? "1" : "0"); string updatesql = "insert into ETravel (" + word + ") values(" + value + ");update ETravel set [No]=[No]+(select [MonthCount]=right('0000'+cast(count(ID) as varchar(10)),4) from ETravel where (month(ApplyDate) in (select month(ApplyDate) from ETravel where [ID]=@@IDENTITY) and (year(ApplyDate) in (select year(ApplyDate) from ETravel where [ID]=@@IDENTITY)) and Station=(select Station from ETravel where ID=@@IDENTITY)))+'TD' where ID=@@IDENTITY;select [msg]=convert(varchar,ID)+','+[No] from ETravel where ID=@@IDENTITY"; string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert"); //操作Flow表 string wordflow = "[No],[Type],[Station],[Department],[Person],[CreadedBy],[CreatedDate],[Tamount],[RequestID],[Active]"; string valueflow = ""; valueflow += "'" + newid.Split(',')[1] + "',"; valueflow += "'T',"; valueflow += "'" + station + "',"; valueflow += "'" + department + "',"; valueflow += "'" + X.GetValue("cbxOwner") + "',"; valueflow += "'" + Request.Cookies.Get("eReimUserName").Value + "',"; valueflow += "'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',"; valueflow += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ","; valueflow += "'" + newid.Split(',')[0] + "'"; valueflow += ",1"; string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")"; string rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update"); // if (newid == "-1" || rows == "-1") { ErrorHandle("Data Error."); return; } else { hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID hdTravelRequestNo.Value = newid.Split(',')[1];//新增后记录No if (!SaveDetail(detail)) { ErrorHandle("Data Error."); return; } if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { Panel3.Title = "差旅费申请单草稿: " + newid.Split(',')[1]; UpdateMSG("新增差旅费申请单草稿: " + newid.Split(',')[1] + "成功."); } else { Panel3.Title = "Travel Expense Draft: " + newid.Split(',')[1]; UpdateMSG("Added Travel Expense Draft: " + newid.Split(',')[1] + " successfully."); } } } } }
protected void UploadScanFileClick(object sender, DirectEventArgs e) { if (this.FileUploadField2.HasFile) { string lstrFileName = null; //上传文件路径 string lstrFileFolder = null; //存放文件路径 string lstrFileNamePath = null; //上传目录及文件名 //获得上传到服务器的目录名称,如果上传目录为空,就使用"D:\"作为缺省上传目录 //if (dir.Value != "") lstrFileFolder = dir.Value; else lstrFileFolder = "D:\\"; lstrFileFolder = System.Web.HttpContext.Current.Request.MapPath("Upload/"); //lstrFileName = FileUploadField1.PostedFile.FileName; //获得文件名称 //注:FileUploadField1.PostedFile.FileName 返回的是通过文件对话框选择的文件名,这之中包含了文件的目录信息 lstrFileName = System.IO.Path.GetFileName(FileUploadField2.PostedFile.FileName); //去掉目录信息,返回文件名称 //判断上传目录是否存在,不存在就建立 if (!System.IO.Directory.Exists(lstrFileFolder)) System.IO.Directory.CreateDirectory(lstrFileFolder); string dtime = DateTime.Now.ToString("yyyyMMddHHmmss"); lstrFileNamePath = lstrFileFolder + "SF" + dtime + System.IO.Path.GetExtension(lstrFileName); //得到上传目录及文件名称 FileUploadField2.PostedFile.SaveAs(lstrFileNamePath); //上传文件到服务器 string filename = "SF" + dtime + System.IO.Path.GetExtension(lstrFileName); linkScanFile.Text = filename; hdScanFile.Value = filename; linkScanFile.NavigateUrl = "./Upload/" + filename; string tpl = "Uploaded file: {0}<br/>Size: {1} bytes"; //更新数据 if (hdTravelRequestID.Value.ToString() != "") { string updatesql = "update ETravel set Attach='" + filename + "' where ID=" + hdTravelRequestID.Value.ToString(); cs.DBCommand dbc = new cs.DBCommand(); string update = dbc.UpdateData("eReimbursement", updatesql, "Update"); } X.Msg.Show(new MessageBoxConfig { Buttons = MessageBox.Button.OK, Icon = MessageBox.Icon.INFO, Title = "Success", Message = string.Format(tpl, this.FileUploadField2.PostedFile.FileName, this.FileUploadField2.PostedFile.ContentLength) }); } }
public void DeleteRule(string TempNO) { cs.DBCommand dbc = new cs.DBCommand(); string sql = "delete from FileRule where ID=" + TempNO; string sqlre = dbc.UpdateData("eReimbursement", sql, "Update"); }
protected void Command(object sender, DirectEventArgs e) { cs.DBCommand dbc = new cs.DBCommand(); string para = e.ExtraParams[0].Value; string paraType = e.ExtraParams[1].Value; string sql = "select * from Eflow where RequestID='" + para + "' and [Type]='" + paraType + "' order by Step,id"; DataTable dt = new DataTable(); dt = dbc.GetData("eReimbursement", sql); SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["eReimbursement"].ConnectionString); string ID = para; if (dt != null) { for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i]["Active"].ToString() == "1") { if (i == dt.Rows.Count-1) { string updatesql = "update Eflow set Active=2,Status=2,ApproveDate='" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "' where id=" + dt.Rows[i]["id"].ToString(); if (dt.Rows[i]["Type"].ToString()=="T") { updatesql += ";update ETravel set Status=2 where ID=" + dt.Rows[i]["RequestID"].ToString(); string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); if (newid == "-1") { ErrorHandle("Data Error."); return; } else { string sqlf = "select * from ETravel where ID=" + ID; DataTable dtf = dbc.GetData("eReimbursement", sqlf); try { string sqld = "select * from ETraveleDetail where [No]='" + ID + "' order by id"; DataTable dtall = new DataTable(); dtall = dbc.GetData("eReimbursement", sqld); //预算 //140226 显示预算 DataTable dtbudget = new DataTable(); dtbudget.Columns.Add("RequestID", typeof(System.Int32)); dtbudget.Columns.Add("Status", typeof(System.Int16)); dtbudget.Columns.Add("EName", typeof(System.String)); dtbudget.Columns.Add("COACode", typeof(System.String)); dtbudget.Columns.Add("LocalCur", typeof(System.String)); dtbudget.Columns.Add("CenterCur", typeof(System.String)); dtbudget.Columns.Add("Rate", typeof(System.Decimal)); dtbudget.Columns.Add("Current", typeof(System.Decimal)); dtbudget.Columns.Add("PA", typeof(System.Decimal)); dtbudget.Columns.Add("CA", typeof(System.Decimal)); dtbudget.Columns.Add("PU", typeof(System.Decimal)); dtbudget.Columns.Add("PB", typeof(System.Decimal)); dtbudget.Columns.Add("PPercent", typeof(System.Decimal)); dtbudget.Columns.Add("DU", typeof(System.Decimal)); dtbudget.Columns.Add("DB", typeof(System.Decimal)); dtbudget.Columns.Add("DPercent", typeof(System.Decimal)); dtbudget.Columns.Add("SU", typeof(System.Decimal)); dtbudget.Columns.Add("SB", typeof(System.Decimal)); dtbudget.Columns.Add("SPercent", typeof(System.Decimal)); //取得预算日期 string sqlA = "select convert(varchar(10),min(Tdate0),111) as BudgetDate from ETraveleDetail where No='" + ID + "'"; DataTable dtA = dbc.GetData("eReimbursement", sqlA); //取得本币与成本中心汇率转换 decimal rate = 1; string CurLocal = dtall.Rows[0]["Cur"].ToString(); string CurBudget = DIMERCO.SDK.Utilities.LSDK.GetStationCurrencyByCode(dtf.Rows[0]["Station2"].ToString()); if (CurLocal != CurBudget) { rate = DIMERCO.SDK.Utilities.LSDK.GetBudgetConverRate(CurLocal, CurBudget, Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Year); } //取得4大类合计 //string sqlB = "select sum(T1) as T1,sum(T2) as T2,sum(T3) as T3,sum(T4) as T4 from (select case when AccountCode='62012000' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T1],case when AccountCode='62010900' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T2],case when AccountCode='62011900' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T3],case when AccountCode='62010500' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T4] from ETraveleDetail where No=" + ID + ") t"; string sqlB = "select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62012000' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62012000' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62010900' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62010900' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62011900' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62011900' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62010500' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62010500'"; DataTable dtB = dbc.GetData("eReimbursement", sqlB); //取得传递预算的参数 string userid = dtf.Rows[0]["PersonID"].ToString(); string dpt = dtf.Rows[0]["Department"].ToString(); string ostation = dtf.Rows[0]["Station2"].ToString();//预算站点,与基本信息中的CostCenter一致(Station2) string tstation = ostation;//Etravel表中的Station2,目前与预算站点一致,不允许更改 string year = Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Year.ToString(); string month = Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Month.ToString(); string accountcode = ""; for (int g = 0; g < dtB.Rows.Count; g++) { if (Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()) != 0) { DataRow dr = dtbudget.NewRow(); dr["Current"] = Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()); dr["PA"] = Convert.ToDecimal(dtB.Rows[g]["PA"].ToString()); dr["CA"] = Convert.ToDecimal(dtB.Rows[g]["CA"].ToString()); dr["COACode"] = dtB.Rows[g]["COACode"].ToString(); accountcode = dtB.Rows[g]["COACode"].ToString(); DataTable dtC = new DataTable(); dtC = Comm.ExRtnEB(userid, dpt, ostation, tstation, accountcode, year, month, "T", ID); for (int h = 0; h < dtC.Rows.Count; h++) { if (dtC.Rows[h]["Type"].ToString() == "全年个人") { dr["PU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["PB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } else if (dtC.Rows[h]["Type"].ToString() == "全年部门") { dr["DU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["DB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } else if (dtC.Rows[h]["Type"].ToString() == "全年站点") { dr["SU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["SB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } } dtbudget.Rows.Add(dr); } } //计算%,取得名称,预算转换为本地汇率 for (int g = 0; g < dtbudget.Rows.Count; g++) { if (Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["PPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["DPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["SPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); } if (dtbudget.Rows[g]["COACode"].ToString() == "62012000") { dtbudget.Rows[g]["EName"] = "Travel expense"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62010900") { dtbudget.Rows[g]["EName"] = "Entertainment"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62011900") { dtbudget.Rows[g]["EName"] = "Transportation"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62010500") { dtbudget.Rows[g]["EName"] = "Communication"; } dtbudget.Rows[g]["PU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString()), 2); dtbudget.Rows[g]["PB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); dtbudget.Rows[g]["DU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString()), 2); dtbudget.Rows[g]["DB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); dtbudget.Rows[g]["SU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString()), 2); dtbudget.Rows[g]["SB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); dtbudget.Rows[g]["RequestID"] = ID; dtbudget.Rows[g]["Status"] = 2; dtbudget.Rows[g]["LocalCur"] = CurLocal; dtbudget.Rows[g]["CenterCur"] = CurBudget; dtbudget.Rows[g]["Rate"] = rate; } for (int g = 0; g < dtbudget.Rows.Count; g++) { SqlCommand scdetail = sqlConn.CreateCommand(); scdetail.CommandText = "Insert into Budget_Complete (FormType,RequestID,Status,COACode,EName,LocalCur,CenterCur,Rate,LocalAmount,PA,CA,PU,PB,PPercent,DU,DB,DPercent,SU,SB,SPercent) values (@FormType,@RequestID,@Status,@COACode,@EName,@LocalCur,@CenterCur,@Rate,@LocalAmount,@PA,@CA,@PU,@PB,@PPercent,@DU,@DB,@DPercent,@SU,@SB,@SPercent)"; SqlParameter spdetail = new SqlParameter("@RequestID", SqlDbType.Int); spdetail.Value = Convert.ToInt32(ID); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@FormType", SqlDbType.VarChar, 10); spdetail.Value = "T"; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Status", SqlDbType.Int); spdetail.Value = Convert.ToInt16(dtbudget.Rows[g]["Status"].ToString()); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@COACode", SqlDbType.VarChar, 50); spdetail.Value = dtbudget.Rows[g]["COACode"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@EName", SqlDbType.VarChar, 50); spdetail.Value = dtbudget.Rows[g]["EName"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@LocalCur", SqlDbType.VarChar, 10); spdetail.Value = dtbudget.Rows[g]["LocalCur"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@CenterCur", SqlDbType.VarChar, 10); spdetail.Value = dtbudget.Rows[g]["CenterCur"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Rate", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["Rate"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@LocalAmount", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["Current"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@PA", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["PA"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@CA", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["CA"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@PU", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["PU"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@PB", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["PB"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@PPercent", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["PPercent"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@DU", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["DU"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@DB", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["DB"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@DPercent", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["DPercent"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@SU", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["SU"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@SB", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["SB"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@SPercent", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["SPercent"]; scdetail.Parameters.Add(spdetail); sqlConn.Open(); int row = scdetail.ExecuteNonQuery(); sqlConn.Close(); } if (!SendMail(paraType, para, dt.Rows[i]["id"].ToString(), dtbudget))//Budget已经计入Current,%不需要重新计算 { ErrorHandle("Error mail address."); return; } if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { X.AddScript("Ext.Msg.show({ title: '提示', msg: '批准成功,该申请单已经完成.', buttons: { ok: 'Ok' }, fn: function (btn) { parent.Window1.hide();parent.Button1.fireEvent('click'); } });"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Approved,form completed.', buttons: { ok: 'Ok' }, fn: function (btn) { parent.Window1.hide();parent.Button1.fireEvent('click'); } });"); } } catch (Exception) { throw; } } } else//通用费用 { updatesql += ";update Ecommon set Status=2 where ID=" + dt.Rows[i]["RequestID"].ToString(); string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); if (newid == "-1") { ErrorHandle("Data Error."); return; } else { //保存预算信息 try { string sqlf = "select * from Ecommon where ID=" + ID; DataTable dtf = dbc.GetData("eReimbursement", sqlf); //140226 显示预算 DataTable dtbudget = new DataTable(); dtbudget.Columns.Add("RequestID", typeof(System.Int32)); dtbudget.Columns.Add("Year", typeof(System.String)); dtbudget.Columns.Add("Status", typeof(System.Int16)); dtbudget.Columns.Add("EName", typeof(System.String)); dtbudget.Columns.Add("COACode", typeof(System.String)); dtbudget.Columns.Add("LocalCur", typeof(System.String)); dtbudget.Columns.Add("CenterCur", typeof(System.String)); dtbudget.Columns.Add("Rate", typeof(System.Decimal)); dtbudget.Columns.Add("Current", typeof(System.Decimal)); dtbudget.Columns.Add("PU", typeof(System.Decimal)); dtbudget.Columns.Add("PB", typeof(System.Decimal)); dtbudget.Columns.Add("PPercent", typeof(System.Decimal)); dtbudget.Columns.Add("DU", typeof(System.Decimal)); dtbudget.Columns.Add("DB", typeof(System.Decimal)); dtbudget.Columns.Add("DPercent", typeof(System.Decimal)); dtbudget.Columns.Add("SU", typeof(System.Decimal)); dtbudget.Columns.Add("SB", typeof(System.Decimal)); dtbudget.Columns.Add("SPercent", typeof(System.Decimal)); string sqld = "select * from EeommonDetail where [No]='" + ID + "' order by id"; DataTable dtall = new DataTable(); dtall = dbc.GetData("eReimbursement", sqld); //取得预算日期 string sqlA = "select AccountCode as COACode,case when t1.Type='O' then t2.SAccountName else TDicSubType.EText end as [EName],year(Tdate) as [Year],Amount from EeommonDetail t1 left join (select * from Edic where KeyValue='SubType') TDicSubType on TDicSubType.CValue=t1.Type left join AccoundCode t2 on t2.SAccountCode=t1.AccountCode where t1.No='" + ID + "'"; DataTable dtA = dbc.GetData("eReimbursement", sqlA); //取得本币与成本中心汇率转换 decimal rate = 1; string CurLocal = dtall.Rows[0]["Cur"].ToString(); string CurBudget = DIMERCO.SDK.Utilities.LSDK.GetStationCurrencyByCode(dtf.Rows[0]["Station2"].ToString()); //if (CurLocal != CurBudget) //{ // rate = DIMERCO.SDK.Utilities.LSDK.GetBudgetConverRate(CurLocal, CurBudget, Convert.ToInt16(dtA.Rows[0]["Year"].ToString())); //} //合计数据 DataTable dtB = new DataTable(); dtB.Columns.Add("EName", typeof(System.String)); dtB.Columns.Add("COACode", typeof(System.String)); dtB.Columns.Add("Amount", typeof(System.Decimal)); dtB.Columns.Add("Year", typeof(System.String)); for (int g = 0; g < dtA.Rows.Count; g++) { bool er = false; for (int j = 0; j < dtB.Rows.Count; j++) { if (dtB.Rows[j]["COACode"].ToString() == dtA.Rows[g]["COACode"].ToString() && dtB.Rows[j]["Year"].ToString() == dtA.Rows[g]["Year"].ToString())//已有记录 { er = true; break; } } if (!er)//不存在重复记录 { DataRow dr = dtB.NewRow(); dr["EName"] = dtA.Rows[g]["EName"].ToString(); dr["COACode"] = dtA.Rows[g]["COACode"].ToString(); dr["Amount"] = dtA.Compute("Sum(Amount)", "Year = " + dtA.Rows[g]["Year"].ToString() + " and COACode = " + dtA.Rows[g]["COACode"].ToString()); dr["Year"] = dtA.Rows[g]["Year"].ToString(); dtB.Rows.Add(dr); } } string userid = dtf.Rows[0]["PersonID"].ToString(); string ostation = ""; string station = ""; string department = ""; DataSet ds2 = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(userid); if (ds2.Tables[0].Rows.Count == 1) { DataTable dt1 = ds2.Tables[0]; ostation = dt1.Rows[0]["CostCenter"].ToString();//记录用户预算站点,即CostCenter station = dt1.Rows[0]["stationCode"].ToString();//记录用户所在站点 department = dt1.Rows[0]["CRPDepartmentName"].ToString(); } string accountcode = ""; for (int g = 0; g < dtB.Rows.Count; g++) { if (Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()) != 0) { DataRow dr = dtbudget.NewRow(); dr["EName"] = dtB.Rows[g]["EName"].ToString(); dr["Current"] = Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()); dr["COACode"] = dtB.Rows[g]["COACode"].ToString(); dr["Year"] = dtB.Rows[g]["Year"].ToString(); accountcode = dtB.Rows[g]["COACode"].ToString(); DataTable dtC = new DataTable(); dtC = Comm.RtnEB(userid, department, ostation, ostation, accountcode, dtB.Rows[g]["Year"].ToString(), "1"); for (int f = 0; f < dtC.Rows.Count; f++) { if (dtC.Rows[f]["Type"].ToString() == "全年个人") { dr["PU"] = Convert.ToDecimal(dtC.Rows[f]["Used"].ToString()); dr["PB"] = Convert.ToDecimal(dtC.Rows[f]["Budget"].ToString()); } else if (dtC.Rows[f]["Type"].ToString() == "全年部门") { dr["DU"] = Convert.ToDecimal(dtC.Rows[f]["Used"].ToString()); dr["DB"] = Convert.ToDecimal(dtC.Rows[f]["Budget"].ToString()); } else if (dtC.Rows[f]["Type"].ToString() == "全年站点") { dr["SU"] = Convert.ToDecimal(dtC.Rows[f]["Used"].ToString()); dr["SB"] = Convert.ToDecimal(dtC.Rows[f]["Budget"].ToString()); } } dtbudget.Rows.Add(dr); } } //计算%,取得名称,转为本地币种汇率,增加列记录Currency为邮件准备 for (int g = 0; g < dtbudget.Rows.Count; g++) { if (CurLocal != CurBudget) { rate = DIMERCO.SDK.Utilities.LSDK.GetBudgetConverRate(CurLocal, CurBudget, Convert.ToInt16(dtbudget.Rows[g]["Year"].ToString())); } if (Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["PPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["DPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["SPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); } dtbudget.Rows[g]["PU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString()), 2); dtbudget.Rows[g]["PB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); dtbudget.Rows[g]["DU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString()), 2); dtbudget.Rows[g]["DB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); dtbudget.Rows[g]["SU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString()), 2); dtbudget.Rows[g]["SB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); dtbudget.Rows[g]["RequestID"] = ID; dtbudget.Rows[g]["Status"] = 2; dtbudget.Rows[g]["LocalCur"] = CurLocal; dtbudget.Rows[g]["CenterCur"] = CurBudget; dtbudget.Rows[g]["Rate"] = rate; } string srw = ""; for (int g = 0; g < dtbudget.Rows.Count; g++) { SqlCommand scdetail = sqlConn.CreateCommand(); scdetail.CommandText = "Insert into Budget_Complete (Year,FormType,RequestID,Status,COACode,EName,LocalCur,CenterCur,Rate,LocalAmount,PU,PB,PPercent,DU,DB,DPercent,SU,SB,SPercent) values (@Year,@FormType,@RequestID,@Status,@COACode,@EName,@LocalCur,@CenterCur,@Rate,@LocalAmount,@PU,@PB,@PPercent,@DU,@DB,@DPercent,@SU,@SB,@SPercent)"; SqlParameter spdetail = new SqlParameter("@RequestID", SqlDbType.Int); spdetail.Value = Convert.ToInt32(ID); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Year", SqlDbType.Int); spdetail.Value = Convert.ToInt16(dtbudget.Rows[g]["Year"].ToString()); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@FormType", SqlDbType.VarChar, 10); spdetail.Value = "G"; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Status", SqlDbType.Int); spdetail.Value = Convert.ToInt16(dtbudget.Rows[g]["Status"].ToString()); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@COACode", SqlDbType.VarChar, 50); spdetail.Value = dtbudget.Rows[g]["COACode"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@EName", SqlDbType.VarChar, 50); spdetail.Value = dtbudget.Rows[g]["EName"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@LocalCur", SqlDbType.VarChar, 10); spdetail.Value = dtbudget.Rows[g]["LocalCur"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@CenterCur", SqlDbType.VarChar, 10); spdetail.Value = dtbudget.Rows[g]["CenterCur"].ToString(); scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@Rate", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["Rate"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@LocalAmount", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["Current"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@PU", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["PU"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@PB", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["PB"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@PPercent", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["PPercent"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@DU", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["DU"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@DB", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["DB"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@DPercent", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["DPercent"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@SU", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["SU"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@SB", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["SB"]; scdetail.Parameters.Add(spdetail); spdetail = new SqlParameter("@SPercent", SqlDbType.Decimal); spdetail.Value = dtbudget.Rows[g]["SPercent"]; scdetail.Parameters.Add(spdetail); sqlConn.Open(); int row = scdetail.ExecuteNonQuery(); sqlConn.Close(); } if (!SendMail("G", para, dt.Rows[i]["id"].ToString(), dtbudget))//Budget已经计入Current,%不需要重新计算 { ErrorHandle("Error mail address."); return; } } catch (Exception) { throw; } //if (!SendMail(paraType, para, dt.Rows[i]["id"].ToString(), dtbudget)) //{ // ErrorHandle("Error mail address."); return; //} if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { X.AddScript("Ext.Msg.show({ title: '提示', msg: '批准成功,该申请单已经完成.', buttons: { ok: 'Ok' }, fn: function (btn) { parent.Window1.hide();parent.Button1.fireEvent('click'); } });"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Approved,form completed.', buttons: { ok: 'Ok' }, fn: function (btn) { parent.Window1.hide();parent.Button1.fireEvent('click'); } });"); } } } } else//审批通过,但未完成 { string updatesql = "update Eflow set Active=-1,Status=2,ApproveDate='" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "' where id=" + dt.Rows[i]["id"].ToString(); updatesql += ";update Eflow set Active=1 where id=" + dt.Rows[i + 1]["id"].ToString(); string newid = dbc.UpdateData("eReimbursement", updatesql, "Update"); if (newid == "-1") { ErrorHandle("Data Error."); return; } else { if (paraType == "T") { string sqlf = "select * from ETravel where ID=" + ID; DataTable dtf = dbc.GetData("eReimbursement", sqlf); string sqld = "select * from ETraveleDetail where [No]='" + ID + "' order by id"; DataTable dtall = new DataTable(); dtall = dbc.GetData("eReimbursement", sqld); //预算 //140226 显示预算 DataTable dtbudget = new DataTable(); dtbudget.Columns.Add("RequestID", typeof(System.Int32)); dtbudget.Columns.Add("Status", typeof(System.Int16)); dtbudget.Columns.Add("EName", typeof(System.String)); dtbudget.Columns.Add("COACode", typeof(System.String)); dtbudget.Columns.Add("LocalCur", typeof(System.String)); dtbudget.Columns.Add("CenterCur", typeof(System.String)); dtbudget.Columns.Add("Rate", typeof(System.Decimal)); dtbudget.Columns.Add("Current", typeof(System.Decimal)); dtbudget.Columns.Add("PA", typeof(System.Decimal)); dtbudget.Columns.Add("CA", typeof(System.Decimal)); dtbudget.Columns.Add("PU", typeof(System.Decimal)); dtbudget.Columns.Add("PB", typeof(System.Decimal)); dtbudget.Columns.Add("PPercent", typeof(System.Decimal)); dtbudget.Columns.Add("DU", typeof(System.Decimal)); dtbudget.Columns.Add("DB", typeof(System.Decimal)); dtbudget.Columns.Add("DPercent", typeof(System.Decimal)); dtbudget.Columns.Add("SU", typeof(System.Decimal)); dtbudget.Columns.Add("SB", typeof(System.Decimal)); dtbudget.Columns.Add("SPercent", typeof(System.Decimal)); //取得预算日期 string sqlA = "select convert(varchar(10),min(Tdate0),111) as BudgetDate from ETraveleDetail where No='" + ID + "'"; DataTable dtA = dbc.GetData("eReimbursement", sqlA); //取得本币与成本中心汇率转换 decimal rate = 1; string CurLocal = dtall.Rows[0]["Cur"].ToString(); string CurBudget = DIMERCO.SDK.Utilities.LSDK.GetStationCurrencyByCode(dtf.Rows[0]["Station2"].ToString()); if (CurLocal != CurBudget) { rate = DIMERCO.SDK.Utilities.LSDK.GetBudgetConverRate(CurLocal, CurBudget, Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Year); } //取得4大类合计 //string sqlB = "select sum(T1) as T1,sum(T2) as T2,sum(T3) as T3,sum(T4) as T4 from (select case when AccountCode='62012000' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T1],case when AccountCode='62010900' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T2],case when AccountCode='62011900' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T3],case when AccountCode='62010500' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T4] from ETraveleDetail where No=" + ID + ") t"; string sqlB = "select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62012000' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62012000' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62010900' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62010900' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62011900' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62011900' union all select sum(isnull(Pamount,0)) as PA,sum(isnull(Camount,0)) as CA,sum(isnull(Pamount,0)+isnull(Camount,0)) as Amount,'62010500' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62010500'"; DataTable dtB = dbc.GetData("eReimbursement", sqlB); //取得传递预算的参数 string userid = dtf.Rows[0]["PersonID"].ToString(); string dpt = dtf.Rows[0]["Department"].ToString(); string ostation = dtf.Rows[0]["Station2"].ToString();//预算站点,与基本信息中的CostCenter一致(Station2) string tstation = ostation;//Etravel表中的Station2,目前与预算站点一致,不允许更改 string year = Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Year.ToString(); string month = Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Month.ToString(); string accountcode = ""; for (int g = 0; g < dtB.Rows.Count; g++) { if (Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()) != 0) { DataRow dr = dtbudget.NewRow(); dr["Current"] = Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()); dr["PA"] = Convert.ToDecimal(dtB.Rows[g]["PA"].ToString()); dr["CA"] = Convert.ToDecimal(dtB.Rows[g]["CA"].ToString()); dr["COACode"] = dtB.Rows[g]["COACode"].ToString(); accountcode = dtB.Rows[g]["COACode"].ToString(); DataTable dtC = new DataTable(); dtC = Comm.ExRtnEB(userid, dpt, ostation, tstation, accountcode, year, month, "T", ID); for (int h = 0; h < dtC.Rows.Count; h++) { if (dtC.Rows[h]["Type"].ToString() == "全年个人") { dr["PU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["PB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } else if (dtC.Rows[h]["Type"].ToString() == "全年部门") { dr["DU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["DB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } else if (dtC.Rows[h]["Type"].ToString() == "全年站点") { dr["SU"] = Convert.ToDecimal(dtC.Rows[h]["Used"].ToString()); dr["SB"] = Convert.ToDecimal(dtC.Rows[h]["Budget"].ToString()); } } dtbudget.Rows.Add(dr); } } //计算%,取得名称,预算转换为本地汇率 for (int g = 0; g < dtbudget.Rows.Count; g++) { if (Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["PPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["DPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["SPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); } if (dtbudget.Rows[g]["COACode"].ToString() == "62012000") { dtbudget.Rows[g]["EName"] = "Travel expense"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62010900") { dtbudget.Rows[g]["EName"] = "Entertainment"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62011900") { dtbudget.Rows[g]["EName"] = "Transportation"; } else if (dtbudget.Rows[g]["COACode"].ToString() == "62010500") { dtbudget.Rows[g]["EName"] = "Communication"; } dtbudget.Rows[g]["PU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString()), 2); dtbudget.Rows[g]["PB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); dtbudget.Rows[g]["DU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString()), 2); dtbudget.Rows[g]["DB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); dtbudget.Rows[g]["SU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString()), 2); dtbudget.Rows[g]["SB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); dtbudget.Rows[g]["RequestID"] = ID; dtbudget.Rows[g]["Status"] = 3; dtbudget.Rows[g]["LocalCur"] = CurLocal; dtbudget.Rows[g]["CenterCur"] = CurBudget; dtbudget.Rows[g]["Rate"] = rate; } if (!SendMail(paraType, para, dt.Rows[i + 1]["id"].ToString(), dtbudget))//Budget已经计入Current,%不需要重新计算 { ErrorHandle("Error mail address."); return; } if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { X.AddScript("Ext.Msg.show({ title: '提示', msg: '批准成功,该申请单已经完成.', buttons: { ok: 'Ok' }, fn: function (btn) { parent.Window1.hide();parent.Button1.fireEvent('click'); } });"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Approved.', buttons: { ok: 'Ok' }, fn: function (btn) { parent.Window1.hide();parent.Button1.fireEvent('click'); } });"); } } else//通用费用 { string sqlf = "select * from Ecommon where ID=" + ID; DataTable dtf = dbc.GetData("eReimbursement", sqlf); //140226 显示预算 DataTable dtbudget = new DataTable(); dtbudget.Columns.Add("RequestID", typeof(System.Int32)); dtbudget.Columns.Add("Year", typeof(System.String)); dtbudget.Columns.Add("Status", typeof(System.Int16)); dtbudget.Columns.Add("EName", typeof(System.String)); dtbudget.Columns.Add("COACode", typeof(System.String)); dtbudget.Columns.Add("LocalCur", typeof(System.String)); dtbudget.Columns.Add("CenterCur", typeof(System.String)); dtbudget.Columns.Add("Rate", typeof(System.Decimal)); dtbudget.Columns.Add("Current", typeof(System.Decimal)); dtbudget.Columns.Add("PU", typeof(System.Decimal)); dtbudget.Columns.Add("PB", typeof(System.Decimal)); dtbudget.Columns.Add("PPercent", typeof(System.Decimal)); dtbudget.Columns.Add("DU", typeof(System.Decimal)); dtbudget.Columns.Add("DB", typeof(System.Decimal)); dtbudget.Columns.Add("DPercent", typeof(System.Decimal)); dtbudget.Columns.Add("SU", typeof(System.Decimal)); dtbudget.Columns.Add("SB", typeof(System.Decimal)); dtbudget.Columns.Add("SPercent", typeof(System.Decimal)); string sqld = "select * from EeommonDetail where [No]='" + ID + "' order by id"; DataTable dtall = new DataTable(); dtall = dbc.GetData("eReimbursement", sqld); //取得预算日期 string sqlA = "select AccountCode as COACode,case when t1.Type='O' then t2.SAccountName else TDicSubType.EText end as [EName],year(Tdate) as [Year],Amount from EeommonDetail t1 left join (select * from Edic where KeyValue='SubType') TDicSubType on TDicSubType.CValue=t1.Type left join AccoundCode t2 on t2.SAccountCode=t1.AccountCode where t1.No='" + ID + "'"; DataTable dtA = dbc.GetData("eReimbursement", sqlA); //取得本币与成本中心汇率转换 decimal rate = 1; string CurLocal = dtall.Rows[0]["Cur"].ToString(); string CurBudget = DIMERCO.SDK.Utilities.LSDK.GetStationCurrencyByCode(dtf.Rows[0]["Station2"].ToString()); //合计数据 DataTable dtB = new DataTable(); dtB.Columns.Add("EName", typeof(System.String)); dtB.Columns.Add("COACode", typeof(System.String)); dtB.Columns.Add("Amount", typeof(System.Decimal)); dtB.Columns.Add("Year", typeof(System.String)); for (int g = 0; g < dtA.Rows.Count; g++) { bool er = false; for (int j = 0; j < dtB.Rows.Count; j++) { if (dtB.Rows[j]["COACode"].ToString() == dtA.Rows[g]["COACode"].ToString() && dtB.Rows[j]["Year"].ToString() == dtA.Rows[g]["Year"].ToString())//已有记录 { er = true; break; } } if (!er)//不存在重复记录 { DataRow dr = dtB.NewRow(); dr["EName"] = dtA.Rows[g]["EName"].ToString(); dr["COACode"] = dtA.Rows[g]["COACode"].ToString(); dr["Amount"] = dtA.Compute("Sum(Amount)", "Year = " + dtA.Rows[g]["Year"].ToString() + " and COACode = " + dtA.Rows[g]["COACode"].ToString()); dr["Year"] = dtA.Rows[g]["Year"].ToString(); dtB.Rows.Add(dr); } } string userid = dtf.Rows[0]["PersonID"].ToString(); string ostation = ""; string station = ""; string department = ""; DataSet ds2 = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(userid); if (ds2.Tables[0].Rows.Count == 1) { DataTable dt1 = ds2.Tables[0]; ostation = dt1.Rows[0]["CostCenter"].ToString();//记录用户预算站点,即CostCenter station = dt1.Rows[0]["stationCode"].ToString();//记录用户所在站点 department = dt1.Rows[0]["CRPDepartmentName"].ToString(); } string accountcode = ""; for (int g = 0; g < dtB.Rows.Count; g++) { if (Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()) != 0) { DataRow dr = dtbudget.NewRow(); dr["EName"] = dtB.Rows[g]["EName"].ToString(); dr["Current"] = Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()); dr["COACode"] = dtB.Rows[g]["COACode"].ToString(); dr["Year"] = dtB.Rows[g]["Year"].ToString(); accountcode = dtB.Rows[g]["COACode"].ToString(); DataTable dtC = new DataTable(); dtC = Comm.RtnEB(userid, department, ostation, ostation, accountcode, dtB.Rows[g]["Year"].ToString(), "1"); for (int f = 0; f < dtC.Rows.Count; f++) { if (dtC.Rows[f]["Type"].ToString() == "全年个人") { dr["PU"] = Convert.ToDecimal(dtC.Rows[f]["Used"].ToString()); dr["PB"] = Convert.ToDecimal(dtC.Rows[f]["Budget"].ToString()); } else if (dtC.Rows[f]["Type"].ToString() == "全年部门") { dr["DU"] = Convert.ToDecimal(dtC.Rows[f]["Used"].ToString()); dr["DB"] = Convert.ToDecimal(dtC.Rows[f]["Budget"].ToString()); } else if (dtC.Rows[f]["Type"].ToString() == "全年站点") { dr["SU"] = Convert.ToDecimal(dtC.Rows[f]["Used"].ToString()); dr["SB"] = Convert.ToDecimal(dtC.Rows[f]["Budget"].ToString()); } } dtbudget.Rows.Add(dr); } } //计算%,取得名称,转为本地币种汇率,增加列记录Currency为邮件准备 for (int g = 0; g < dtbudget.Rows.Count; g++) { if (CurLocal != CurBudget) { rate = DIMERCO.SDK.Utilities.LSDK.GetBudgetConverRate(CurLocal, CurBudget, Convert.ToInt16(dtbudget.Rows[g]["Year"].ToString())); } if (Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["PPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString())/rate + Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["DPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); } if (Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()) != 0)//如果Budget不为0,则计算% { dtbudget.Rows[g]["SPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[g]["Current"].ToString()) / rate + Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); } dtbudget.Rows[g]["PU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PU"].ToString()), 2); dtbudget.Rows[g]["PB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["PB"].ToString()), 2); dtbudget.Rows[g]["DU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DU"].ToString()), 2); dtbudget.Rows[g]["DB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["DB"].ToString()), 2); dtbudget.Rows[g]["SU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SU"].ToString()), 2); dtbudget.Rows[g]["SB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[g]["SB"].ToString()), 2); dtbudget.Rows[g]["RequestID"] = ID; dtbudget.Rows[g]["Status"] = 2; dtbudget.Rows[g]["LocalCur"] = CurLocal; dtbudget.Rows[g]["CenterCur"] = CurBudget; dtbudget.Rows[g]["Rate"] = rate; } if (!SendMail("G", para, dt.Rows[i + 1]["id"].ToString(), dtbudget))//Budget已经计入Current,%不需要重新计算 { ErrorHandle("Error mail address."); return; } string srw = ""; //DataTable dtbudget = new DataTable(); //if (!SendMail(paraType, para, dt.Rows[i + 1]["id"].ToString(), dtbudget)) //{ // ErrorHandle("Error mail address."); return; //} if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn") { X.AddScript("Ext.Msg.show({ title: '提示', msg: '批准成功,该申请单已经完成.', buttons: { ok: 'Ok' }, fn: function (btn) { parent.Window1.hide();parent.Button1.fireEvent('click'); } });"); } else { X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Approved.', buttons: { ok: 'Ok' }, fn: function (btn) { parent.Window1.hide();parent.Button1.fireEvent('click'); } });"); } } } } break; } } } }