using System; using System.Data; using System.Data.Common; using System.Collections; using System.Collections.Generic; using System.Text; using System.IO; using System.Data.SqlClient; using HcUtility.Core; using HcUtility.Comm; using Microsoft.Practices.EnterpriseLibrary.Data; using DSWeb.MvcShipping.Models.MsOpBillProfit; using DSWeb.MvcShipping.Models.InfoSaleProfitSharePlan; using DSWeb.MvcShipping.Models.MsRptSaleLiRunTiCheng; using DSWeb.EntityDA; using DSWeb.Areas.CommMng.Models; using DSWeb.DataAccess; using DSWeb.Areas.CommMng.DAL; using DSWeb.MvcShipping.DAL.MsInfoSaleProfitShareSet; namespace DSWeb.MvcShipping.DAL.MsRptSaleLiRunTiChengDAL { public class MsRptSaleLiRunTiChengDAL { #region 报表页面查询 static public List GetDataList(string strCondition, string ShuiLv, string YeWuFeiYong, string GeRenFeiYong, string accDate, string userid, string usercode, string companyid, string sort = null) { var rangstr = GetRangDAStr("index", userid, usercode, companyid); if (!string.IsNullOrEmpty(rangstr)) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and " + rangstr; } else { strCondition = rangstr; } } #region 列 //BSNO//编号 //ISSALEFEE//提成发放 //SALE//业务员 //CUSTOMERNAME//委托单位 //OPLBNAME//业务类型 //OPTYPE//更改单 //FEESTATUSREF//费用锁定 //CUSTNO//委托编号 //MBLNO//主提单号 //ETD//开船日期 //ACCDATE//会计期间 //RMBDR//RMB应收 //RMBCR//RMB应付 //USDDR//USD应收 //USDCR//USD应付 //OTDR//其他币别应收 //OTCR//其他币别应付 //TTLDR//合计应收 //TTLCR//合计应付 //TTLPROFIT//合计毛利润 //ShuiFei//税费 //YeWuFeiYong//业务费用 //JingLiRun//净利润 //TiChengJiShu////提成基数 //GeRenFeiYong//个人费用 //TiChengBiLi////提成比例 //TiCheng//提成 //YingJieRiQi//应结日期 //ShiJieRiQi//实结日期 #endregion #region 基本语句 var strSql = new StringBuilder(); strSql.Append("("); strSql.Append("select B.BSNO");//编号 strSql.Append(",ISSALEFEE=isnull((select top 1 '已发放' from cw_user_ticheng_detail where bsno=B.BSNO),'')");//提成发放 strSql.Append(",SALE");//业务员 strSql.Append(",CUSTOMERNAME");//委托单位 strSql.Append(",OPLBNAME");//业务类型 strSql.Append(",OPTYPE");//更改单 strSql.Append(",FEESTATUSREF");//费用锁定 strSql.Append(",CUSTNO");//委托编号 strSql.Append(",MBLNO");//主提单号 strSql.Append(",ETD");//开船日期 strSql.Append(",ACCDATE");//会计期间 strSql.Append(",CORPID");//公司GID strSql.Append(",isnull(RMBDR,0) as RMBDR");//RMB应收 strSql.Append(",isnull(RMBCR,0) as RMBCR");//RMB应付 strSql.Append(",isnull(USDDR,0) as USDDR");//USD应收 strSql.Append(",isnull(USDCR,0) as USDCR");//USD应付 strSql.Append(",isnull(OTDR,0) as OTDR");//其他币别应收 strSql.Append(",isnull(OTCR,0) as OTCR");//其他币别应付 strSql.Append(",isnull(TTLDR,0) as TTLDR");//合计应收 strSql.Append(",isnull(TTLCR,0) as TTLCR");//合计应付 strSql.Append(",isnull(TTLPROFIT,0) as TTLPROFIT");//合计毛利润 strSql.Append(",0 as ShuiFei");//税费//毛利*税率 strSql.Append(",0 as YeWuFeiYong");//业务费用//其他费用模块中部分费用科目 strSql.Append(",0 as JingLiRun");//净利润//毛利-税费-业务费用 strSql.Append(",0 as TiChengJiShu");//");//提成基数 //ds6:“部门1=净利-底数1”,“部门2=净利-底数2”,“其他部门=净利”,ds7直接提取提成比例 strSql.Append(",0 as GeRenFeiYong");//个人费用//其他费用模块中部分费用科目(只提取用于出报表,不参与提成统计) strSql.Append(",0 as TiChengBiLi");//");//提成比例//按提成设置分段提取,因有多个默认为0,暂不显示 strSql.Append(",0 as TiCheng");//提成//提成基数*提成比例 strSql.Append(",0 as ShiFa");//实发提成 strSql.Append(",STLDATE as YingJieRiQi");//应结日期 strSql.Append(",T.SETTLETIME as ShiJieRiQi");//实结日期 strSql.Append(" FROM v_op_bill_gain as B LEFT JOIN V_MAX_SETTLEMENTTIME_BSDR T ON (T.BSNO=B.BSNO) where 1=1"); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } strSql.Append(") union ("); strSql.Append("select (SALE+'合计') as BSNO");//编号 strSql.Append(",ISSALEFEE=(isnull((select top 1 '已发放' from cw_user_ticheng where USERGID=(select top 1 GID from [user] where SHOWNAME=B.SALE) and ACCDATE='" + accDate + "'),'')+'合计')");//提成发放 strSql.Append(",SALE");//业务员 strSql.Append(",'' as CUSTOMERNAME");//委托单位 strSql.Append(",'' as OPLBNAME");//业务类型 strSql.Append(",'' as OPTYPE");//更改单 strSql.Append(",'' as FEESTATUSREF");//费用锁定 strSql.Append(",'' as CUSTNO");//委托编号 strSql.Append(",'' as MBLNO");//主提单号 strSql.Append(",'' as ETD");//开船日期 strSql.Append(",'' as ACCDATE");//会计期间 strSql.Append(",'' as CORPID");//公司GID strSql.Append(",isnull(sum(RMBDR),0) as RMBDR");//RMB应收 strSql.Append(",isnull(sum(RMBCR),0) as RMBCR");//RMB应付 strSql.Append(",isnull(sum(USDDR),0) as USDDR");//USD应收 strSql.Append(",isnull(sum(USDCR),0) as USDCR");//USD应付 strSql.Append(",isnull(sum(OTDR),0) as OTDR");//其他币别应收 strSql.Append(",isnull(sum(OTCR),0) as OTCR");//其他币别应付 strSql.Append(",isnull(sum(TTLDR),0) as TTLDR");//合计应收 strSql.Append(",isnull(sum(TTLCR),0) as TTLCR");//合计应付 strSql.Append(",isnull(sum(TTLPROFIT),0) as TTLPROFIT");//合计毛利润 strSql.Append(",isnull(Convert(decimal(18,2),(sum(TTLPROFIT)*" + ShuiLv + "/100)),0) as ShuiFei");//税费//毛利*税率 strSql.Append(",isnull((select isnull(sum(AMOUNT_F),0) as AMOUNT_F from [VW_ch_fee_management_mbody] where ACCDATE='" + accDate + "' and SALE=B.SALE and OPERATORSIDE like '" + YeWuFeiYong + "%'),0) as YeWuFeiYong");//业务费用//其他费用模块中部分费用科目 strSql.Append(",isnull((sum(TTLPROFIT)-Convert(decimal(18,2),(sum(TTLPROFIT)*" + ShuiLv + "/100))-isnull((select isnull(sum(AMOUNT_F),0) as AMOUNT_F from [VW_ch_fee_management_mbody] where ACCDATE='" + accDate + "' and SALE=B.SALE and OPERATORSIDE like '" + YeWuFeiYong + "%'),0)),0) as JingLiRun");//净利润//毛利-税费-业务费用 strSql.Append(",isnull((sum(TTLPROFIT)-Convert(decimal(18,2),(sum(TTLPROFIT)*" + ShuiLv + "/100))-isnull((select isnull(sum(AMOUNT_F),0) as AMOUNT_F from [VW_ch_fee_management_mbody] where ACCDATE='" + accDate + "' and SALE=B.SALE and OPERATORSIDE like '" + YeWuFeiYong + "%'),0)),0) as TiChengJiShu");//");//提成基数 //ds6:“部门1=净利-底数1”,“部门2=净利-底数2”,“其他部门=净利”,ds7直接提取提成比例 strSql.Append(",isnull((select isnull(sum(AMOUNT_F),0) as AMOUNT_F from [VW_ch_fee_management_mbody] where ACCDATE='" + accDate + "' and SALE=B.SALE and OPERATORSIDE like '" + GeRenFeiYong + "%'),0) as GeRenFeiYong");//个人费用//其他费用模块中部分费用科目(只提取用于出报表,不参与提成统计) strSql.Append(",0 as TiChengBiLi");//");//提成比例//按提成设置分段提取,因有多个默认为0,暂不显示 strSql.Append(",0 as TiCheng");//提成//提成基数(净利润)*提成比例 strSql.Append(",ShiFa=isnull((select top 1 ShiFa from cw_user_ticheng where USERGID=(select top 1 GID from [user] where SHOWNAME=B.SALE) and ACCDATE='" + accDate + "'),0)");//实发提成 strSql.Append(",'' as YingJieRiQi");//应结日期 strSql.Append(",'' as ShiJieRiQi");//实结日期 strSql.Append(" FROM v_op_bill_gain as B where 1=1"); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } strSql.Append(" group by SALE");//,CORPID strSql.Append(")"); // //var sortstring = DatasetSort.Getsortstring(sort); //if (!string.IsNullOrEmpty(sortstring)) //{ // strSql.Append(" order by SALE,BSNO," + sortstring); //} //else //{ // strSql.Append(" order by SALE,BSNO,ETD desc"); //} #endregion #region 清理临时表 int iState = 0; int result = 0; using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction)) { try { #region 清理临时表 String sSql = "delete from [cw_user_ticheng_test] where CREATEUSER='" + userid + "' and CORPID1='" + companyid + "'"; iState = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null); if (iState < 0) { result = -3; sqlTran.Rollback(); } #endregion result = 1;//状态为1表示删除成功 sqlTran.Commit(); } catch (Exception execError) { sqlTran.Rollback(); result = -6;//插入异常,事务已回滚成功 throw execError; } finally { SqlHelper.CloseConnection(); } } #endregion #region 插入临时表【cw_user_ticheng_test】 using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction)) { try { #region 插入临时表【cw_user_ticheng_test】 //GID,VKNO,VOUNO,ITEMNO,VOUDATE,EXPLAN,EXPLAN2,DC,DR,CR,BLC string sSql = "insert into [cw_user_ticheng_test] select *,'" + userid + "' as CREATEUSER,'" + companyid + "' as CORPID1 from (" + strSql + ") as [lsTable]"; //([GID],[ORDNO],[VKNO],[VOUNO],ITEMNO,[VOUDATE],[EXPLAN],[EXPLAN2],[DC],[DR],[CR],[BLC],[CREATEUSER],[CORPID],[STARTGID]) " #endregion iState = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null); if (iState < 0) { result = -4; sqlTran.Rollback(); } result = 1;//状态为1表示删除成功 sqlTran.Commit(); } catch (Exception execError) { sqlTran.Rollback(); result = -6;//插入异常,事务已回滚成功 throw execError; } finally { SqlHelper.CloseConnection(); } } #endregion #region 更新临时表【cw_user_ticheng_test】 T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); using (SqlTransaction sqlTran1 = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction)) { try { #region 插入合计到【cw_user_ticheng_test】表 string sSql = "select * from [cw_user_ticheng_test] where [CREATEUSER]='" + userid + "' and [CORPID1]='" + companyid + "' and charindex('合计',bsno)>0 order by SALE,BSNO,ETD desc"; DataSet dsTiCheng = T_ALL_DA.GetAllSQL(sSql); if (dsTiCheng != null) { if (dsTiCheng.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsTiCheng.Tables[0].Rows.Count; i++) { #region 更新合计【cw_user_ticheng_test】 if (dsTiCheng.Tables[0].Rows[i]["BSNO"].ToString().Trim().IndexOf("合计") > -1) { Decimal dlTiCheng = GetTiChengBiLi(Decimal.Parse(dsTiCheng.Tables[0].Rows[i]["TiChengJiShu"].ToString().Trim()), dsTiCheng.Tables[0].Rows[i]["SALE"].ToString().Trim());//提成//, dsTiCheng.Tables[0].Rows[i]["CORPID"].ToString().Trim() sSql = "update [cw_user_ticheng_test] set TiCheng=" + dlTiCheng + " where BSNO='" + dsTiCheng.Tables[0].Rows[i]["BSNO"].ToString().Trim() + "' and [CREATEUSER]='" + userid + "' and [CORPID1]='" + companyid + "'"; iState = SqlHelper.ExecuteNonQuery(sqlTran1, CommandType.Text, sSql, null); if (iState < 0) { result = -5; sqlTran1.Rollback(); } } #endregion } } } #endregion result = 1;//状态为1表示删除成功 sqlTran1.Commit(); } catch (Exception execError) { sqlTran1.Rollback(); result = -6;//插入异常,事务已回滚成功 throw execError; } finally { SqlHelper.CloseConnection(); } } #endregion #region 查询临时表【cw_user_ticheng_test】 var strSql2 = new StringBuilder(); strSql2.Append("SELECT * from [cw_user_ticheng_test] where CREATEUSER='" + userid + "' and CORPID1='" + companyid + "'"); var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql2.Append(" order by SALE,BSNO," + sortstring); } else { strSql2.Append(" order by SALE,BSNO,ETD desc"); } #endregion return SetData(strSql2); } private static List SetData(StringBuilder strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsOpBillProfit data = new MsOpBillProfit(); #region Set DB data to Object data.BSNO = Convert.ToString(reader["BSNO"]);//编号 data.ISSALEFEE = Convert.ToString(reader["ISSALEFEE"]);//提成发放 data.SALE = Convert.ToString(reader["SALE"]);//业务员 data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);//委托单位 data.OPLBNAME = Convert.ToString(reader["OPLBNAME"]);//业务类型 data.OPTYPE = Convert.ToString(reader["OPTYPE"]);//更改单 data.FEESTATUSREF = Convert.ToString(reader["FEESTATUSREF"]);//费用锁定 data.CUSTNO = Convert.ToString(reader["CUSTNO"]);//委托编号 data.MBLNO = Convert.ToString(reader["MBLNO"]);//主提单号 data.ETD = Convert.ToString(reader["ETD"]);//开船日期 data.ACCDATE = Convert.ToString(reader["ACCDATE"]);//会计期间 data.CORPID = Convert.ToString(reader["CORPID"]);//公司GID data.RMBDR = (reader["RMBDR"] == null ? 0 : Convert.ToDecimal(reader["RMBDR"]));//RMB应收 data.RMBCR = (reader["RMBCR"] == null ? 0 : Convert.ToDecimal(reader["RMBCR"]));//RMB应付 data.USDDR = (reader["USDDR"] == null ? 0 : Convert.ToDecimal(reader["USDDR"]));//USD应收 data.USDCR = (reader["USDCR"] == null ? 0 : Convert.ToDecimal(reader["USDCR"]));//USD应付 data.OTDR = (reader["OTDR"] == null ? 0 : Convert.ToDecimal(reader["OTDR"]));//其他币别应收 data.OTCR = (reader["OTCR"] == null ? 0 : Convert.ToDecimal(reader["OTCR"]));//其他币别应付 data.TTLDR = (reader["TTLDR"] == null ? 0 : Convert.ToDecimal(reader["TTLDR"]));//合计应收 data.TTLCR = (reader["TTLCR"] == null ? 0 : Convert.ToDecimal(reader["TTLCR"]));//合计应付 data.TTLPROFIT = (reader["TTLPROFIT"] == null ? 0 : Convert.ToDecimal(reader["TTLPROFIT"]));//合计毛利润 data.ShuiFei = (reader["ShuiFei"] == null ? 0 : Convert.ToDecimal(reader["ShuiFei"]));//税费 data.YeWuFeiYong = (reader["YeWuFeiYong"] == null ? 0 : Convert.ToDecimal(reader["YeWuFeiYong"]));//业务费用 data.JingLiRun = (reader["JingLiRun"] == null ? 0 : Convert.ToDecimal(reader["JingLiRun"]));//净利润 data.TiChengJiShu = (reader["TiChengJiShu"] == null ? 0 : Convert.ToDecimal(reader["TiChengJiShu"]));//提成基数 data.GeRenFeiYong = (reader["GeRenFeiYong"] == null ? 0 : Convert.ToDecimal(reader["GeRenFeiYong"]));//个人费用 data.TiChengBiLi = (reader["TiChengBiLi"] == null ? 0 : Convert.ToDecimal(reader["TiChengBiLi"]));//提成比例 data.TiCheng = (reader["TiCheng"] == null ? 0 : Convert.ToDecimal(reader["TiCheng"]));//提成 data.ShiFa = (reader["ShiFa"] == null ? 0 : Convert.ToDecimal(reader["ShiFa"]));//实发提成 data.ShiJieRiQi = Convert.ToString(reader["ShiJieRiQi"]).Replace(" 00:00:00", "");//实结日期 data.YingJieRiQi = Convert.ToString(reader["YingJieRiQi"]).Replace(" 00:00:00", "");//应结日期 if (data.BSNO.ToString().Trim().IndexOf("合计") > -1) { //data.TiCheng = GetTiChengBiLi(data.TiChengJiShu, data.SALE);//提成, data.CORPID data.YingJieRiQi = "";//应结日期 data.ShiJieRiQi = "";//实结日期 } //data.INTEREST = Getlx(data.ETD,data.BSNO,data.SALE); #endregion headList.Add(data); } reader.Close(); } return headList; } static public string GetDataListStr(string strCondition, string ShuiLv, string YeWuFeiYong, string GeRenFeiYong, string accDate, string userid, string usercode, string companyid, string sort = null) { var strSql2 = new StringBuilder(); strSql2.Append("SELECT * from [cw_user_ticheng_test] where CREATEUSER='" + userid + "' and CORPID1='" + companyid + "'"); var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql2.Append(" order by SALE,BSNO," + sortstring); } else { strSql2.Append(" order by SALE,BSNO,ETD desc"); } return strSql2.ToString(); } #endregion #region 计算_提成比例 static public decimal GetTiChengBiLi(Decimal TiChengJiShu, string sale)//, string CORPID { T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); decimal result = 0; if (sale == "") return 0;// || CORPID == "" // if (TiChengJiShu == 0) { #region 提成基数=0 result = 0; #endregion } else if (TiChengJiShu > 0) { #region 提成基数>0 string sSQL = "SELECT * from info_sale_profitShareDetail where PLANID=(SELECT top 1 PLANID from info_sale_profitShareSet where SALE='" + sale + "') ORDER BY PLANID,PROFITDOWN";// and COMPANYID='" + CORPID + "' DataSet ds = T_ALL_DA.GetAllSQL(sSQL); if (ds != null) { if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { Decimal dPROFITDOWN = Decimal.Parse(ds.Tables[0].Rows[i]["PROFITDOWN"].ToString()); Decimal dPROFITUP = Decimal.Parse(ds.Tables[0].Rows[i]["PROFITUP"].ToString()); Decimal dSHAREPR = Decimal.Parse(ds.Tables[0].Rows[i]["SHAREPR"].ToString()); if (dSHAREPR == 0) { continue; } if (dPROFITUP <= 0) { continue; } else { if (dPROFITDOWN <= 0) { dPROFITDOWN = 0; } } // if (TiChengJiShu > dPROFITDOWN) { if (TiChengJiShu >= dPROFITUP) { if (i == ds.Tables[0].Rows.Count - 1) { result += (TiChengJiShu - dPROFITDOWN) * dSHAREPR / 100; } else { result += (dPROFITUP - dPROFITDOWN) * dSHAREPR / 100; } } else { result += (TiChengJiShu - dPROFITDOWN) * dSHAREPR / 100; } } } } } #endregion } else if (TiChengJiShu < 0) { #region 提成基数<0 string sSQL = "SELECT * from info_sale_profitShareDetail where PLANID=(SELECT top 1 PLANID from info_sale_profitShareSet where SALE='" + sale + "') ORDER BY PLANID,PROFITDOWN desc";// and COMPANYID='" + CORPID + "' DataSet ds = T_ALL_DA.GetAllSQL(sSQL); if (ds != null) { if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { Decimal dPROFITDOWN = Decimal.Parse(ds.Tables[0].Rows[i]["PROFITDOWN"].ToString()); Decimal dPROFITUP = Decimal.Parse(ds.Tables[0].Rows[i]["PROFITUP"].ToString()); Decimal dSHAREPR = Decimal.Parse(ds.Tables[0].Rows[i]["SHAREPR"].ToString()); if (dSHAREPR == 0) { continue; } if (dPROFITDOWN >= 0) { continue; } else { if (dPROFITUP >= 0) { dPROFITUP = 0; } } // if (TiChengJiShu < dPROFITUP) { if (TiChengJiShu <= dPROFITDOWN) { if (i == ds.Tables[0].Rows.Count - 1) { result += (TiChengJiShu - dPROFITUP) * dPROFITDOWN / 100; } else { result += (dPROFITDOWN - dPROFITUP) * dSHAREPR / 100; } } else { result += (TiChengJiShu - dPROFITUP) * dSHAREPR / 100; } } } } else result = 0; } else result = 0; #endregion } return Math.Round(result, 2, MidpointRounding.AwayFromZero); } #endregion #region 计算_发放提成 public static DBResult SetFee(List boday, List bodayHJ, string ShuiLv, string YeWuFeiYong, string GeRenFeiYong, string accDate, String USERID) { T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); var result = new DBResult(); using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction)) { try { if (boday != null && bodayHJ != null) { foreach (var enumValueHJ in bodayHJ) { string strSALEGID = T_ALL_DA.GetStrSQL("GID", "select top 1 GID from [user] where SHOWNAME='" + enumValueHJ.SALE + "'");// and gid in (select USERID from user_baseinfo where COMPANYNAME=(select top 1 [NAME] from company where gid='" + enumValueHJ.CORPID + "')) string strGID = Guid.NewGuid().ToString(); // string sSQL = "delete from cw_user_ticheng where USERGID='" + strSALEGID + "' and ACCDATE='" + accDate + "'"; //SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null); sSQL = "delete from cw_user_ticheng_detail where LINKGID not in (select GID from [cw_user_ticheng])"; //SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null); sSQL = "INSERT INTO [cw_user_ticheng]([GID],[USERGID],[ACCDATE],[TiCheng],[ShiFa],[KouFeiLv],[MODIFIEDUSER],[MODIFIEDTIME]) VALUES('" + strGID + "','" + strSALEGID + "','" + accDate + "','" + enumValueHJ.TiCheng + "','" + enumValueHJ.TiCheng + "','" + ShuiLv + "','" + USERID + "',getdate())"; SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null); foreach (var enumValue in boday) { if (enumValueHJ.SALE == enumValue.SALE) { sSQL = "INSERT INTO [cw_user_ticheng_detail]([GID],[LINKGID],[BSNO],[MODIFIEDUSER],[MODIFIEDTIME]) VALUES(newid(),'" + strGID + "','" + enumValue.BSNO + "','" + USERID + "',getdate())"; SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null); } } } } else { result.Success = false; result.Message = "操作出现错误,请重试!"; return result; } //事务提交 sqlTran.Commit(); } catch (Exception) { sqlTran.Rollback(); result.Success = false; result.Message = "操作出现错误,请重试!"; return result; } finally { SqlHelper.CloseConnection(); sqlTran.Dispose(); } } result.Success = true; result.Message = "操作完成"; return result; } #endregion #region 计算_取消发放 public static DBResult CancelSetFee(List boday, List bodayHJ, string ShuiLv, string YeWuFeiYong, string GeRenFeiYong, string accDate, String USERID) { T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); var result = new DBResult(); using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction)) { try { if (bodayHJ != null) { foreach (var enumValueHJ in bodayHJ) { string strSALEGID = T_ALL_DA.GetStrSQL("GID", "select top 1 GID from [user] where SHOWNAME='" + enumValueHJ.SALE + "'");// and gid in (select USERID from user_baseinfo where COMPANYNAME=(select top 1 [NAME] from company where gid='" + enumValueHJ.CORPID + "')) // string sSQL = "delete from cw_user_ticheng where USERGID='" + strSALEGID + "' and ACCDATE='" + accDate + "'"; SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null); sSQL = "delete from cw_user_ticheng_detail where LINKGID not in (select GID from [cw_user_ticheng])"; SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null); } } else { result.Success = false; result.Message = "操作出现错误,请重试!"; return result; } //事务提交 sqlTran.Commit(); } catch (Exception) { sqlTran.Rollback(); result.Success = false; result.Message = "操作出现错误,请重试!"; return result; } finally { SqlHelper.CloseConnection(); sqlTran.Dispose(); } } result.Success = true; result.Message = "操作完成"; return result; } #endregion #region 计算扣息 static public decimal Getlx(string etd, string bsno, string sale) { decimal result = 0; if (etd == "" || sale == "") return 0; var lxdataset = MsInfoSaleProfitShareSetDAL.GetSaleProfitLxDataList(" PLANID IN (SELECT TOP 1 PLANID FROM info_sale_profitShareSet WHERE SALE='" + sale + "') "); if (lxdataset != null) { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(" SETTLETIME,SUM(ORIGAMOUNT*ORIGEXCHANGERATE) AS AMOUNT "); strSql.Append(" from v_fee_do_settlement "); strSql.Append(" where BSNO='" + bsno + "' AND FEETYPE=1 "); strSql.Append(" group by SETTLETIME "); decimal amount = 0; decimal lxrate = 0; DateTime stldate; DateTime etddate = Convert.ToDateTime(etd); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { amount = Convert.ToDecimal(reader["AMOUNT"]); stldate = Convert.ToDateTime(reader["SETTLETIME"]); int days = Math.Abs((stldate - etddate).Days); foreach (var enumValue in lxdataset) { if (enumValue.DEDUCTIN == 0) { result = result + 0; } else { if (days >= enumValue.BDAY && days <= enumValue.EDAY) { lxrate = enumValue.DEDUCTIN / 100; result = result + (amount * lxrate * (days - enumValue.BDAY)); } else if (days > enumValue.EDAY) { lxrate = enumValue.DEDUCTIN / 100; result = result + (amount * lxrate * (enumValue.EDAY - enumValue.BDAY)); } } } } reader.Close(); } } else result = 0; return result; } #endregion #region 权限 public static string GetRangDAStr(string tb, string userid, string usercode, string companyid) { string str = ""; var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(" VISIBLERANGE,OPERATERANGE "); strSql.Append(" from VW_User_Authority "); strSql.Append(" where [NAME]='modSaleProfitShare' and USERID='" + userid + "' and ISDELETE=0"); string visiblerange = "4"; string operaterange = "4"; 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"]); break; } reader.Close(); } if (visiblerange == "4") { str = "1=2"; } else if (visiblerange == "3") { str = " (B.OP='" + usercode + "' OR B.SALE='" + usercode + "')"; } else if (visiblerange == "2") { if (tb == "index") { var rangeDa = new RangeDA(); var deptname = rangeDa.GetDEPTNAME(userid); var userstr = new StringBuilder(); userstr.Append(" 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 + "')"); Database userdb = DatabaseFactory.CreateDatabase(); using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString())) { str = ""; while (reader.Read()) { if (str == "") { str = " (B.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "'"; } else { str = str + " or B.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "'"; }; } str = str + ")"; reader.Close(); } } else { str = " UPPER(B.Corpid)='" + companyid + "'"; } } else if (visiblerange == "1") { str = " UPPER(B.Corpid)='" + companyid + "'"; } return str; } #endregion #region 维护页面查询 static public List GetCwUserTiChengList(string strCondition, string sSALE, string accDate, string userid, string usercode, string companyid, string sort = null) { var strSql = new StringBuilder(); strSql.Append("select t.*"); strSql.Append(",u.SHOWNAME as USERNAME");//提成发放 strSql.Append(" FROM cw_user_ticheng as t LEFT JOIN [user] as u on t.USERGID=u.GID where 1=1"); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(strCondition); } if (!string.IsNullOrEmpty(sSALE)) { strSql.Append(" and u.SHOWNAME='" + sSALE + "'"); } if (!string.IsNullOrEmpty(accDate)) { strSql.Append(" and t.ACCDATE='" + accDate + "'"); } // var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } else { strSql.Append(" order by u.SHOWNAME,t.ACCDATE"); } return SetCwUserTiChengData(strSql); } private static List SetCwUserTiChengData(StringBuilder strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsRptSaleLiRunTiCheng data = new MsRptSaleLiRunTiCheng(); #region Set DB data to Object data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//GID data.USERGID = (reader["USERGID"] == null ? "" : Convert.ToString(reader["USERGID"]));//USERGID data.ACCDATE = (reader["ACCDATE"] == null ? "" : Convert.ToString(reader["ACCDATE"]));//ACCDATE data.TiCheng = (reader["TiCheng"] == null ? 0 : Convert.ToDecimal(reader["TiCheng"]));//TiCheng data.ShiFa = (reader["ShiFa"] == null ? 0 : Convert.ToDecimal(reader["ShiFa"]));//ShiFa data.KouFeiLv = (reader["KouFeiLv"] == null ? 0 : Convert.ToDecimal(reader["KouFeiLv"]));//KouFeiLv data.REMARK = (reader["REMARK"] == null ? "" : Convert.ToString(reader["REMARK"]));//REMARK data.MODIFIEDUSER = (reader["MODIFIEDUSER"] == null ? "" : Convert.ToString(reader["MODIFIEDUSER"]));//MODIFIEDUSER if (reader["MODIFIEDTIME"] != null && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("0001") < 0 && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("1900") < 0 && reader["MODIFIEDTIME"].ToString().Trim() != "") { data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]);//最后一次更新操作时间 } data.USERNAME = (reader["USERNAME"] == null ? "" : Convert.ToString(reader["USERNAME"]));//USERNAME #endregion headList.Add(data); } reader.Close(); } return headList; } #endregion } }