using System; using System.Data; using System.Data.Common; using System.Collections.Generic; using System.Text; using DSWeb.MvcShipping.Models.MsOpPlan; using Microsoft.Practices.EnterpriseLibrary.Data; using DSWeb.EntityDA; using DSWeb.Areas.CommMng.Models; using HcUtility.Comm; using HcUtility.Core; using System.Data.SqlClient; using DSWeb.DataAccess; using DSWeb.MvcShipping.Models.MsCodeServiceFeeTemplate; using DSWeb.MvcShipping.DAL.MsCodeServiceFeeTemplateDAL; using System.Web; using DSWeb.MvcShipping.Models.MsSysBillNoSet; using DSWeb.MvcShipping.DAL.MsSysBillNoSet; using DSWeb.MvcShipping.DAL.MsChFeeDAL; using DSWeb.MvcShipping.Models.MsChFee; using DSWeb.MvcShipping.DAL.MsOpOtherDAL; using DSWeb.MvcShipping.Models.MsOpOther; using DSWeb.Areas.SysMng.DAL.SysUser; using DSWeb.MvcShipping.DAL.MsInfoClient; namespace DSWeb.MvcShipping.DAL.MsOpPlanDAL { public class MsOpPlanDAL { #region Inquery DataList static public List GetDataList(int start, int limit, string strCondition, string userid, string usercode, string companyid,bool issale,string sort = null) { if (issale) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and TOSALE=1 and SALE='"+usercode+"'"; } else { strCondition = " TOSALE=1 and SALE='" + usercode + "'"; } } else { var rangstr = GetRangDAStr("index", userid, usercode, companyid); if (!string.IsNullOrEmpty(rangstr)) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and " + rangstr; } else { strCondition = rangstr; } } } var strSql = new StringBuilder(); strSql.Append(@"SELECT * from (SELECT row_number() over ("); var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } else { strSql.Append(" order by SFNO "); } strSql.Append(@") as num , "); // strSql.Append("op_plan.[BSNO],[MASTERNO],[CUSTNO],[BSSTATUS],[BSDATE],[ACCDATE],[BSSOURCE],[BSSOURCEDETAIL],[CUSTOMERNAME],[SALE]"); strSql.Append(",(SELECT TOP 1 STATUS FROM V_OP_STATUS WITH (NOLOCK) WHERE BSNO=op_plan.BSNO ORDER BY COMPTIME DESC,INPUTTIME DESC) as OPSTATUS"); strSql.Append(",[AMOUNT],[FEEDATE],[REMARK],[OTREMARK],[INPUTBY],[INPUTDATE],[CORPID],[TOSALE],[SFNO],dbo.F_GetBillDrFeeStatus(op_plan.MASTERNO) DRFEESTATUS,dbo.F_GetBillCrFeeStatus(op_plan.MASTERNO) CRFEESTATUS"); strSql.Append(",I.TTLDR,I.TTLINVDR,(SELECT CUSTNO FROM OP_OTHER WHERE BSNO=op_plan.MASTERNO) BSCUSTNO,MODIFIEDUSER,MODIFIEDTIME FROM op_plan"); strSql.Append(" LEFT JOIN v_op_gain_dr_INV I ON (I.BSNO=op_plan.MASTERNO) "); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" where " + strCondition); } strSql.Append(@")as t "); strSql.Append(string.Format("where t.num>={0} and t.num<={1} order by t.num", start, start + limit)); // return SetData(strSql.ToString()); } static public List GetDataAllList(int start, int limit, string strCondition) { var strSql = new StringBuilder(); strSql.Append(@"SELECT * from (SELECT row_number() over ("); strSql.Append(" order by BSDATE desc"); strSql.Append(@") as num , "); // strSql.Append("op_plan.[BSNO],[MASTERNO],[CUSTNO],[BSSTATUS],[BSDATE],[ACCDATE],[BSSOURCE],[BSSOURCEDETAIL],[CUSTOMERNAME],[SALE]"); strSql.Append(",(SELECT TOP 1 STATUS FROM V_OP_STATUS WITH (NOLOCK) WHERE BSNO=op_plan.BSNO ORDER BY COMPTIME DESC,INPUTTIME DESC) as OPSTATUS"); strSql.Append(",[AMOUNT],[FEEDATE],[REMARK],[OTREMARK],[INPUTBY],[INPUTDATE],[CORPID],[TOSALE],[SFNO],dbo.F_GetBillDrFeeStatus(op_plan.MASTERNO) DRFEESTATUS,dbo.F_GetBillCrFeeStatus(op_plan.MASTERNO) CRFEESTATUS"); strSql.Append(",I.TTLDR,I.TTLINVDR,(SELECT CUSTNO FROM OP_OTHER WHERE BSNO=op_plan.MASTERNO) BSCUSTNO,MODIFIEDUSER,MODIFIEDTIME FROM op_plan"); strSql.Append(" LEFT JOIN v_op_gain_dr_INV I ON (I.BSNO=op_plan.MASTERNO) "); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" where " + strCondition); } strSql.Append(@")as t "); strSql.Append(string.Format("where t.num>={0} and t.num<={1} order by t.num", start, start + limit)); // return SetData(strSql.ToString()); } public static int getTotalCount(string strCondition, string userid, string usercode, string companyid, bool issale) { if (issale) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and TOSALE=1 and SALE='" + usercode + "'"; } else { strCondition = " TOSALE=1 and SALE='" + usercode + "'"; } } else { var rangstr = GetRangDAStr("index", userid, usercode, companyid); if (!string.IsNullOrEmpty(rangstr)) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and " + rangstr; } else { strCondition = rangstr; } } } StringBuilder strSql = new StringBuilder(); strSql.Append("select count(*) "); strSql.Append(" from op_plan "); strSql.Append(" LEFT JOIN v_op_gain_dr_INV I ON (I.BSNO=op_plan.MASTERNO) "); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" where " + strCondition); } int cnt = 0; Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { cnt = Convert.ToInt32(reader[0]); } } return cnt; } static public string GetDataListStr(string strCondition, string userid, string usercode, string companyid, bool issale, string sort = null) { if (issale) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and TOSALE=1 and SALE='" + usercode + "'"; } else { strCondition = " TOSALE=1 and SALE='" + usercode + "'"; } } else { var rangstr = GetRangDAStr("index", userid, usercode, companyid); if (!string.IsNullOrEmpty(rangstr)) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and " + rangstr; } else { strCondition = rangstr; } } } // String strSql = "SELECT op_plan.[BSNO],[MASTERNO],[CUSTNO],[BSSTATUS],[BSDATE],[ACCDATE],[BSSOURCE],[BSSOURCEDETAIL],[CUSTOMERNAME],[SALE]"; strSql = strSql + ",(SELECT TOP 1 STATUS FROM V_OP_STATUS WITH (NOLOCK) WHERE BSNO=op_plan.BSNO ORDER BY COMPTIME DESC,INPUTTIME DESC) as OPSTATUS"; strSql = strSql + ",[AMOUNT],[FEEDATE],[REMARK],[OTREMARK],[INPUTBY],[INPUTDATE],[CORPID],[TOSALE],[SFNO],dbo.F_GetBillDrFeeStatus(op_plan.MASTERNO) DRFEESTATUS,dbo.F_GetBillCrFeeStatus(op_plan.MASTERNO) CRFEESTATUS"; strSql = strSql + ",I.TTLDR,I.TTLINVDR,(SELECT CUSTNO FROM OP_OTHER WHERE BSNO=op_plan.MASTERNO) BSCUSTNO,MODIFIEDUSER,MODIFIEDTIME,'' DRINVSTATUS FROM op_plan"; strSql = strSql + " LEFT JOIN v_op_gain_dr_INV I ON (I.BSNO=op_plan.MASTERNO)"; if (!string.IsNullOrEmpty(strCondition)) { strSql += " where " + strCondition; } var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql += " order by " + sortstring; } else { strSql += " order by BSDATE desc"; } return strSql.ToString(); } static public MsOpPlan GetData(string condition) { String strSql = "SELECT op_plan.[BSNO],[MASTERNO],[CUSTNO],[BSSTATUS],[BSDATE],[ACCDATE],[BSSOURCE],[BSSOURCEDETAIL],[CUSTOMERNAME],[SALE]"; strSql = strSql + ",(SELECT TOP 1 STATUS FROM V_OP_STATUS WITH (NOLOCK) WHERE BSNO=op_plan.BSNO ORDER BY COMPTIME DESC,INPUTTIME DESC) as OPSTATUS"; strSql = strSql + ",[AMOUNT],[FEEDATE],[REMARK],[OTREMARK],[INPUTBY],[INPUTDATE],[CORPID],[TOSALE],[SFNO],dbo.F_GetBillDrFeeStatus(op_plan.MASTERNO) DRFEESTATUS,dbo.F_GetBillCrFeeStatus(op_plan.MASTERNO) CRFEESTATUS "; strSql = strSql + ",I.TTLDR,I.TTLINVDR,(SELECT CUSTNO FROM OP_OTHER WHERE BSNO=op_plan.MASTERNO) BSCUSTNO,MODIFIEDUSER,MODIFIEDTIME FROM op_plan"; strSql = strSql + " LEFT JOIN v_op_gain_dr_INV I ON (I.BSNO=op_plan.MASTERNO)"; if (!string.IsNullOrEmpty(condition)) { strSql += " where " + condition; } var list=SetData(strSql); if (list.Count > 0) { return list[0]; } return new MsOpPlan(); } private static List SetData(String strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsOpPlan data = new MsOpPlan(); #region Set DB data to Object data.BSNO = Convert.ToString(reader["BSNO"]); data.MASTERNO = Convert.ToString(reader["MASTERNO"]); data.BSSTATUS = Convert.ToString(reader["BSSTATUS"]); data.OPSTATUS = Convert.ToString(reader["OPSTATUS"]); data.DRFEESTATUS = getfeestatus(Convert.ToString(reader["DRFEESTATUS"])); data.CRFEESTATUS = getfeestatus(Convert.ToString(reader["CRFEESTATUS"])); data.CUSTNO = Convert.ToString(reader["CUSTNO"]); data.BSCUSTNO = Convert.ToString(reader["BSCUSTNO"]); data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]); data.BSDATE = Convert.ToString(reader["BSDATE"]); data.ACCDATE = Convert.ToString(reader["ACCDATE"]); data.BSSOURCE = Convert.ToString(reader["BSSOURCE"]); data.BSSOURCEDETAIL = Convert.ToString(reader["BSSOURCEDETAIL"]); data.SALE = Convert.ToString(reader["SALE"]); data.CORPID = Convert.ToString(reader["CORPID"]); data.REMARK = Convert.ToString(reader["REMARK"]); data.OTREMARK = Convert.ToString(reader["OTREMARK"]); data.INPUTBY = Convert.ToString(reader["INPUTBY"]); if (reader["INPUTDATE"] != DBNull.Value) data.INPUTDATE = Convert.ToDateTime(reader["INPUTDATE"]).ToString("yyyy-MM-dd hh:mm:ss"); data.FEEDATE = Convert.ToString(reader["FEEDATE"]); decimal ttldr = 0; if (reader["TTLDR"] != DBNull.Value) ttldr = Convert.ToDecimal(reader["TTLDR"]); decimal ttlinvdr = 0; if (reader["TTLDR"] != DBNull.Value) ttlinvdr = Convert.ToDecimal(reader["TTLINVDR"]); if (ttlinvdr == 0) data.DRINVSTATUS = "未开票"; else if (ttlinvdr == ttldr) data.DRINVSTATUS = "已开票"; else if (ttlinvdr != ttldr) data.DRINVSTATUS = "部分开票"; if (reader["TOSALE"] != DBNull.Value) data.TOSALE = Convert.ToBoolean(reader["TOSALE"]); if (reader["AMOUNT"] != DBNull.Value) data.AMOUNT = Convert.ToDecimal(reader["AMOUNT"]); data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]); if (reader["MODIFIEDTIME"] != DBNull.Value) data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]).ToString("yyyy-MM-dd hh:mm:ss"); #endregion headList.Add(data); } reader.Close(); } return headList; } public static string getfeestatus(string feestatusint) { var result = ""; if (feestatusint == "0:") { return "审核通过"; } else if (feestatusint == "1:") { return "录入状态"; } else if (feestatusint == "2:") { return "提交审核"; } else if (feestatusint == "8:") { return "部分结算"; } else if (feestatusint == "9:") { return "结算完毕"; } else if (feestatusint == "") { return "未录入"; } else if (feestatusint == "3:") { return "申请修改"; } else if (feestatusint == "4:") { return "申请删除"; } else if (feestatusint == "6:") { return "驳回提交"; } else if (feestatusint == "7:") { return "驳回申请"; } else if (feestatusint.IndexOf("9:") > -1) { return "部分结算"; } else if (feestatusint.IndexOf("8:") > -1) { return "部分结算"; } else if (feestatusint.IndexOf("0:") > -1) { return "部分审核"; } else if (feestatusint.IndexOf("2:") > -1) { return "部分提交"; } else if (feestatusint.IndexOf("6:") > -1) { return "驳回提交"; } else if (feestatusint.IndexOf("7:") > -1) { return "驳回申请"; } return result; } #endregion #region 明细表 public static DBResult DeleteDetail(MsOpPlan headData) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmdDelete = db.GetSqlStringCommand("delete from op_plan_detail where BSNO='" + headData.BSNO + "'"); db.ExecuteNonQuery(cmdDelete, tran); tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "删除出现错误,请重试或联系系统管理员"; return result; } } result.Success = true; result.Message = "保存成功"; return result; } #endregion #region 判断编码是否有重复 static public int GetRdCount(string strCondition) { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(" Count(BSNO) AS CT "); strSql.Append(" from op_plan "); if (strCondition.Trim() != String.Empty) { strSql.Append(" where " + strCondition); } var ct=0; Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { ct = Convert.ToInt16(reader["CT"]); } reader.Close(); } return ct; } #endregion #region EXCEL导入 public static DBResult ImpOpPlan(DataTable table, string userid, string username, string companyid) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); var cmdInsert = db.GetSqlStringCommand( @"insert into op_plan (BSNO,CUSTNO,BSDATE,ACCDATE,BSSOURCE,BSSOURCEDETAIL,CUSTOMERNAME,SALE,AMOUNT,FEEDATE,REMARK,OTREMARK,INPUTBY,INPUTDATE,SFNO,CORPID) values (@BSNO,@CUSTNO,@BSDATE,@ACCDATE,@BSSOURCE,@BSSOURCEDETAIL,@CUSTOMERNAME,@SALE,@AMOUNT,@FEEDATE,@REMARK,@OTREMARK,@INPUTBY,@INPUTDATE,@SFNO,@CORPID) "); var _date = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); var FEEDATE = ""; using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { int num = 0; foreach (DataRow row in table.Rows) { if (row[1].ToString() != "") { num = num + 1; FEEDATE = Convert.ToString(row["首次计费时间"]).Replace("/","-"); if (FEEDATE != "") { var datelist = FEEDATE.Split('-'); if (datelist.Length> 2) { var datemonth = datelist[1]; if (datemonth.Length == 1) datemonth = "0" + datemonth; var dateday = datelist[2]; if (dateday.Length == 1) dateday = "0" + dateday; FEEDATE = datelist[0] + "-" + datemonth + "-" + dateday; if (Convert.ToDateTime(FEEDATE.Substring(0, 10)) > DateTime.Now.AddMonths(1)) FEEDATE = Convert.ToDateTime(FEEDATE.Substring(0, 10)).AddYears(-70).ToString("yyyy-MM-dd"); else FEEDATE = Convert.ToDateTime(FEEDATE.Substring(0, 10)).ToString("yyyy-MM-dd"); } } var ACCDATE = ""; var MONTH = Convert.ToString(row["月份"]); if (MONTH.Length < 7) { var YEAR = DateTime.Now.ToString("yyyy"); if (MONTH == "12" || MONTH == "11") { var NOWMONTH = DateTime.Now.Month; if (NOWMONTH < 3) { YEAR = DateTime.Now.AddYears(-1).ToString("yyyy"); } } if (MONTH.Length == 1) MONTH = "0" + MONTH; ACCDATE = YEAR + "-" + MONTH; } else { ACCDATE = MONTH; } //if (!string.IsNullOrEmpty(CUSTNO)) //{ cmdInsert.Parameters.Clear(); db.AddInParameter(cmdInsert, "@BSNO", DbType.String, Guid.NewGuid().ToString()); db.AddInParameter(cmdInsert, "@CUSTNO", DbType.String, Convert.ToString(row["计划单号"])); db.AddInParameter(cmdInsert, "@BSDATE", DbType.String, System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); db.AddInParameter(cmdInsert, "@ACCDATE", DbType.String, ACCDATE); db.AddInParameter(cmdInsert, "@BSSOURCE", DbType.String, Convert.ToString(row["业务来源"])); db.AddInParameter(cmdInsert, "@BSSOURCEDETAIL", DbType.String, Convert.ToString(row["来源明细"])); db.AddInParameter(cmdInsert, "@CUSTOMERNAME", DbType.String, Convert.ToString(row["客户名称"])); db.AddInParameter(cmdInsert, "@SALE", DbType.String, Convert.ToString(row["揽货人"])); db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, Convert.ToDecimal(row["金额"])); db.AddInParameter(cmdInsert, "@FEEDATE", DbType.String, FEEDATE); db.AddInParameter(cmdInsert, "@REMARK", DbType.String, Convert.ToString(row["备注"])); db.AddInParameter(cmdInsert, "@OTREMARK", DbType.String, Convert.ToString(row["其他备注"])); db.AddInParameter(cmdInsert, "@INPUTBY", DbType.String, username); db.AddInParameter(cmdInsert, "@INPUTDATE", DbType.String, System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); db.AddInParameter(cmdInsert, "@SFNO", DbType.Int32, num); db.AddInParameter(cmdInsert, "@CORPID", DbType.String, companyid); db.ExecuteNonQuery(cmdInsert, tran); //} } } tran.Commit(); result.Success = true; result.Message = "导入成功"; } catch (Exception ex) { tran.Rollback(); result.Success = false; result.Message = "导入中出错:" + ex.Message+ FEEDATE; } } return result; } #endregion public static DBResult SaveToOther(List bodyList, string userid, string username, string companyid) { var result = new DBResult(); if (bodyList != null) { T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); string rq = T_ALL_DA.GetStrSQL("rq", "select getdate() as rq"); foreach (var enumValue in bodyList) { var headData = new MsOpOtherEntity(); headData.CORPID = companyid; headData.BSNO = "topother" + Guid.NewGuid().ToString().Replace("-", ""); headData.ACCDATE = enumValue.ACCDATE; headData.SALE = enumValue.SALE; headData.BSSOURCE = enumValue.BSSOURCE; headData.BSSOURCEDETAIL = enumValue.BSSOURCEDETAIL; headData.REMARK = enumValue.REMARK; headData.CUSTOMERNAME = enumValue.CUSTOMERNAME; headData.DbOperationType = DbOperationType.DbotIns; headData.BSDATE = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); headData.ETD= DateTime.Now.ToString("yyyy-MM-dd"); headData.OPLB = "op_other";//业务类型 headData.OPLBNAME = "散杂运输";//业务类型名称 headData.BSSTATUS = false;//业务状态 headData.FEESTATUS = false;//费用状态 headData.ISVOU = false;//是否生成凭证 headData.VOUNO = "";//凭证号 headData.CREATEUSER = userid;//创建人 headData.CREATETIME = DateTime.Parse(rq);//创建时间 headData.MODIFIEDUSER = userid;//最后一次操作人 headData.MODIFIEDTIME = DateTime.Parse(rq);//最后一次操作时间 var billnoset = MsSysBillNoSetDAL.GetData("OPLBNAME='综合业务'", companyid); if (billnoset.BILLTYPE != "") { var CUSTOMHEAD = ""; if (billnoset.CUSTOMHEAD != "") { var HBLCUSTOMHEAD = billnoset.CUSTOMHEAD; if ((HBLCUSTOMHEAD.IndexOf("[SALE]") >= 0) && !string.IsNullOrEmpty(headData.SALE)) { var user = SysUserDAL.GetData("u.SHOWNAME='" + headData.SALE + "'"); if (!string.IsNullOrEmpty(user.NOCODE)) HBLCUSTOMHEAD = HBLCUSTOMHEAD.Replace("[SALE]", user.NOCODE); } if ((HBLCUSTOMHEAD.IndexOf("[OP]") >= 0) && !string.IsNullOrEmpty(headData.OP)) { var user = SysUserDAL.GetData("u.SHOWNAME='" + headData.OP + "'"); if (!string.IsNullOrEmpty(user.NOCODE)) HBLCUSTOMHEAD = HBLCUSTOMHEAD.Replace("[OP]", user.NOCODE); } CUSTOMHEAD = HBLCUSTOMHEAD; var CUST = MsInfoClientDAL.GetData("SHORTNAME='" + headData.CUSTOMERNAME + "'"); CUSTOMHEAD = CUSTOMHEAD.Replace("[CUSTCODE]", CUST.CODENAME); } headData.CUSTNO = MsSysBillNoSetDAL.GetBillNo(billnoset, headData.ETD.ToString().Trim(), headData.ACCDATE.ToString().Trim(), "", headData.OP, headData.SALECORPID, CUSTOMHEAD); } else { headData.CUSTNO = MsOpOtherDAL.MsOpOtherDAL.getCodeRule("委托编号", 6, "CUSTNO", headData.BSDATE.ToString().Trim(), headData.ACCDATE.ToString().Trim(), userid, companyid); } var modb = new ModelObjectDB(); result = modb.Save(headData); if (result.Success) { var newfeelist = new List(); var enumValueBody = new MsChFee(); enumValueBody.GId = Guid.NewGuid().ToString(); enumValueBody.BsNo = "*"; enumValueBody.FeeType = 1; enumValueBody.FeeStatus = 0; if (headData.BSSOURCE=="维护"||headData.BSSOURCE.IndexOf("续费")>0) enumValueBody.FeeName ="维护费"; else enumValueBody.FeeName ="软件费"; enumValueBody.CustomerName = enumValue.CUSTOMERNAME; enumValueBody.EnteroPerator = userid; enumValueBody.Unit = "票"; enumValueBody.Quantity = 1; enumValueBody.UnitPrice = enumValue.AMOUNT; enumValueBody.Amount = enumValue.AMOUNT; enumValueBody.NoTaxAmount = enumValue.AMOUNT; enumValueBody.Currency = "RMB"; enumValueBody.ExChangerate = 1; enumValueBody.IsOpen = "0"; enumValueBody.IsAdvancedpay = "0"; //enumValueBody.FeeStatus = 1; enumValueBody.TaxRate = 0; enumValueBody.AccTaxRate = 0; enumValueBody.IsInvoice = "0"; enumValueBody.LOCALCURR = "RMB"; if (enumValueBody.Amount != 0) newfeelist.Add(enumValueBody); if (newfeelist.Count != 0) MsChFeeDAL.MsChFeeDAL.SaveUpdateFee(newfeelist, headData.BSNO, userid); enumValue.DbOperationType = DbOperationType.DbotUpd; enumValue.MASTERNO = headData.BSNO; enumValue.MODIFIEDUSER = userid;//最后一次操作人 enumValue.MODIFIEDTIME =DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");//最后一次操作时间 modb.Save(enumValue); } } } result.Success = true; result.Message = "保存成功" + result.Message; return result; } #region Rang权限范围 public static string GetRangDAStr(string tb, string userid, string username, string companyid) { string str = ""; var strSql = new StringBuilder(); strSql.Append("SELECT"); strSql.Append(" VISIBLERANGE,OPERATERANGE,AUTHORITYID,VSSQL"); strSql.Append(" from VW_User_Authority"); strSql.Append(" where [NAME]='modOpPlanList' and USERID='" + userid + "' and ISDELETE=0"); string visiblerange = "4"; string operaterange = "4"; string AUTHORITYID = ""; string VSSQL = ""; Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { visiblerange = Convert.ToString(reader["VISIBLERANGE"]); operaterange = Convert.ToString(reader["OPERATERANGE"]); AUTHORITYID = Convert.ToString(reader["AUTHORITYID"]); VSSQL = Convert.ToString(reader["VSSQL"]); break; } reader.Close(); } if (visiblerange == "4") { str = " (INPUTBY='" + username + "' OR SALE='" + username + "')"; } else if (visiblerange == "3") { str = " (INPUTBY='" + username + "' OR SALE='" + username + "')"; } else if (visiblerange == "2") { var rangeDa = new RangeDA(); var deptname = rangeDa.GetDEPTNAME(userid); str = " (INPUTBY in (select showname from [user] where GID in (select USERID from user_company where COMPANYID='" + companyid + "') and GID in (select userid from user_baseinfo where DEPTNAME='" + deptname + "'))" + " OR SALE in (select showname from [user] where GID in (select USERID from user_company where COMPANYID='" + companyid + "') and GID in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')))"; } else if (visiblerange == "1") { str = " (UPPER(op_plan.Corpid)='" + companyid + "') "; } else if (visiblerange == "5") { if (tb == "index") { var userstr = new StringBuilder(); userstr.Append(" select COMPANYID from user_authority_range_company where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1"); Database userdb = DatabaseFactory.CreateDatabase(); using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString())) { str = ""; while (reader.Read()) { if (str == "") { str = " (op_plan.Corpid='" + Convert.ToString(reader["COMPANYID"]) + "' "; } else { str = str + " or op_plan.Corpid='" + Convert.ToString(reader["COMPANYID"]) + "'"; }; } str = str + ")"; reader.Close(); } } else { str = " (UPPER(op_plan.Corpid)='" + companyid + "') "; } } else if (visiblerange == "6") { if (tb == "index") { var opstr = ""; var userstr = new StringBuilder(); userstr.Append(" select OPID,(select SHOWNAME from [user] where GID=user_authority_range_op.OPID) SHOWNAME from user_authority_range_op where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1"); Database userdb = DatabaseFactory.CreateDatabase(); using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString())) { while (reader.Read()) { if (opstr == "") { opstr = " ('" + Convert.ToString(reader["SHOWNAME"]) + "'"; } else { opstr = opstr + ",'" + Convert.ToString(reader["SHOWNAME"]) + "'"; }; } if (opstr != "") opstr = opstr + ")"; reader.Close(); } if (opstr == "") opstr = "('" + username + "')"; str = " (INPUTBY in " + opstr + " or SALE IN " + opstr + " )"; } else { str = " (UPPER(op_plan.Corpid)='" + companyid + "') "; } } else if (visiblerange == "0") { str = " 1=1 "; } VSSQL = VSSQL.Trim(); if (!string.IsNullOrEmpty(VSSQL)) { if (!string.IsNullOrEmpty(str)) { str = str + " and (" + VSSQL + ") "; } else { str = " (" + VSSQL + ") "; } } return str; } #endregion } }