/****************************** * 说明:单据相关接口实现 * 创建人:龚宇超 * 创建日期:2017-11-24 * 修改人: * 修改日期: * 修改备注: * 版本:1.0.0.0 ******************************/ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using Lskj.Core; using System.Data.SqlClient; using Lskj.Model; using System.Collections; namespace Lskj.Business.Impl { /// /// 单据相关接口实现 /// public class BillImpl : BaseImpl { /// /// 说明: /// 创建人:龚宇超 /// 创建日期:2017-12-08 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// 主表SQL /// 明细表SQL /// 明细表名. /// 单据号 /// 明细表GUID /// 生成单据号标识 /// 保存方式:1.新增.2.修改 /// 确认标识:默认传0 /// 返回提示信息 /// 返回取值:1.保存成功,9.弹出询问窗口,点击是继续调用保存.其他返回值为保存失败. /// public static int BillSave(string masterSql, string detailSql, string detailTable, ref string billNo, string detailGuid, string billSeq, int billWay, int comfirm, out string tipMsg, int auditFlag = 0, int newVer = 0) { try { // 先添加明细表临时表 if (!string.IsNullOrWhiteSpace(detailSql)) { int result = ExecSqlValue(detailSql, true); if (result > 0) { SqlParameter pMsg = ERPInfo.Instance.ChangeParameterType ? new SqlParameter("@msg", SqlDbType.NVarChar, 4000) : new SqlParameter("@msg", SqlDbType.VarChar, 2000); pMsg.Direction = ParameterDirection.Output; SqlParameter returnValue = new SqlParameter("@return", SqlDbType.Int, 4); returnValue.Direction = ParameterDirection.ReturnValue; SqlParameter[] param = { ERPInfo.Instance.ChangeParameterType ? new SqlParameter("@Sql",SqlDbType.NVarChar):new SqlParameter("@Sql",SqlDbType.VarChar,5000), new SqlParameter("@billdocument_id",SqlDbType.VarChar,500), new SqlParameter("@tmpstr",SqlDbType.VarChar,5000), new SqlParameter("@Operatorid",SqlDbType.Int), new SqlParameter("@Fbilltagid",SqlDbType.Int), new SqlParameter("@operateway",SqlDbType.VarChar,50), pMsg, new SqlParameter("@auditFlag",SqlDbType.Int), new SqlParameter("@comfirmFlag",SqlDbType.Int), returnValue }; param[0].Value = masterSql; param[1].Value = billNo; param[2].Value = detailGuid; param[3].Value = ERPInfo.Instance.UserId; param[4].Value = billWay;// --1新增,2为修改,3为删除 param[5].Value = billSeq; param[6].Value = ""; param[7].Value = auditFlag; param[8].Value = comfirm; DataSet dataSet = SqlHelper.ExecuteDataSet(CommandType.StoredProcedure, newVer == 0 ? "P_BillSavePr_3" : "P_BillSavePr70", "billSave", param); if (Convert.ToInt32(returnValue.Value + "") == -1&& SqlHelper.ConnectionType == ConnectionType.SqlServer) { SqlStoredProcedurepPrompt.GenerateBillSaveScript( masterSql, detailSql, detailTable, billNo, detailGuid, billSeq, billWay, comfirm,auditFlag ,newVer); } if (Convert.ToInt32(returnValue.Value + "") == -1 && SqlHelper.ConnectionType == ConnectionType.DmServer) { SqlStoredProcedurepPrompt.GenerateBillSaveScript_DM(detailSql, SqlHelper.LastFailureSql, detailTable, detailGuid); } tipMsg = pMsg.Value.ToString(); if (newVer == 1 && billWay == 1) billNo = tipMsg; return Convert.ToInt32(returnValue.Value + ""); } } tipMsg = "保存单据临时表失败!"; } catch (Exception ex) { tipMsg = ex.Message; throw new Exception(ex.Message); } finally { ExecSqlValue(string.Format("delete {0}_temp where sysstr='{1}'", detailTable, detailGuid)); } return -1; } /// /// 说明:单据提交 /// 创建人:龚宇超 /// 创建日期:2017-12-13 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// 模块编号. /// 单据号. /// 重新提交时输入的提示信息.第一次调用传空 /// 确认:默认传递1 /// 提示信息. /// System.Int32. public static int BillApply(string typeCode, string billNo, string hintMsg, int comfirm, out string tipMsg, int comfirmFlag = 0) { SqlParameter pMsg = ERPInfo.Instance.ChangeParameterType ? new SqlParameter("@msg", SqlDbType.NVarChar, 4000) : new SqlParameter("@msg", SqlDbType.VarChar, 2000); pMsg.Direction = ParameterDirection.InputOutput; SqlParameter returnValue = new SqlParameter("@return", SqlDbType.Int, 4); returnValue.Direction = ParameterDirection.ReturnValue; List list = new List { new SqlParameter("@typeCode",SqlDbType.VarChar,20), new SqlParameter("@billDocumentId",SqlDbType.VarChar,40), new SqlParameter("@Operatorid",SqlDbType.Int), ERPInfo.Instance.ChangeParameterType ?new SqlParameter("@operatorName",SqlDbType.NVarChar,40):new SqlParameter("@operatorName",SqlDbType.VarChar,20), new SqlParameter("@comfirmType",SqlDbType.Int), pMsg, returnValue, }; DataTable dt = GetDataTableResult("select * from syscolumns where id =object_id('p_billApply') and name='@confirmFlag'"); if (dt != null && dt.Rows.Count > 0) { SqlParameter Flag = new SqlParameter("@confirmFlag", SqlDbType.Int, 4); Flag.Value = comfirmFlag; list.Add(Flag); } SqlParameter[] param = list.ToArray(); param[0].Value = typeCode; param[1].Value = billNo; param[2].Value = ERPInfo.Instance.UserId; param[3].Value = ERPInfo.Instance.UserName; param[4].Value = 1; param[5].Value = hintMsg; DataSet dataSet = SqlHelper.ExecuteDataSet(CommandType.StoredProcedure, "p_billApply", "billApply", param); tipMsg = pMsg.Value.ToString(); if (Convert.ToInt32(returnValue.Value + "") == -1) { if (SqlHelper.ConnectionType == ConnectionType.SqlServer) { SqlStoredProcedurepPrompt.GenerateBillApplyExecutionScript(typeCode, billNo, hintMsg, comfirm, comfirmFlag); } if (SqlHelper.ConnectionType == ConnectionType.DmServer) { SqlStoredProcedurepPrompt.GenerateBillSaveScript_DM(SqlHelper.LastFailureSql); } } return Convert.ToInt32(returnValue.Value + ""); } /// /// 说明:删除单据条码 /// 创建人:龚宇超 /// 创建日期:2017-12-13 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public static int DeleteProductBarCodeData(string menuCode, string billDocumentId, string detailId, DataRow row) { string uCode = row["uniqueCode"] + ""; string keyValue = row["RunningNumber"] + ""; string sqlValue = string.Format(@"delete from wms_productBarcode where primarykey='{0}' and mxid='{1}' and uniquecode='{2}'", billDocumentId, detailId, uCode); BaseSaveModel saveModel = new BaseSaveModel { BaseSaveType = SaveType.Delete, BaseSql = sqlValue, KeyField = "", FieldValue = keyValue, MenuCode = menuCode, TableName = "" }; return BaseModuleImpl.SaveBasePanelData(saveModel); } /// /// 说明:删除单据条码 /// 创建人:龚宇超 /// 创建日期:2017-12-13 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public static int DeleteProductBarCodeData(string menuCode, string billDocumentId, string detailId, DataRow row, string menuTable) { string uCode = row["uniqueCode"] + ""; string keyValue = row["RunningNumber"] + ""; string sqlValue = string.Format(@"delete from {3} where primarykey='{0}' and mxid='{1}' and uniquecode='{2}'", billDocumentId, detailId, uCode, menuTable); BaseSaveModel saveModel = new BaseSaveModel { BaseSaveType = SaveType.Delete, BaseSql = sqlValue, KeyField = "", FieldValue = keyValue, MenuCode = menuCode, TableName = "" }; return BaseModuleImpl.SaveBasePanelData(saveModel); } /// /// 说明:创建单据条码 /// 创建人:龚宇超 /// 创建日期:2017-12-13 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public static int InsertProductBarCodeData(string menuCode, string parentCode, string billNo, string detailId, string uCode, string productId, string runNumber, string uAmount, string uGroup, string jyBillNo) { string sqlValue = string.Format(@"insert into wms_productBarcode(modid,primaryKey,mxid,uniqueCode,objectid,operatorid,operatorname,operatedate,RunningNumber,Amount,GroupTag,JyBillNo) values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}')", parentCode, billNo, detailId, uCode, productId, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, DateTime.Now, runNumber, uAmount, uGroup, jyBillNo); BaseSaveModel saveModel = new BaseSaveModel { BaseSaveType = SaveType.Add, BaseSql = sqlValue, KeyField = "", FieldValue = runNumber, MenuCode = menuCode, TableName = "" }; return BaseModuleImpl.SaveBasePanelData(saveModel); } /// /// 说明:创建单据条码 /// 创建人:龚宇超 /// 创建日期:2017-12-13 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public static int InsertProductBarCodeData(string menuCode, string parentCode, string billNo, string detailId, string uCode, string productId, string runNumber, string uAmount, string uGroup, string jyBillNo, string MenuTable) { string sqlValue = string.Format(@"insert into {12}(modid,primaryKey,mxid,uniqueCode,objectid,operatorid,operatorname,operatedate,RunningNumber,Amount,GroupTag,JyBillNo) values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}')", parentCode, billNo, detailId, uCode, productId, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, DateTime.Now, runNumber, uAmount, uGroup, jyBillNo, MenuTable); BaseSaveModel saveModel = new BaseSaveModel { BaseSaveType = SaveType.Add, BaseSql = sqlValue, KeyField = "", FieldValue = runNumber, MenuCode = menuCode, TableName = "" }; return BaseModuleImpl.SaveBasePanelData(saveModel); } /// /// 说明:初始化单据配置 /// 创建人:龚宇超 /// 创建日期:2017-11-27 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The master table. /// The detail table. public static void InitBillSetting(BillModel model) { // 增加明细表排序列配置 try { string sqlValue = "alter table " + model.DetailTable + " add " + model.DetailOrderField + " int"; SqlHelper.ExecuteNonQuery(sqlValue); } catch (Exception) { } // 增加明细临时表排序列配置 try { string sqlValue = "alter table " + model.DetailTable + "_temp add " + model.DetailOrderField + " int"; SqlHelper.ExecuteNonQuery(sqlValue); } catch (Exception) { } } /// /// 说明:更新条码数据 /// 创建人:龚宇超 /// 创建日期:2018-04-28 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public static void UpdateProductBarCodeData(DataTable dt) { StringBuilder str = new StringBuilder(); foreach (DataRow dr in dt.Rows) { if (dr.RowState == DataRowState.Modified) str.Append(string.Format("update wms_productBarcode set Amount='{0}',GroupTag='{1}',JyBillNo='{2}' where id='{3}'", dr["Amount"], dr["grouptag"] + "", dr["jybillno"] + "", dr["id"])); } if (!string.IsNullOrEmpty(str.ToString())) { SqlHelper.ExecuteNonQuery(str + ""); } } /// /// 说明:获取单据编号 /// 创建人:龚宇超 /// 创建日期:2017-11-27 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The bill seq. /// System.String. /// public static string GetBillNo(string billSeq, string primaryKey = "") { string returnId = primaryKey; SqlParameter param = new SqlParameter("@return_id", SqlDbType.VarChar); param.Direction = ParameterDirection.InputOutput; SqlParameter[] parameters ={ new SqlParameter("@billSeq",SqlDbType.VarChar), param }; parameters[0].Value = billSeq; param.Value = returnId; DataSet dataSet = SqlHelper.ExecuteDataSet(CommandType.StoredProcedure, "P_create_billdocumentPr", "bill", parameters); return dataSet != null && dataSet.Tables.Count > 0 ? dataSet.Tables[0].Rows[0][0] + "" : string.Empty; } /// /// 说明:获取单据信息 /// 创建人:龚宇超 /// 创建日期:2017-11-27 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The menu code. /// DataRow. public static DataRow GetBillInfo(string menuCode) { string sqlValue = string.Format(@"select a.*,b.parentHeight,b.parentWidth from p_systembilltype a left join (select formKey,MAX(parentHeight) parentHeight,MAX(parentWidth) parentWidth from p_systemControlParent group by formKey) b on a.formKey=b.formKey where typeCode='{0}'", menuCode); DataTable dtTable = SqlHelper.ExecuteDataTable(sqlValue); return dtTable.Rows.Count > 0 ? dtTable.Rows[0] : null; ; } /// /// 说明:初始化单据明细列 /// 创建人:龚宇超 /// 创建日期:2017-11-27 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The menu code. /// DataTable. /// public static DataTable GetDetailColumns(string menuCode) { string otherfield = string.Empty; string detailCond = string.Empty; string sumCond = string.Empty; DataTable dataTable = GetTableColumns("p_systembillDetail"); //dataTable.Columns.Contains("bandTitle") if (dataTable.Columns.Contains("dataAlignment"))//检查数据库表是否包含某列 otherfield = "dataAlignment,fontName,"; if (dataTable.Columns.Contains("ifmerge")) otherfield += "ifmerge,"; if (dataTable.Columns.Contains("bandTitle")) otherfield += "bandTitle,"; if (dataTable.Columns.Contains("bandFields")) otherfield += "bandFields,"; if (dataTable.Columns.Contains("sumText")) detailCond += ",a.sumText"; if (dataTable.Columns.Contains("AutoPadDataReleColName")) detailCond += ",a.AutoPadDataReleColName"; if (dataTable.Columns.Contains("sumCond")) sumCond += ",a.sumCond"; if (dataTable.Columns.Contains("enableCond")) sumCond += ",a.enableCond"; if (dataTable.Columns.Contains("disableCond")) sumCond += ",a.disableCond"; if (dataTable.Columns.Contains("labelText")) sumCond += ",a.labelText"; if (dataTable.Columns.Contains("canCopy")) sumCond += ",a.canCopy"; if (dataTable.Columns.Contains("addModuleId")) sumCond += ",a.addModuleId"; if (dataTable.Columns.Contains("UnionCompare")) sumCond += ",a.UnionCompare"; if (dataTable.Columns.Contains("isExportColumns")) sumCond += ",a.isExportColumns"; if (dataTable.Columns.Contains("Summation")) sumCond += ",a.Summation"; if (dataTable.Columns.Contains("IsRadio")) sumCond += ",a.IsRadio"; if (dataTable.Columns.Contains("SearchBoxAddition")) sumCond += ",a.SearchBoxAddition "; if (dataTable.Columns.Contains("RepeatedVerification")) sumCond += ",a.RepeatedVerification "; if (dataTable.Columns.Contains("LookUpWidth")) sumCond += ",a.LookUpWidth "; if (dataTable.Columns.Contains("LookUpFieldsWidth")) sumCond += ",a.LookUpFieldsWidth "; if (dataTable.Columns.Contains("PrivilegeView")) sumCond += ",a.PrivilegeView "; if (dataTable.Columns.Contains("PrivilegeOper")) sumCond += ",a.PrivilegeOper "; if (dataTable.Columns.Contains("ProhibitPaste")) sumCond += ",a.ProhibitPaste "; if (dataTable.Columns.Contains("FormatEditBox")) sumCond += ",a.FormatEditBox "; if (dataTable.Columns.Contains("PromptText")) sumCond += ",a.PromptText "; if (dataTable.Columns.Contains("SplicingConditions")) sumCond += ",a.SplicingConditions "; if (dataTable.Columns.Contains("ColumnAnnotation")) sumCond += ",a.ColumnAnnotation "; if (dataTable.Columns.Contains("TitleColor")) sumCond += ",a.TitleColor "; if (dataTable.Columns.Contains("resultfields")) sumCond += ",a.resultfields "; string columsSql = string.Format(@"SELECT DISTINCT isnull(CASE WHEN ISNULL(b.userList,'')='' AND ISNULL(a.PrivilegeView,'')<>'' OR isnull(isVisible,0)=1 THEN 0 ELSE width END,0) width, isnull(CASE WHEN ISNULL(c.userList,'')='' AND ISNULL(a.PrivilegeOper,'')<>'' THEN 1 ELSE edited END,0) edit,isnull(isVisible,0) isVisible,CASE WHEN isnull(isVisible,0) = 0 THEN 0 ELSE 1 END vislble, a.id,a.fieldName,isnull(a.[sysName],'') sysName,a.username,a.dataFormat,a.fieldTypeId fieldsqltag,a.calcOrder,a.isSum,a.defaultValue defaultdate,{2} a.lookupKeyField fieldsqlid,a.lookupResult fieldsqlname,a.lookupSql fieldsql,a.calcExpr,a.orderid,isnull(a.nullable,0) nullable,a.unionFields,a.unionValue {3}{4} FROM p_systembillDetail a LEFT JOIN ( SELECT userList,privTypeId from p_systemPrivilege b where modId = '{0}' AND CHARINDEX(',' + '{1}' + ',', ',' + userList + ',') > 0 ) b on CHARINDEX(',' + CAST(b.privTypeId AS VARCHAR(5)) + ',',',' + a.PrivilegeView + ',') > 0 LEFT JOIN ( SELECT userList,privTypeId FROM p_systemPrivilege WHERE modId = '{0}' AND CHARINDEX(',' + '{1}' + ',', ',' + USERLIST + ',') > 0 ) c ON CHARINDEX(',' + CAST(c.privTypeId AS VARCHAR(5)) + ',',',' + a.PrivilegeOper + ',') > 0 WHERE typeCode='{0}' order by a.orderid asc", menuCode, ERPInfo.Instance.UserName, otherfield, detailCond, sumCond); //and isVisible=0 return SqlHelper.ExecuteDataTable(columsSql); } /// /// 说明:初始化单据明细列 /// 创建人:龚宇超 /// 创建日期:2017-11-27 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The menu code. /// DataTable. /// public static DataTable GetDetailColumns(string menuCode, bool isBanded) { string otherfield = string.Empty; string detailCond = string.Empty; string sumCond = string.Empty; DataTable dataTable = GetTableColumns("p_systembillDetail"); if (dataTable.Columns.Contains("dataAlignment"))//检查数据库表是否包含某列 otherfield = "dataAlignment,fontName,"; if (dataTable.Columns.Contains("ifmerge")) otherfield += "ifmerge,"; if (dataTable.Columns.Contains("bandTitle")) otherfield += "bandTitle,"; if (dataTable.Columns.Contains("bandFields")) otherfield += "bandFields,"; if (dataTable.Columns.Contains("sumText")) detailCond += ",a.sumText"; if (dataTable.Columns.Contains("AutoPadDataReleColName")) detailCond += ",a.AutoPadDataReleColName"; if (dataTable.Columns.Contains("sumCond")) sumCond += ",a.sumCond"; if (dataTable.Columns.Contains("enableCond")) sumCond += ",a.enableCond"; if (dataTable.Columns.Contains("labelText")) sumCond += ",a.labelText"; if (dataTable.Columns.Contains("disableCond")) sumCond += ",a.disableCond"; if (dataTable.Columns.Contains("canCopy")) sumCond += ",a.canCopy"; if (dataTable.Columns.Contains("addModuleId")) sumCond += ",a.addModuleId"; if (dataTable.Columns.Contains("UnionCompare")) sumCond += ",a.UnionCompare"; if (dataTable.Columns.Contains("isExportColumns")) sumCond += ",a.isExportColumns"; if (dataTable.Columns.Contains("Summation")) sumCond += ",a.Summation"; if (dataTable.Columns.Contains("IsRadio")) sumCond += ",a.IsRadio"; if (dataTable.Columns.Contains("SearchBoxAddition")) sumCond += ",a.SearchBoxAddition "; if (dataTable.Columns.Contains("RepeatedVerification")) sumCond += ",a.RepeatedVerification "; if (dataTable.Columns.Contains("LookUpWidth")) sumCond += ",a.LookUpWidth "; if (dataTable.Columns.Contains("LookUpFieldsWidth")) sumCond += ",a.LookUpFieldsWidth "; if (dataTable.Columns.Contains("PrivilegeView")) sumCond += ",a.PrivilegeView "; if (dataTable.Columns.Contains("PrivilegeOper")) sumCond += ",a.PrivilegeOper "; if (dataTable.Columns.Contains("ProhibitPaste")) sumCond += ",a.ProhibitPaste "; if (dataTable.Columns.Contains("FormatEditBox")) sumCond += ",a.FormatEditBox "; if (dataTable.Columns.Contains("PromptText")) sumCond += ",a.PromptText "; if (dataTable.Columns.Contains("SplicingConditions")) sumCond += ",a.SplicingConditions "; if (dataTable.Columns.Contains("ColumnAnnotation")) sumCond += ",a.ColumnAnnotation "; if (dataTable.Columns.Contains("TitleColor")) sumCond += ",a.TitleColor "; if (dataTable.Columns.Contains("resultfields")) sumCond += ",a.resultfields "; string columsSql = string.Format(@"SELECT DISTINCT isnull(CASE WHEN ISNULL(b.userList,'')='' AND ISNULL(a.PrivilegeView,'')<>'' OR isnull(isVisible,0)=1 THEN 0 ELSE width END,0) width, isnull(CASE WHEN ISNULL(c.userList,'')='' AND ISNULL(a.PrivilegeOper,'')<>'' THEN 1 ELSE edited END,0) edit,isnull(isVisible,0) isVisible, a.id,a.fieldName,isnull(a.[sysName],'') sysName,a.username,a.dataFormat,a.fieldTypeId fieldsqltag,a.calcOrder,a.isSum,a.defaultValue defaultdate,{2} a.lookupKeyField fieldsqlid,a.lookupResult fieldsqlname,a.lookupSql fieldsql,a.calcExpr,a.orderid,isnull(a.nullable,0) nullable,a.unionFields,a.unionValue,a.canCopy{3}{4} FROM p_systembillDetail a LEFT JOIN ( SELECT userList,privTypeId from p_systemPrivilege b where modId = '{0}' AND CHARINDEX(',' + '{1}' + ',', ',' + userList + ',') > 0 ) b on CHARINDEX(',' + CAST(b.privTypeId AS VARCHAR(5)) + ',',',' + a.PrivilegeView + ',') > 0 LEFT JOIN ( SELECT userList,privTypeId FROM p_systemPrivilege WHERE modId = '{0}' AND CHARINDEX(',' + '{1}' + ',', ',' + USERLIST + ',') > 0 ) c ON CHARINDEX(',' + CAST(c.privTypeId AS VARCHAR(5)) + ',',',' + a.PrivilegeOper + ',') > 0 WHERE typeCode='{0}' and isVisible=0 order by a.orderid asc", menuCode, ERPInfo.Instance.UserName, otherfield, detailCond, sumCond); //and isVisible=0 return SqlHelper.ExecuteDataTable(columsSql); } /// /// 说明:获取单据来源列 /// 创建人:龚宇超 /// 创建日期:2017-11-28 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The source identifier. /// DataTable. public static DataTable GetSourceColumns(int sourceId) { string sqlValue = "select * from p_systembillsourcegrid where sourceid=@sourceid and isVisible=0 order by orderid"; return SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@sourceid", sourceId) }); } /// /// 说明:获取Brp模版 /// 创建人:龚宇超 /// 创建日期:2018-04-20 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The menu code. /// DataTable. /// public static DataTable GetBillBrp(string menuCode) { string sqlValue = "select * from P_pubrpsettab where tab=@tab and ban=1 order by orderid"; return SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@tab", menuCode) }); } /// /// 说明:获取单据明细模版列 /// 创建人:龚宇超 /// 创建日期:2018-04-23 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The BRP identifier. /// DataTable. public static DataTable GetBillDetailBrpColumns(string brpId) { string sqlValue = string.Format(@"SELECT distinct isnull(CASE WHEN ISNULL(b.userList,'')='' AND ISNULL(a.PrivilegeView,'')<>'' THEN 0 ELSE width END,0) width, isnull(CASE WHEN ISNULL(c.userList,'')='' AND ISNULL(a.PrivilegeView,'')<>'' THEN 1 ELSE edited END,0) Edit,a.*, a.lookupsql fieldsql,a.lookupKeyField fieldsqlid,a.lookupResult fieldsqlname,a.fieldTypeId fieldsqltag,a.defaultValue defaultdate FROM p_PubRPSetDetailTab a LEFT JOIN ( SELECT userList,privTypeId from p_systemPrivilege b where modId = '{0}' AND CHARINDEX(','+'{1}' + ',', ','+userList + ',') > 0 ) b on CHARINDEX(','+CAST(b.privTypeId AS VARCHAR(5)) + ',',','+a.PrivilegeView + ',') > 0 LEFT JOIN ( SELECT TOP 1 userList,privTypeId FROM p_systemPrivilege WHERE modId = '{0}' AND CHARINDEX(','+'{1}' + ',', ','+USERLIST + ',') > 0 ) c ON CHARINDEX(','+CAST(c.privTypeId AS VARCHAR(5)) + ',',','+a.PrivilegeOper + ',') > 0 WHERE modid='{0}' and isnull(isVisible,0)=0 order by a.orderid asc", brpId, ERPInfo.Instance.UserName); return GetDataTableResult(sqlValue); } /// /// 说明:获取单据来源 /// 创建人:龚宇超 /// 创建日期:2017-11-28 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The menu code. /// The source cond. /// DataTable. /// public static Hashtable GetSources(string menuCode, string sourceCond) { if (!HasExistsColumn("p_systembillsourcedetail", "ifmerge ")) { ExecSqlValue("alter table p_systembillsourcedetail add ifmerge int default(0)"); } Hashtable htTable = new Hashtable(); string otherfield = string.Empty; if (HasExistsColumn("p_systembillsourcedetail", "dataAlignment")) otherfield = "dataAlignment,fontName,"; string conditions = string.Empty; if (HasExistsColumn("p_systembillsourcedetail", "mxflag ")) { conditions = "and isnull(mxflag,0)=0"; } string cond = !string.IsNullOrEmpty(sourceCond) ? string.Format(" and id in ({0})", sourceCond.Trim(',')) : string.Empty; string sqlValue = string.Format(@"WITH UserRoles AS ( SELECT r.roleName FROM p_systemRoleOperSetTab AS ro JOIN p_systemRoleSetTab AS r ON r.id = ro.roleId WHERE ro.operatorname = '{0}' ) select * from p_systembillsource where typeCode=@typeCode" + cond + @" and isnull(isVisible,0)=0 and (isnull(viewOper,'')='' or CHARINDEX(',' + '{0}' + ',', ',' + viewOper + ',')>0 OR EXISTS ( SELECT 1 FROM UserRoles AS ur WHERE CHARINDEX('{{&' + ur.roleName + '&}}', viewOper) > 0)) order by orderid", ERPInfo.Instance.UserName); string sqlDetail = string.Format(@"WITH UserRoles AS ( SELECT r.roleName FROM p_systemRoleOperSetTab AS ro JOIN p_systemRoleSetTab AS r ON r.id = ro.roleId WHERE ro.operatorname = '{1}' ) SELECT id,sourceId,fieldName,sysName,userName,orderid,isVisible,sourceKey,privilegeView,DataFormat,isSum,ifmerge,{2} isnull(CASE WHEN isVisible=1 OR (ISNULL(b.userList,'')='' AND ISNULL(a.PrivilegeView,'')<>'') THEN 0 ELSE width END,0) width FROM p_systembillsourcedetail a LEFT JOIN ( SELECT userList,privTypeId from p_systemPrivilege b where modId = '{0}' AND CHARINDEX(',' + '{1}' + ',', ',' + userList + ',') > 0 ) b on CHARINDEX(',' + CAST(b.privTypeId AS VARCHAR(5)) + ',',',' + PrivilegeView + ',') > 0 where sourceId in (select id from p_systembillsource where typeCode=@typeCode" + cond + @" and isnull(isVisible,0)=0 and (isnull(viewOper,'')='' or CHARINDEX(',' + '{1}' + ',', ',' + viewOper + ',')>0) OR EXISTS ( SELECT 1 FROM UserRoles AS ur WHERE CHARINDEX('{{&' + ur.roleName + '&}}', viewOper) > 0)) {3} ", menuCode, ERPInfo.Instance.UserName, otherfield, conditions); htTable["master"] = SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@typeCode", menuCode) }); DataTable detailTable= SqlHelper.ExecuteDataTable(sqlDetail, new SqlParameter[] { new SqlParameter("@typeCode", menuCode) }); // order by sourceId,orderid 数据库不排序,在表格中排序(解决慢查询) if (detailTable != null && detailTable.Rows.Count > 0) { detailTable.DefaultView.Sort = "sourceId ASC, orderid ASC"; detailTable = detailTable.DefaultView.ToTable(); } htTable["detail"] = detailTable; return htTable; } /// /// 说明:根据模块Id获取单据明细(单据条码输入模块) /// 创建人:龚宇超 /// 创建日期:2018-04-28 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// 模块编号 /// DataTable. public static DataTable GetBillDetail(string menuCode) { string sqlValue = string.Format(@"select modifyCond,detailTable,detailTable_1,masterTable from (select DllCoid as typecode, SQLDT1 as masterTable,SQLDT1 as detailTable,'' as detailTable_1,modifyCond from p_systemDlltab union all select typecode,masterTable,detailTable,detailTable_1,modifyCond from p_systembilltype) x where typecode='{0}'", menuCode); return SqlHelper.ExecuteDataTable(sqlValue); } /// /// 说明:获取单据明细信息 /// 创建人:龚宇超 /// 创建日期:2018-04-28 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// 明细表名 /// 列前缀 /// 单据编号. /// 明细Id /// DataTable. public static DataTable GetBillDeatilInfo(string table, string prefix, string billDocumentId, string detailId) { string sqlValue = string.Format("select 1 from {0} where {1}billdocument_id='{2}' and {1}id='{3}'", table, prefix, billDocumentId, detailId); return SqlHelper.ExecuteDataTable(sqlValue); } /// /// 说明:获取商品明细信息 /// 创建人:龚宇超 /// 创建日期:2018-04-28 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The product identifier. /// DataTable. public static DataTable GetProductInfo(string productId) { string sqlValue = string.Format(@"select Appellation as productName, Model,Spec,ProductUnitName, classify,Mproductid,str4 from p_producttab where ProductId='{0}'", productId); DataTable dt = SqlHelper.ExecuteDataTable(sqlValue); //如果表没查到数据,再到视图进行查 if (dt.Rows.Count == 0) { sqlValue = string.Format(@"select Appellation as productName, Model,Spec,ProductUnitName, classify,Mproductid,str4 from v_producttab where ProductId='{0}'", productId); dt = SqlHelper.ExecuteDataTable(sqlValue); } return dt; } /// /// 说明:设置条码表格列 /// 创建人:龚宇超 /// 创建日期:2018-04-28 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public static DataTable SetProductBarCodeColumns() { string sqlValue = @" select '1' id , 'uniqueCode' fieldName, 171 width,'' sysname , '条码' username, '' dataFormat,'0' fieldsqltag,'' CalcOrder,'0' Edit,'2' defaultdate,'' fieldsqlid,''fieldsqlname,''fieldsql,'' calcExpr union select '2' , 'RunningNumber' ,'' , '' , 'gridColumn1' , '', '','','','','','','','' union select '3' , 'Amount' ,51 , '' , '数量' , '', '','','','','','','','' union select '4' , 'operatorName' ,70 , '' , '操作员' , '', '','','','','','','','' union select '5' , 'operateDate' ,120 ,'' , '时间' ,'', '','','','','','','','' union select '6' , 'banName' ,75 , '' , '状态' ,'', '','','','','','','','' union select '7' , 'banBak' ,217 , '' , '原因' , '', '','','','','','','','' union select '8' , 'GroupTag' ,80 , '' , '分组', '', '','','','','dm','mc','select Mix_NO as dm,Mix_apellation as mc from P_BaseMixInfoTab where Tag=111102','' union select '9' , 'JyBillNo' ,174 , '' , '检验单号' , '', '','','','','','','',''"; return SqlHelper.ExecuteDataTable(sqlValue); } /// /// 说明:设置条码表格列 /// 创建人:龚宇超 /// 创建日期:2018-05-02 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public static DataTable SetBarCodeImportantColumns() { string sqlValue = @" select '1' id , 'xd' fieldName, 38 width, '' sysname , '选择' username, '' dataFormat,'0' fieldsqltag,'' CalcOrder,'0' Edit,'2' defaultdate,'' fieldsqlid,''fieldsqlname,''fieldsql,'' calcExpr union select '2' , '条码' ,172 , '' , '条码' , '','','','','','','','','' union select '3' , '型号' ,239 , '' , '型号' , '','','','','','','','','' union select '4' , '数量' ,75 , '' , '数量' , '','','','','','','','','' union select '5' , '分组' ,75 ,'' , '分组' , '','','','','','','','','' union select '6' , '检验单号' ,75 , '' , '检验单号','','','','','','','','',''"; return SqlHelper.ExecuteDataTable(sqlValue); } /// /// 说明:获取录入条码数据 /// 创建人:龚宇超 /// 创建日期:2018-04-28 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// 模块编号 /// 单据编号. /// 明细Id. /// DataTable. public static DataTable GetProductBarCodeData(string menuCode, string billDocumentId, string detailId) { string sqlValue = string.Format(@"select id,modid,primaryKey,mxId,objectId,uniqueCode,operateDate,operatorId, operatorName,oldAmount,Convert(Float,Amount) Amount,RunningNumber, case when isnull(ban,0)=0 then '异常' else '正常' end banName,ban,banBak,GroupTag,JyBillNo from wms_productBarcode where modid='{0}' and primaryKey='{1}' and mxid='{2}'", menuCode, billDocumentId, detailId); return SqlHelper.ExecuteDataTable(sqlValue); } /// /// 说明:获取录入条码数据 /// 创建人:龚宇超 /// 创建日期:2018-04-28 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// 模块编号 /// 单据编号. /// 明细Id. /// DataTable. public static DataTable GetProductBarCodeData(string menuCode, string billDocumentId, string detailId, string menuTable) { string sqlValue = string.Format(@"select id,modid,primaryKey,mxId,objectId,uniqueCode,operateDate,operatorId, operatorName,oldAmount,Convert(Float,Amount) Amount,RunningNumber, case when isnull(ban,0)=0 then '异常' else '正常' end banName,ban,banBak,GroupTag,JyBillNo from {3} where modid='{0}' and primaryKey='{1}' and mxid='{2}'", menuCode, billDocumentId, detailId, menuTable); return SqlHelper.ExecuteDataTable(sqlValue); } /// /// 说明:单据-存储过程 /// 创建人:曹屹峰 /// 创建日期:2021-8-23 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public static DataSet GetNewDesignPlatreportdBocuments(int moduleId, string menuCode, string settingTableName, out int _baseType, out int _errCode) { DataSet ds = new DataSet(); SqlParameter baseType = new SqlParameter("@baseType", SqlDbType.Int, 4); baseType.Direction = ParameterDirection.Output; SqlParameter errCode = new SqlParameter("@errCode", SqlDbType.Int, 4); errCode.Direction = ParameterDirection.Output; SqlParameter[] param = { new SqlParameter("@userId",SqlDbType.Int,4), ERPInfo.Instance.ChangeParameterType ?new SqlParameter("@operatorName",SqlDbType.NVarChar,40):new SqlParameter("@operatorName",SqlDbType.VarChar,20), new SqlParameter("@moduleId",SqlDbType.Int,4), new SqlParameter("@moduleCode",SqlDbType.VarChar,50), new SqlParameter("@gridColumnStruct",SqlDbType.VarChar,50), new SqlParameter("@baseDetailGridView",SqlDbType.VarChar,50), new SqlParameter("@settingTableName",SqlDbType.VarChar,50), baseType, errCode }; param[0].Value = ERPInfo.Instance.UserId; param[1].Value = ERPInfo.Instance.UserName; param[2].Value = moduleId; param[3].Value = menuCode; param[4].Value = GridCustomColumnStruct.BaseMainGridView; param[5].Value = GridCustomColumnStruct.BaseDetailGridView; param[6].Value = settingTableName; ds = SqlHelper.ExecuteDataSet(CommandType.StoredProcedure, "p_Get_NewDesignPlatform_Bill", "cacheSYSConfig", param); _baseType = (int)baseType.Value; _errCode = (int)errCode.Value; return ds; } /// /// 说明:单据审核存储过程 /// 创建人:曹屹峰 /// 创建日期:2021-8-23 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public static DataSet GetNewDesignPlatformDocumentsReview(DynamicPubAccraditionPopModel SysModel, string settingTableName) { DataSet ds = new DataSet(); SqlParameter[] param = { new SqlParameter("@userId",SqlDbType.Int,4), ERPInfo.Instance.ChangeParameterType ?new SqlParameter("@operatorName",SqlDbType.NVarChar,40):new SqlParameter("@operatorName",SqlDbType.VarChar,20), new SqlParameter("@moduleId",SqlDbType.Int,4), new SqlParameter("@moduleCode",SqlDbType.VarChar,50), new SqlParameter("@Privilege",SqlDbType.Int,4), new SqlParameter("@StepCode",SqlDbType.VarChar,50), new SqlParameter("@billdocumentId",SqlDbType.VarChar,50), new SqlParameter("@settingTableName",SqlDbType.VarChar,50), new SqlParameter("@ConfirmId",SqlDbType.VarChar,50), }; param[0].Value = ERPInfo.Instance.UserId; param[1].Value = ERPInfo.Instance.UserName; param[2].Value = SysModel.ModuleId; param[3].Value = SysModel.ModuleCode; param[4].Value = SysModel.Privilege; param[5].Value = SysModel.StepCode; param[6].Value = SysModel.BillDocumentId; param[7].Value = settingTableName; param[8].Value = SysModel.ConfirmId; ; ds = SqlHelper.ExecuteDataSet(CommandType.StoredProcedure, "p_Get_NewDesignPlatform_DocumentsReview", "cacheSYSConfig", param); return ds; } /// /// 说明:单据审核存储过程 /// 创建人:曹屹峰 /// 创建日期:2021-8-23 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public static DataSet GetNewDesignPlatformPubAccraditation2(DynamicPubAccraditionModel SysModel) { DataSet ds = new DataSet(); SqlParameter[] param = { new SqlParameter("@FormText",SqlDbType.VarChar,50), new SqlParameter("@userId",SqlDbType.Int,20), new SqlParameter("@UserName",SqlDbType.VarChar,50), new SqlParameter("@Privilege",SqlDbType.Int,4), new SqlParameter("@ModuleCode",SqlDbType.VarChar,50), new SqlParameter("@ModuleId",SqlDbType.VarChar,50), }; param[0].Value = SysModel.FormText; param[1].Value = ERPInfo.Instance.UserId; param[2].Value = ERPInfo.Instance.UserName; param[3].Value = SysModel.Privilege; param[4].Value = SysModel.ModuleCode; param[5].Value = SysModel.ModuleId; ds = SqlHelper.ExecuteDataSet(CommandType.StoredProcedure, "p_Get_NewDesignPlatform_PubAccraditation2", "cacheSYSConfig", param); return ds; } } }