Files
lserp_cs_6.0/插件库/Lskj.Business/Impl/BillImpl.cs
T

1003 lines
53 KiB
C#

/******************************
* 说明:单据相关接口实现
* 创建人:龚宇超
* 创建日期: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
{
/// <summary>
/// 单据相关接口实现
/// </summary>
public class BillImpl : BaseImpl
{
/// <summary>
/// <para>说明:</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-08 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="masterSql">主表SQL</param>
/// <param name="detailSql">明细表SQL</param>
/// <param name="detailTable">明细表名.</param>
/// <param name="billNo">单据号</param>
/// <param name="detailGuid">明细表GUID</param>
/// <param name="billSeq">生成单据号标识</param>
/// <param name="billWay">保存方式:1.新增.2.修改</param>
/// <param name="comfirm">确认标识:默认传0</param>
/// <param name="tipMsg">返回提示信息</param>
/// <returns>返回取值:1.保存成功,9.弹出询问窗口,点击是继续调用保存.其他返回值为保存失败.</returns>
/// <exception cref="System.NotImplementedException"></exception>
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;
}
/// <summary>
/// <para>说明:单据提交</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-13 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="typeCode">模块编号.</param>
/// <param name="billNo">单据号.</param>
/// <param name="hintMsg">重新提交时输入的提示信息.第一次调用传空</param>
/// <param name="comfirm">确认:默认传递1</param>
/// <param name="tipMsg">提示信息.</param>
/// <returns>System.Int32.</returns>
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<SqlParameter> list = new List<SqlParameter>
{
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 + "");
}
/// <summary>
/// <para>说明:删除单据条码</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-13 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
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);
}
/// <summary>
/// <para>说明:删除单据条码</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-13 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
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);
}
/// <summary>
/// <para>说明:创建单据条码</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-13 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
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);
}
/// <summary>
/// <para>说明:创建单据条码</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-13 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
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);
}
/// <summary>
/// <para>说明:初始化单据配置</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-11-27 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="masterTable">The master table.</param>
/// <param name="detailTable">The detail table.</param>
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)
{
}
}
/// <summary>
/// <para>说明:更新条码数据</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2018-04-28 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
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 + "");
}
}
/// <summary>
/// <para>说明:获取单据编号</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-11-27 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="billSeq">The bill seq.</param>
/// <returns>System.String.</returns>
/// <exception cref="System.NotImplementedException"></exception>
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;
}
/// <summary>
/// <para>说明:获取单据信息</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-11-27 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">The menu code.</param>
/// <returns>DataRow.</returns>
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; ;
}
/// <summary>
/// <para>说明:初始化单据明细列</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-11-27 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">The menu code.</param>
/// <returns>DataTable.</returns>
/// <exception cref="System.NotImplementedException"></exception>
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);
}
/// <summary>
/// <para>说明:初始化单据明细列</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-11-27 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">The menu code.</param>
/// <returns>DataTable.</returns>
/// <exception cref="System.NotImplementedException"></exception>
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);
}
/// <summary>
/// <para>说明:获取单据来源列</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-11-28 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="sourceId">The source identifier.</param>
/// <returns>DataTable.</returns>
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) });
}
/// <summary>
/// <para>说明:获取Brp模版</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2018-04-20 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">The menu code.</param>
/// <returns>DataTable.</returns>
/// <exception cref="System.NotImplementedException"></exception>
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) });
}
/// <summary>
/// <para>说明:获取单据明细模版列</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2018-04-23 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="brpId">The BRP identifier.</param>
/// <returns>DataTable.</returns>
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);
}
/// <summary>
/// <para>说明:获取单据来源</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-11-28 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">The menu code.</param>
/// <param name="sourceCond">The source cond.</param>
/// <returns>DataTable.</returns>
/// <exception cref="System.NotImplementedException"></exception>
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 = @"select * from p_systembillsource
where typeCode=@typeCode" + cond + @"
and isnull(isVisible,0)=0
order by orderid";
DataTable sourceTable = SqlHelper.ExecuteDataTable(sqlValue,
new SqlParameter[] { new SqlParameter("@typeCode", menuCode) });
sourceTable = BaseModuleImpl.FilterRowsByOperatorPrivilege(sourceTable, "viewOper");
htTable["master"] = sourceTable;
string sqlDetail = string.Format(@"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) {3} ", menuCode, ERPInfo.Instance.UserName, otherfield, conditions);
DataTable detailTable= SqlHelper.ExecuteDataTable(sqlDetail, new SqlParameter[] { new SqlParameter("@typeCode", menuCode) });
HashSet<string> sourceIds = new HashSet<string>(
sourceTable.Rows.Cast<DataRow>().Select(row => row["id"] + ""));
if (detailTable != null && detailTable.Rows.Count > 0)
{
DataTable allowedDetailTable = detailTable.Clone();
foreach (DataRow row in detailTable.Rows)
{
if (sourceIds.Contains(row["sourceId"] + "")) allowedDetailTable.ImportRow(row);
}
detailTable = allowedDetailTable;
}
// 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;
}
/// <summary>
/// <para>说明:根据模块Id获取单据明细(单据条码输入模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2018-04-28 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">模块编号</param>
/// <returns>DataTable.</returns>
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);
}
/// <summary>
/// <para>说明:获取单据明细信息</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2018-04-28 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="table">明细表名</param>
/// <param name="prefix">列前缀</param>
/// <param name="billDocumentId">单据编号.</param>
/// <param name="detailId">明细Id</param>
/// <returns>DataTable.</returns>
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);
}
/// <summary>
/// <para>说明:获取商品明细信息</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2018-04-28 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="productId">The product identifier.</param>
/// <returns>DataTable.</returns>
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;
}
/// <summary>
/// <para>说明:设置条码表格列</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2018-04-28 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
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);
}
/// <summary>
/// <para>说明:设置条码表格列</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2018-05-02 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
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);
}
/// <summary>
/// <para>说明:获取录入条码数据</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2018-04-28 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">模块编号</param>
/// <param name="billDocumentId">单据编号.</param>
/// <param name="detailId">明细Id.</param>
/// <returns>DataTable.</returns>
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);
}
/// <summary>
/// <para>说明:获取录入条码数据</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2018-04-28 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">模块编号</param>
/// <param name="billDocumentId">单据编号.</param>
/// <param name="detailId">明细Id.</param>
/// <returns>DataTable.</returns>
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);
}
/// <summary>
/// <para>说明:单据-存储过程</para>
/// <para>创建人:曹屹峰</para>
/// <para>创建日期:2021-8-23 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
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;
}
/// <summary>
/// <para>说明:单据审核存储过程</para>
/// <para>创建人:曹屹峰</para>
/// <para>创建日期:2021-8-23 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
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;
}
/// <summary>
/// <para>说明:单据审核存储过程</para>
/// <para>创建人:曹屹峰</para>
/// <para>创建日期:2021-8-23 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
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;
}
}
}