You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

863 lines
46 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Data;
using System.Collections.Generic;
using System.Text;
using DSWeb.MvcShipping.Models.MsCrmQuotation;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.EntityDA;
using DSWeb.Areas.CommMng.Models;
using HcUtility.Comm;
using System.Data.SqlClient;
using DSWeb.DataAccess;
using DSWeb.MvcShipping.Models.MsCodeServiceFeeTemplate;
using DSWeb.MvcShipping.DAL.MsCodeServiceFeeTemplateDAL;
namespace DSWeb.MvcShipping.DAL.MsCrmQuotationDAL
{
public class MsCrmQuotationDAL
{
#region 查询
static public List<MsCrmQuotationEntity> GetDataList(string strCondition, string userid, string usercode, string companyid, string sort = null)
{
var rangstr = GetRangStr("index", userid, usercode, companyid);
if (!string.IsNullOrEmpty(rangstr))
{
if (!string.IsNullOrEmpty(strCondition))
{
strCondition = strCondition + " and " + rangstr;
}
else
{
strCondition = rangstr;
}
}
//
String strSql = "SELECT *"
+ ",RMBHJ=isnull((select sum(UNITPRICE) as RMBHJ from crm_quotation_detail where CURRENCY='RMB' and LINKGID=crm_quotation.GID),0)"//需求编号SR2017071700006-2、3、4
+ ",USDHJ=isnull((select sum(USDHJ) as USDHJ from crm_quotation_detail where CURRENCY<>'RMB' and LINKGID=crm_quotation.GID),0)"//需求编号SR2017071700006-2、3、4
+ " from crm_quotation";
if (!string.IsNullOrEmpty(strCondition))
{
strSql += " where " + strCondition;
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql += " order by " + sortstring;
}
else
{
strSql += " order by MODIFIEDTIME desc";
}
return SetData(strSql);
}
static public MsCrmQuotationEntity GetData(string condition, string userid, string usercode, string companyid)
{
var rangstr = GetRangStr("index", userid, usercode, companyid);
if (!string.IsNullOrEmpty(rangstr))
{
if (!string.IsNullOrEmpty(condition))
{
condition = condition + " and " + rangstr;
}
else
{
condition = rangstr;
}
}
//
String strSql = "SELECT *"
+ ",RMBHJ=isnull((select sum(UNITPRICE) as RMBHJ from crm_quotation_detail where CURRENCY='RMB' and LINKGID=crm_quotation.GID),0)"//需求编号SR2017071700006-2、3、4
+ ",USDHJ=isnull((select sum(USDHJ) as USDHJ from crm_quotation_detail where CURRENCY<>'RMB' and LINKGID=crm_quotation.GID),0)"//需求编号SR2017071700006-2、3、4
+ " from crm_quotation";
if (!string.IsNullOrEmpty(condition))
{
strSql += " where " + condition;
}
var list=SetData(strSql);
if (list.Count > 0)
{
return list[0];
}
return new MsCrmQuotationEntity();
}
private static List<MsCrmQuotationEntity> SetData(String strSql)
{
var headList = new List<MsCrmQuotationEntity>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsCrmQuotationEntity data = new MsCrmQuotationEntity();
#region Set DB data to Object
data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//惟一值
data.CLIENTGID = (reader["CLIENTGID"] == null ? "" : Convert.ToString(reader["CLIENTGID"]));//相关联的潜在客户GID
data.SHORTNAME = (reader["SHORTNAME"] == null ? "" : Convert.ToString(reader["SHORTNAME"]));//客户简称
data.DESCRIPTION = (reader["DESCRIPTION"] == null ? "" : Convert.ToString(reader["DESCRIPTION"]));//客户全称
data.SALE = (reader["SALE"] == null ? "" : Convert.ToString(reader["SALE"]));//销售
if (reader["QUOTATIONDATE"] != null && reader["QUOTATIONDATE"].ToString().Trim().IndexOf("0001") < 0 && reader["QUOTATIONDATE"].ToString().Trim().IndexOf("1900") < 0 && reader["QUOTATIONDATE"].ToString().Trim() != "")
{
data.QUOTATIONDATE = Convert.ToDateTime(reader["QUOTATIONDATE"]);//报价日期
}
data.CORPID = (reader["CORPID"] == null ? "" : Convert.ToString(reader["CORPID"]));//所属分公司代码
data.PORTLOAD = (reader["PORTLOAD"] == null ? "" : Convert.ToString(reader["PORTLOAD"]));//起运港(默认青岛)
data.PORTDISCHARGE = (reader["PORTDISCHARGE"] == null ? "" : Convert.ToString(reader["PORTDISCHARGE"]));//目的港
data.LANE = (reader["LANE"] == null ? "" : Convert.ToString(reader["LANE"]));//航线
data.CARRIER = (reader["CARRIER"] == null ? "" : Convert.ToString(reader["CARRIER"]));//船公司
if (reader["ETD"] != null && reader["ETD"].ToString().Trim().IndexOf("0001") < 0 && reader["ETD"].ToString().Trim().IndexOf("1900") < 0 && reader["ETD"].ToString().Trim() != "")
{
data.ETD = Convert.ToDateTime(reader["ETD"]);//开船日期
}
data.ENTREPORT = (reader["ENTREPORT"] == null ? "" : Convert.ToString(reader["ENTREPORT"]));//中转港
data.TT = (reader["TT"] == null ? "" : Convert.ToString(reader["TT"]));//航程
data.GOODSNAME = (reader["GOODSNAME"] == null ? "" : Convert.ToString(reader["GOODSNAME"]));//品名
data.REMARK = (reader["REMARK"] == null ? "" : Convert.ToString(reader["REMARK"]));//备注
data.CREATEUSER = (reader["CREATEUSER"] == null ? "" : Convert.ToString(reader["CREATEUSER"]));//创建人
if (reader["CREATETIME"] != null && reader["CREATETIME"].ToString().Trim().IndexOf("0001") < 0 && reader["CREATETIME"].ToString().Trim().IndexOf("1900") < 0 && reader["CREATETIME"].ToString().Trim() != "")
{
data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]);//创建时间
}
data.MODIFIEDUSER = (reader["MODIFIEDUSER"] == null ? "" : Convert.ToString(reader["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.CONTACTNAME = (reader["CONTACTNAME"] == null ? "" : Convert.ToString(reader["CONTACTNAME"]));//CONTACTNAME
if (reader["VALIDDATE"] != null && reader["VALIDDATE"].ToString().Trim().IndexOf("0001") < 0 && reader["VALIDDATE"].ToString().Trim().IndexOf("1900") < 0 && reader["VALIDDATE"].ToString().Trim() != "")
{
data.VALIDDATE = Convert.ToDateTime(reader["VALIDDATE"]);//有效期
}
data.WEEK = (reader["WEEK"] == null ? "" : Convert.ToString(reader["WEEK"]));//WEEK
data.QUOTATIONCODE = (reader["QUOTATIONCODE"] == null ? "" : Convert.ToString(reader["QUOTATIONCODE"]));//报价编号
data.TEL = (reader["TEL"] == null ? "" : Convert.ToString(reader["TEL"]));//联系方式
data.EMAIL = (reader["EMAIL"] == null ? "" : Convert.ToString(reader["EMAIL"]));//邮箱
data.CTNCODE = (reader["CTNCODE"] == null ? "" : Convert.ToString(reader["CTNCODE"]));//箱型
data.CTNNUM = (reader["CTNNUM"] == null ? 0 : Convert.ToInt32(reader["CTNNUM"]));//箱量
data.GOODSTYPE = (reader["GOODSTYPE"] == null ? "" : Convert.ToString(reader["GOODSTYPE"]));//产品类别
data.SERVICE = (reader["SERVICE"] == null ? "" : Convert.ToString(reader["SERVICE"]));//运输条款
data.CTNSTATUS = (reader["CTNSTATUS"] == null ? "" : Convert.ToString(reader["CTNSTATUS"]));//箱状态
data.FORWARDER = (reader["FORWARDER"] == null ? "" : Convert.ToString(reader["FORWARDER"]));//使用代理
data.COMMISSIONRATE = (reader["COMMISSIONRATE"] == null ? 0 : Convert.ToDecimal(reader["COMMISSIONRATE"]));//佣金比率
data.FBPPORTLOAD = (reader["FBPPORTLOAD"] == null ? 0 : Convert.ToInt32(reader["FBPPORTLOAD"]));//起运港免箱天数
data.CQPORTLOAD = (reader["CQPORTLOAD"] == null ? "" : Convert.ToString(reader["CQPORTLOAD"]));//起运港超期标准
data.FBPPORTDISCHARGE = (reader["FBPPORTDISCHARGE"] == null ? 0 : Convert.ToInt32(reader["FBPPORTDISCHARGE"]));//目的港免箱天数
data.CQPORTDISCHARGE = (reader["CQPORTDISCHARGE"] == null ? "" : Convert.ToString(reader["CQPORTDISCHARGE"]));//目的港超期标准
data.RMBHJ = (reader["RMBHJ"] == null ? 0 : Convert.ToDecimal(reader["RMBHJ"]));//需求编号SR2017071700006-2、3、4
data.USDHJ = (reader["USDHJ"] == null ? 0 : Convert.ToDecimal(reader["USDHJ"]));//需求编号SR2017071700006-2、3、4
data.UNNO = (reader["UNNO"] == null ? "" : Convert.ToString(reader["UNNO"]));//UN//需求编号SR2017080400003
data.DCLASS = (reader["DCLASS"] == null ? "" : Convert.ToString(reader["DCLASS"]));//危险品等级//需求编号SR2017080400003
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 打印
static public string GetDataListStr(string strCondition, string gids, string userid, string usercode, string companyid, string sort = null)
{
String strSql = "SELECT *"
+ ",RMBHJ=isnull((select sum(UNITPRICE) as RMBHJ from crm_quotation_detail where CURRENCY='RMB' and LINKGID=crm_quotation.GID),0)"//需求编号SR2017071700006-2、3、4
+ ",USDHJ=isnull((select sum(USDHJ) as USDHJ from crm_quotation_detail where CURRENCY<>'RMB' and LINKGID=crm_quotation.GID),0)"//需求编号SR2017071700006-2、3、4
+ " from crm_quotation where 1=1";
if (!string.IsNullOrEmpty(strCondition))
{
strSql += " and " + strCondition;
}
if (!string.IsNullOrEmpty(gids))
{
strSql += " and gid in ('" + gids.Replace(",", "','") + "')";
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql += " order by " + sortstring;
}
else
{
strSql += " order by MODIFIEDTIME desc";
}
return strSql.ToString();
}
#endregion
#region 查询明细表
static public List<CrmQuotationDetailEntity> GetDetailList(string strCondition, string userid, string usercode, string companyid)
{
var strSql = new StringBuilder();
strSql.Append("SELECT *,RMBHJ=(case when CURRENCY='RMB' then UNITPRICE else 0 end) from crm_quotation_detail WITH(NOLOCK) where 1=1");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" and " + strCondition);
}
strSql.Append(" order by [CREATETIME]");
return SetDetail(strSql);
}
private static List<CrmQuotationDetailEntity> SetDetail(StringBuilder strSql)
{
var headList = new List<CrmQuotationDetailEntity>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
CrmQuotationDetailEntity data = new CrmQuotationDetailEntity();
#region Set DB data to Object
data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//惟一编号
data.LINKGID = (reader["LINKGID"] == null ? "" : Convert.ToString(reader["LINKGID"]));//主表关联GID
data.FEETYPE = (reader["FEETYPE"] == null ? "" : Convert.ToString(reader["FEETYPE"]));//费用类型
data.FEENAME = (reader["FEENAME"] == null ? "" : Convert.ToString(reader["FEENAME"]));//费用中文名称
data.UNIT = (reader["UNIT"] == null ? "" : Convert.ToString(reader["UNIT"]));//单位标准
data.UNITPRICE = (reader["UNITPRICE"] == null ? 0 : Convert.ToDecimal(reader["UNITPRICE"]));//单价
data.CURRENCY = (reader["CURRENCY"] == null ? "" : Convert.ToString(reader["CURRENCY"]));//币别
data.CARRIER = (reader["CARRIER"] == null ? "" : Convert.ToString(reader["CARRIER"]));//船公司
data.REMARK = (reader["REMARK"] == null ? "" : Convert.ToString(reader["REMARK"]));//备注
data.CREATEUSER = (reader["CREATEUSER"] == null ? "" : Convert.ToString(reader["CREATEUSER"]));//创建人
if (reader["CREATETIME"] != null && reader["CREATETIME"].ToString().Trim().IndexOf("0001") < 0 && reader["CREATETIME"].ToString().Trim().IndexOf("1900") < 0 && reader["CREATETIME"].ToString().Trim() != "")
{
data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]);//创建时间
}
data.MODIFIEDUSER = (reader["MODIFIEDUSER"] == null ? "" : Convert.ToString(reader["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.USDHJ = (reader["USDHJ"] == null ? 0 : Convert.ToDecimal(reader["USDHJ"]));//需求编号SR2017071700006-2、3、4
data.RMBHJ = (reader["RMBHJ"] == null ? 0 : Convert.ToDecimal(reader["RMBHJ"]));//需求编号SR2017071700006-2、3、4
#endregion
headList.Add(data);
}
reader.Close();
reader.Dispose();
}
return headList;
}
static public CrmQuotationDetailEntity GetDataDetail(string condition)
{
var strSql = new StringBuilder();
strSql.Append("SELECT *,RMBHJ=(case when CURRENCY='RMB' then UNITPRICE else 0 end) from crm_quotation_detail WITH(NOLOCK) where 1=1");
if (!string.IsNullOrEmpty(condition))
{
strSql.Append(" and " + condition);
}
strSql.Append(" order by [CREATETIME]");
var list = SetDetail(strSql);
if (list.Count > 0)
{
return list[0];
}
return new CrmQuotationDetailEntity();
}
#endregion
#region 提取规则编号 getCodeRuleWmsOut
/// <summary>
/// 提取规则编号
/// </summary>
/// OutBsno = getCodeRuleWmsOut("出库单号", "BSNO");
/// <param name="strRULENAME">规则项目名称</param>
/// <param name="strfield">需要加规则的字段</param>
/// <param name="iCount">需要添加的行数</param>
/// <returns></returns>
static public String getCodeRuleWmsOut(string strRULENAME, string strfield, int iCount, string strUserID, string strCompanyID)
{
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
//调用编码规则
string strRULEYEAR = "";
string strRULECONTENT = "";
string strCODENAME = "";
string strDEPTNO = "";
string strRULENOLENGTH = "";
int iRULENOLENGTH = 0;
int inum = 0;
string strCONTENT = "";
DataSet ds = T_ALL_DA.GetAllSQL("select *,getdate() DODATE from code_rule where RULENAME='" + strRULENAME.Trim() + "' and RULETYPE=9");
if (ds != null)
{
if (ds.Tables[0].Rows.Count > 0)
{
if (ds.Tables[0].Rows[0]["ISSTARTUSING"].ToString().Trim().Equals("True"))
{
getCodeRuleEnabled(strRULENAME, strfield);
//
if (ds.Tables[0].Rows[0]["RULEDATE"].ToString().Trim().Equals("业务日期"))
{
if (ds.Tables[0].Rows[0]["DODATE"].ToString().Trim() == "")
{
return "";
}
DateTime dETD = System.Convert.ToDateTime(ds.Tables[0].Rows[0]["DODATE"].ToString().Trim());
if (ds.Tables[0].Rows[0]["ISCLEAREDINEARLY"].ToString().Trim().Equals("True"))
{
if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "4")
{
strRULEYEAR = dETD.ToString("yyyy") + dETD.ToString("MM");
}
else if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "2")
{
strRULEYEAR = dETD.ToString("yy") + dETD.ToString("MM");
}
}
else
{
if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "4")
{
strRULEYEAR = dETD.ToString("yyyy");
}
else if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "2")
{
strRULEYEAR = dETD.ToString("yy");
}
}
}
else if (ds.Tables[0].Rows[0]["RULEDATE"].ToString().Trim().Equals("自然月份"))
{
DateTime fwqdate = System.Convert.ToDateTime(T_ALL_DA.GetStrSQL("fwqdate", "select fwqdate=getdate()"));
if (ds.Tables[0].Rows[0]["ISCLEAREDINEARLY"].ToString().Trim().Equals("True"))
{
if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "4")
{
strRULEYEAR = fwqdate.ToString("yyyy") + fwqdate.ToString("MM");
}
else if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "2")
{
strRULEYEAR = fwqdate.ToString("yy") + fwqdate.ToString("MM");
}
}
else
{
if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "4")
{
strRULEYEAR = fwqdate.ToString("yyyy");
}
else if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "2")
{
strRULEYEAR = fwqdate.ToString("yy");
}
}
}
//
if (ds.Tables[0].Rows[0]["ISCOMPANY"].ToString().Trim().Equals("True"))
{
strCODENAME = T_ALL_DA.GetStrSQL("CODENAME", "select CODENAME from [company] where GID=(select top 1 COMPANYID from user_company where USERID='" + strUserID + "')");
}
if (ds.Tables[0].Rows[0]["ISDEPT"].ToString().Trim().Equals("True"))
{
strDEPTNO = T_ALL_DA.GetStrSQL("DEPTNO", "select DEPTNO from [sys_dept] where LINKID=(select top 1 COMPANYID from user_company where USERID='" + strUserID + "')");
}
strRULECONTENT = ds.Tables[0].Rows[0]["RULECONTENT"].ToString().Trim();
strRULECONTENT = strRULECONTENT.Replace("《COMPANY》", strCODENAME);
strRULECONTENT = strRULECONTENT.Replace("《DEPT》", strDEPTNO);
//
if (ds.Tables[0].Rows[0]["RULENOLENGTH"].ToString().Trim() == "")
{
iRULENOLENGTH = 0;
}
else
{
iRULENOLENGTH = int.Parse(ds.Tables[0].Rows[0]["RULENOLENGTH"].ToString().Trim());
}
strCONTENT = strRULECONTENT + strRULEYEAR;
//获取分公司的票号头字符
string tempBANKSHEAD = T_ALL_DA.GetStrSQL("BANKSHEAD", "SELECT TOP 1 BANKSHEAD FROM company WHERE GID='" + strCompanyID.Trim() + "'");
strCONTENT = tempBANKSHEAD + strCONTENT;
//
strRULENOLENGTH = T_ALL_DA.GetStrSQL(strfield, "select top 1 " + strfield + " from [crm_quotation] where " + strfield + " like '" + strCONTENT.Trim() + "%' order by " + strfield + " DESC");
if (strRULENOLENGTH == "")
{
strRULENOLENGTH = "1";
}
else
{
strRULENOLENGTH = strRULENOLENGTH.Replace(strCONTENT.Trim(), "");
inum = int.Parse(strRULENOLENGTH.Trim());
inum = inum + iCount;
strRULENOLENGTH = inum.ToString();
}
int j = iRULENOLENGTH - strRULENOLENGTH.Length;
for (int i = 1; i <= j; i++)
{
strRULENOLENGTH = "0" + strRULENOLENGTH;
}
//
strCONTENT = strCONTENT + strRULENOLENGTH;
return strCONTENT;
}
}
}
return "";
}
#endregion
#region 规则编号_是否生成之后允许编辑 getCodeRuleEnabled
/// <summary>
/// 规则编号_是否生成之后允许编辑
/// </summary>
/// <param name="strRULENAME">规则项目名称</param>
/// <param name="strfield">需要加规则的字段</param>
/// <returns></returns>
static public Boolean getCodeRuleEnabled(string strRULENAME, string strfield)
{
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
bool blRule = false;
//是否生成之后允许编辑
DataSet ds = T_ALL_DA.GetAllSQL("select * from code_rule where RULENAME='" + strRULENAME.Trim() + "' and RULETYPE=9");
if (ds != null)
{
if (ds.Tables[0].Rows.Count > 0)
{
if (ds.Tables[0].Rows[0]["ISSTARTUSING"].ToString().Trim().Equals("True"))
{
if (strfield == "BSNO")
{
if (ds.Tables[0].Rows[0]["ISALLOWEDITS"].ToString().Trim().Equals("True"))
{
blRule = false;
}
else
{
blRule = true;
}
}
}
}
}
return blRule;
}
#endregion
#region 生成编码
public static String getCodeRule(string strRULENAME, int strRULETYPE, string strfield, string strETD, string strACCDATE, string strUserID, string strCompanyID)
{
//调用编码规则
if (strETD.Trim().IndexOf("0001") > -1)
{
strETD = "";
}
string strRULEYEAR = "";
string strRULECONTENT = "";
string strCODENAME = "";
string strDEPTNO = "";
string strRULENOLENGTH = "";
int iRULENOLENGTH = 0;
int inum = 0;
string strCONTENT = "";
T_ALL_DA T_ALL_DA = new T_ALL_DA();
//
DataSet ds = T_ALL_DA.GetAllSQL("select * from code_rule where RULENAME='" + strRULENAME.Trim() + "' and RULETYPE=" + strRULETYPE);
if (ds != null)
{
if (ds.Tables[0].Rows.Count > 0)
{
if (ds.Tables[0].Rows[0]["ISSTARTUSING"].ToString().Trim().Equals("True"))
{
if (ds.Tables[0].Rows[0]["RULEDATE"].ToString().Trim().Equals("业务日期"))
{
if (strETD.Trim() == "")
{
return "";
}
DateTime dETD = System.Convert.ToDateTime(strETD.Trim());
if (ds.Tables[0].Rows[0]["ISCLEAREDINEARLY"].ToString().Trim().Equals("True"))
{
if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "4")
{
strRULEYEAR = dETD.ToString("yyyy") + dETD.ToString("MM");
}
else if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "2")
{
strRULEYEAR = dETD.ToString("yy") + dETD.ToString("MM");
}
}
else
{
if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "4")
{
strRULEYEAR = dETD.ToString("yyyy");
}
else if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "2")
{
strRULEYEAR = dETD.ToString("yy");
}
}
}
else if (ds.Tables[0].Rows[0]["RULEDATE"].ToString().Trim().Equals("会计期间"))
{
if (strACCDATE.Trim() == "")
{
return "";
}
DateTime dACCDATE = System.Convert.ToDateTime(strACCDATE.Trim() + "-01");
if (ds.Tables[0].Rows[0]["ISCLEAREDINEARLY"].ToString().Trim().Equals("True"))
{
if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "4")
{
strRULEYEAR = dACCDATE.ToString("yyyy") + dACCDATE.ToString("MM");
}
else if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "2")
{
strRULEYEAR = dACCDATE.ToString("yy") + dACCDATE.ToString("MM");
}
}
else
{
if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "4")
{
strRULEYEAR = dACCDATE.ToString("yyyy");
}
else if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "2")
{
strRULEYEAR = dACCDATE.ToString("yy");
}
}
}
else if (ds.Tables[0].Rows[0]["RULEDATE"].ToString().Trim().Equals("自然月份"))
{
DateTime fwqdate = System.Convert.ToDateTime(T_ALL_DA.GetStrSQL("fwqdate", "select fwqdate=getdate()"));
if (ds.Tables[0].Rows[0]["ISCLEAREDINEARLY"].ToString().Trim().Equals("True"))
{
if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "4")
{
strRULEYEAR = fwqdate.ToString("yyyy") + fwqdate.ToString("MM");
}
else if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "2")
{
strRULEYEAR = fwqdate.ToString("yy") + fwqdate.ToString("MM");
}
}
else
{
if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "4")
{
strRULEYEAR = fwqdate.ToString("yyyy");
}
else if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "2")
{
strRULEYEAR = fwqdate.ToString("yy");
}
}
}
//
if (ds.Tables[0].Rows[0]["ISCOMPANY"].ToString().Trim().Equals("True"))
{
strCODENAME = T_ALL_DA.GetStrSQL("CODENAME", "select CODENAME from [company] where GID=(select top 1 COMPANYID from user_company where USERID='" + strUserID.Trim() + "')");
}
if (ds.Tables[0].Rows[0]["ISDEPT"].ToString().Trim().Equals("True"))
{
strDEPTNO = T_ALL_DA.GetStrSQL("DEPTNO", "select DEPTNO from [sys_dept] where LINKID=(select top 1 COMPANYID from user_company where USERID='" + strUserID.Trim() + "')");
}
strRULECONTENT = ds.Tables[0].Rows[0]["RULECONTENT"].ToString().Trim();
strRULECONTENT = strRULECONTENT.Replace("《COMPANY》", strCODENAME);
strRULECONTENT = strRULECONTENT.Replace("《DEPT》", strDEPTNO);
//
iRULENOLENGTH = int.Parse(ds.Tables[0].Rows[0]["RULENOLENGTH"].ToString().Trim());
strCONTENT = strRULECONTENT + strRULEYEAR;
//获取分公司的票号头字符
string tempBANKSHEAD = T_ALL_DA.GetStrSQL("BANKSHEAD", "SELECT TOP 1 BANKSHEAD FROM company WHERE GID='" + strCompanyID.Trim() + "'");
strCONTENT = tempBANKSHEAD + strCONTENT;
//
strRULENOLENGTH = T_ALL_DA.GetStrSQL(strfield, "select top 1 " + strfield + " from [op_other] where " + strfield + " like '" + strCONTENT.Trim() + "%' order by " + strfield + " DESC");
if (strRULENOLENGTH == "")
{
strRULENOLENGTH = "1";
}
else
{
strRULENOLENGTH = strRULENOLENGTH.Replace(strCONTENT.Trim(), "");
inum = int.Parse(strRULENOLENGTH.Trim());
inum = inum + 1;
strRULENOLENGTH = inum.ToString();
}
int j = iRULENOLENGTH - strRULENOLENGTH.Length;
for (int i = 1; i <= j; i++)
{
strRULENOLENGTH = "0" + strRULENOLENGTH;
}
//
strCONTENT = strCONTENT + strRULENOLENGTH;
return strCONTENT;
}
}
}
return "";
}
#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_other ");
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 判断是否有FEE
public static bool GetFeeCount(string sGID)
{
var isfee = false;
String strSql = "Select count(*) as count from crm_quotation_detail where LINKGID in ('" + sGID.Replace(",","','") + "')";
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql))
{
while (reader.Read())
{
var evData = Convert.ToInt32(reader["count"]);
if (evData > 0) { isfee = true; };
}
reader.Close();
}
return isfee;
}
#endregion
#region 删除
public static DBResult Delete(string gids)
{
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 [crm_quotation] where GID in ('" + gids.Replace(",", "','") + "')");
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 删除明细
public static DBResult DeleteDetail(string gids)
{
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 [crm_quotation_detail] where GID in ('" + gids.Replace(",", "','") + "')");
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 品名code_msds _下拉框//需求编号SR2017072600008-1
static public List<CodeMsdsEntity> GetCodeMsdsList()
{
var strSql = new StringBuilder();
strSql.Append("SELECT *,CodeAndName=(CHEMICALCGOODSNAME+' | '+GOODNAME) FROM code_msds order by [GOODNAME]");
return SetCodeMsds(strSql, true);
}
private static List<CodeMsdsEntity> SetCodeMsds(StringBuilder strSql, bool isNull)
{
var headList = new List<CodeMsdsEntity>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
CodeMsdsEntity data = new CodeMsdsEntity();
#region Set DB data to Object
data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//GID
data.GOODNAME = (reader["GOODNAME"] == null ? "" : Convert.ToString(reader["GOODNAME"]));//GOODNAME
data.TRADEGOODSNAME = (reader["TRADEGOODSNAME"] == null ? "" : Convert.ToString(reader["TRADEGOODSNAME"]));//TRADEGOODSNAME
data.CHEMICALGOODSNAME = (reader["CHEMICALGOODSNAME"] == null ? "" : Convert.ToString(reader["CHEMICALGOODSNAME"]));//CHEMICALGOODSNAME
data.CHEMICALCGOODSNAME = (reader["CHEMICALCGOODSNAME"] == null ? "" : Convert.ToString(reader["CHEMICALCGOODSNAME"]));//CHEMICALCGOODSNAME
data.CASNO = (reader["CASNO"] == null ? "" : Convert.ToString(reader["CASNO"]));//CASNO
data.UNNO = (reader["UNNO"] == null ? "" : Convert.ToString(reader["UNNO"]));//UNNO
data.DCLASS = (reader["DCLASS"] == null ? "" : Convert.ToString(reader["DCLASS"]));//DCLASS
data.SDCLASS = (reader["SDCLASS"] == null ? "" : Convert.ToString(reader["SDCLASS"]));//SDCLASS
data.PACKINGGROUP = (reader["PACKINGGROUP"] == null ? "" : Convert.ToString(reader["PACKINGGROUP"]));//PACKINGGROUP
data.ISPOLLUTEOCEAN = (reader["ISPOLLUTEOCEAN"] == null ? false : Convert.ToBoolean(reader["ISPOLLUTEOCEAN"]));//ISPOLLUTEOCEAN
data.MELTINGPOINTB = (reader["MELTINGPOINTB"] == null ? "" : Convert.ToString(reader["MELTINGPOINTB"]));//MELTINGPOINTB
data.BOILINGPOINTB = (reader["BOILINGPOINTB"] == null ? "" : Convert.ToString(reader["BOILINGPOINTB"]));//BOILINGPOINTB
data.FLASHPOINTB = (reader["FLASHPOINTB"] == null ? "" : Convert.ToString(reader["FLASHPOINTB"]));//FLASHPOINTB
data.MELTINGPOINTE = (reader["MELTINGPOINTE"] == null ? "" : Convert.ToString(reader["MELTINGPOINTE"]));//MELTINGPOINTE
data.BOILINGPOINTE = (reader["BOILINGPOINTE"] == null ? "" : Convert.ToString(reader["BOILINGPOINTE"]));//BOILINGPOINTE
data.FLASHPOINTE = (reader["FLASHPOINTE"] == null ? "" : Convert.ToString(reader["FLASHPOINTE"]));//FLASHPOINTE
data.DENSITY = (reader["DENSITY"] == null ? "" : Convert.ToString(reader["DENSITY"]));//DENSITY
data.PH = (reader["PH"] == null ? "" : Convert.ToString(reader["PH"]));//PH
data.STABILITY = (reader["STABILITY"] == null ? "" : Convert.ToString(reader["STABILITY"]));//STABILITY
data.REACTIVE = (reader["REACTIVE"] == null ? "" : Convert.ToString(reader["REACTIVE"]));//REACTIVE
data.IMDG = (reader["IMDG"] == null ? "" : Convert.ToString(reader["IMDG"]));//IMDG
data.REMARKS = (reader["REMARKS"] == null ? "" : Convert.ToString(reader["REMARKS"]));//REMARKS
data.INPUTBY = (reader["INPUTBY"] == null ? "" : Convert.ToString(reader["INPUTBY"]));//INPUTBY
if (reader["INPUTTIME"] != null && reader["INPUTTIME"].ToString().Trim().IndexOf("0001") < 0 && reader["INPUTTIME"].ToString().Trim().IndexOf("1900") < 0 && reader["INPUTTIME"].ToString().Trim() != "")
{
data.INPUTTIME = Convert.ToDateTime(reader["INPUTTIME"]);//INPUTTIME
}
data.COMPANYID = (reader["COMPANYID"] == null ? "" : Convert.ToString(reader["COMPANYID"]));//COMPANYID
//data.ISDANGEROUS = (reader["ISDANGEROUS"] == null ? false : Convert.ToBoolean(reader["ISDANGEROUS"]));//ISDANGEROUS
data.CodeAndName = (reader["CodeAndName"] == null ? "" : Convert.ToString(reader["CodeAndName"]));//CodeAndName
#endregion
headList.Add(data);
}
reader.Close();
}
if (isNull)
{
CodeMsdsEntity data2 = new CodeMsdsEntity();
data2.GID = "";//GID
data2.GOODNAME = "";//GOODNAME
data2.TRADEGOODSNAME = "";//TRADEGOODSNAME
data2.CHEMICALGOODSNAME = "";//CHEMICALGOODSNAME
data2.CHEMICALCGOODSNAME = "";//CHEMICALCGOODSNAME
data2.CASNO = "";//CASNO
data2.UNNO = "";//UNNO
data2.DCLASS = "";//DCLASS
data2.SDCLASS = "";//SDCLASS
data2.PACKINGGROUP = "";//PACKINGGROUP
data2.ISPOLLUTEOCEAN = false;//ISPOLLUTEOCEAN
data2.MELTINGPOINTB = "";//MELTINGPOINTB
data2.BOILINGPOINTB = "";//BOILINGPOINTB
data2.FLASHPOINTB = "";//FLASHPOINTB
data2.MELTINGPOINTE = "";//MELTINGPOINTE
data2.BOILINGPOINTE = "";//BOILINGPOINTE
data2.FLASHPOINTE = "";//FLASHPOINTE
data2.DENSITY = "";//DENSITY
data2.PH = "";//PH
data2.STABILITY = "";//STABILITY
data2.REACTIVE = "";//REACTIVE
data2.IMDG = "";//IMDG
data2.REMARKS = "";//REMARKS
data2.INPUTBY = "";//INPUTBY
data2.INPUTTIME = DateTime.Now;//INPUTTIME
data2.COMPANYID = "";//COMPANYID
//data2.ISDANGEROUS = false;//ISDANGEROUS
data2.CodeAndName = "";//CodeAndName
headList.Add(data2);
}
return headList;
}
#endregion
#region 权限范围
public static string GetRangStr(string tb, string userid, string username, 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]='MsCrmQuotation' 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 = " CREATEUSER='" + username + "'";
}
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 = " (CREATEUSER='" + Convert.ToString(reader["SHOWNAME"]) + "'";
}
else
{
str = str + " or CREATEUSER='" + Convert.ToString(reader["SHOWNAME"]) + "'";
};
}
str = str + ")";
reader.Close();
}
}
else
{
str = " CORPID='" + companyid + "'";
}
}
else if (visiblerange == "1")//分公司
{
str = " CORPID='" + companyid + "'";
}
return str;
}
#endregion
}
}