?? deletecheck.cs
字號:
using System;
using System.Data;
using System.Data.SqlClient;
using com.unicafe.common;
using com.unicafe.workflow;
using System.Collections;
namespace com.ascs.plp.publics
{
/// <summary>
/// DeleteCheck 的摘要說明。
/// </summary>
public class DeleteCheck
{
public DeleteCheck()
{
//
// TODO: 在此處添加構造函數邏輯
//
}
/// **************************************************************************
/// BEIGIN
/// <summary>
/// 庫房刪除檢查:當返回true時,才能執行刪除動作
/// 1、庫存臺帳表中沒有對應的庫房信息檢測 2、調撥申請中未完成單據的庫房檢測
/// </summary>
/// /// <param name="SqlConnection">SqlConnection cn對象</param>
/// <param name="KFDM">庫房代碼</param>
/// <returns>bool</returns>
/// **************************************************************************
public static bool KFDelCheck(SqlConnection cn,string KFDM)
{
if(KFDM==null || KFDM.Length<1)
return true;
try
{
string sql = "select count(*) from kctzb where ckdm='" + KFDM + "'";
SqlCommand cmd = new SqlCommand(sql, cn);
int iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum==0)
{
sql = "Select count(*) From DBD Where ZT in ('0','2','3') and (DRK='"+KFDM+"' OR DCK='"+KFDM+"')";
cmd = new SqlCommand(sql, cn);
iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum==0)
return true;
else
return false;
}
else
return false;
}
catch(Exception e)
{
LogService.Write ("com.ascs.plp.publics.DeleteCheck: KFDelCheck(string KFDM)");
LogService.Write (e.Message);
return false;
}
}
/// **************************************************************************
/// END
/// **************************************************************************
/// **************************************************************************
/// BEIGIN
/// <summary>
/// 機構刪除檢查:當返回true時,才能執行刪除動作
/// 該機構下所有的部門為不可用狀態
/// </summary>
/// /// <param name="SqlConnection">SqlConnection cn對象</param>
/// <param name="JGDM">機構代碼</param>
/// <returns>bool</returns>
/// **************************************************************************
public static bool JGDelCheck(SqlConnection cn,string JGDM)
{
if(JGDM==null || JGDM.Length<1)
return true;
try
{
string sql = "select COUNT(*) from DEPARTMENTS WHERE JGDM='" + JGDM + "'";
SqlCommand cmd = new SqlCommand(sql, cn);
int iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum==0)
return true;
else
return false;
}
catch(Exception e)
{
LogService.Write ("com.ascs.plp.publics.DeleteCheck: JGDelCheck(SqlConnection cn,string JGDM)");
LogService.Write (e.Message);
return false;
}
}
/// **************************************************************************
/// END
/// **************************************************************************
/// **************************************************************************
/// BEIGIN
/// <summary>
/// 部門刪除檢查: 當返回true時,才能執行刪除動作
/// 需要對應的下屬人員都已經為不可用的狀態
/// </summary>
/// /// <param name="SqlConnection">SqlConnection cn對象</param>
/// <param name="DEPTID">部門代碼</param>
/// <returns>bool</returns>
/// **************************************************************************
public static bool DEPTDelCheck(SqlConnection cn,string DEPTID)
{
if(DEPTID==null || DEPTID.Length<1)
return true;
try
{
string sql = "select COUNT(B.DEPTID) from EMPLOYEES A,EMPLDEPT B WHERE A.EMPLENABLED='1' AND A.EMPLID=B.EMPLID AND B.DEPTID='" + DEPTID + "'";
SqlCommand cmd = new SqlCommand(sql, cn);
int iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum==0)
return true;
else
return false;
}
catch(Exception e)
{
LogService.Write ("com.ascs.plp.publics.DeleteCheck: DEPTDelCheck(SqlConnection cn,string DEPTID)");
LogService.Write (e.Message);
return false;
}
}
/// **************************************************************************
/// END
/// **************************************************************************
/// **************************************************************************
/// BEIGIN
/// <summary>
/// 人員刪除檢查: 當返回true時,才能執行刪除動作
/// 1客戶信息中的銷售員身份檢查
/// 2銷售員信息表的檢查
/// 3未完成銷售訂單中銷售員、
/// 4未完成銷售訂單細目的 庫存保管員的記錄數檢查
/// 5未處理的采購申請中申請人的記錄數檢查
/// 6未審核的采購訂單中采購員的記錄數檢查
/// 7未完成的采購收貨單中對應信息的檢測:收貨單細目表庫存保管員
/// 8未完成的采購退貨中負責人的檢測
/// 9庫房負責人的檢測
/// 10外部庫房負責人的檢測
/// 11出入庫單細目中未處理的單據中負責人的檢測
/// 12未完成的庫存調撥中審核人的檢測
/// 13討論區類別中版主的檢測
/// </summary>
/// /// <param name="SqlConnection">SqlConnection cn對象</param>
/// <param name="EmplID">人員代碼</param>
/// <returns>bool</returns>
/// **************************************************************************
public static bool EMPLDelCheck(SqlConnection cn,string EmplID)
{
bool bReturn=true;
if(EmplID==null || EmplID.Length<1)
return true;
try
{
SqlCommand cmd = cn.CreateCommand();
//1客戶信息中的銷售員身份檢查
string sql = "select count(*) from khxx where xsy=@emplID";
cmd.CommandText = sql;
cmd.Parameters.Add("@emplID",EmplID);
int iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum>0)
bReturn=false;
//2銷售員信息表的檢查
if(bReturn)
{
sql = "select count(*) from xsy where xsydm=@emplID";
cmd.CommandText = sql;
iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum>0)
return false;
}
//3未完成銷售訂單中銷售員、
if(bReturn)
{
sql = "select count(*) from xsdd where XSDDZT<>'7' and XSYDM=@emplID";
cmd.CommandText = sql;
iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum>0)
return false;
}
//4未完成銷售訂單細目的 庫存保管員的記錄數檢查
if(bReturn)
{
sql = "select count(*) from xsdd a,xsddxm b where a.XSDDZT<>'7' and a.xsddh=b.xsddh and b.CKBGY=@emplID";
cmd.CommandText = sql;
iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum>0)
return false;
}
//5未處理的采購申請中申請人的記錄數檢查
if(bReturn)
{
sql = "select count(*) from cgsqd where SQRDM=@emplID";
cmd.CommandText = sql;
iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum>0)
return false;
}
//6未審核的采購訂單中采購員的記錄數檢查
if(bReturn)
{
sql = "select count(*) from cgsqd where SHBJ<>'2' and SQRDM=@emplID";
cmd.CommandText = sql;
iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum>0)
return false;
}
//7未完成的采購收貨單中對應信息的檢測:收貨單細目表庫存保管員
if(bReturn)
{
sql = "select count(*) from SHDB a,shdxmb b where a.shdbid=b.shdbid and a.RKFLAG='0' and b.KCBGY=@emplID";
cmd.CommandText = sql;
iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum>0)
return false;
}
//8未完成的采購退貨中負責人的檢測
if(bReturn)
{
sql = "select COUNT(*) from cgthd where CKBJ='0' and FZR=@emplID";
cmd.CommandText = sql;
iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum>0)
return false;
}
/// 9庫房負責人的檢測
if(bReturn)
{
sql = "select count(*) from ckb where fzr=@emplID";
cmd.CommandText = sql;
iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum>0)
return false;
}
///10外部庫房負責人的檢測
if(bReturn)
{
sql = "select count(*) from wbkf where fzr=@emplID";
cmd.CommandText = sql;
iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum>0)
return false;
}
/// 11出入庫單細目中未處理的單據中負責人的檢測
if(bReturn)
{
sql = "select count(*) from crkd a,crkdxm b where a.wcbz<>'1' and a.crkdh=b.crkdh and b.zrr=@emplID";
cmd.CommandText = sql;
iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum>0)
return false;
}
/// 12未完成的庫存調撥中審核人的檢測
/// 13討論區類別中版主的檢測
if(bReturn)
{
sql = "select count(*) from TLQLB where bz=@emplID";
cmd.CommandText = sql;
iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum>0)
return false;
}
return bReturn;
}
catch(Exception e)
{
LogService.Write ("com.ascs.plp.publics.DeleteCheck: EMPLDelCheck(SqlConnection cn,string EmplID)");
LogService.Write (e.Message);
return false;
}
}
/// **************************************************************************
/// END
/// **************************************************************************
/// **************************************************************************
/// BEIGIN
/// <summary>
/// 機構類型刪除檢查:當返回true時,才能執行刪除動作
/// 機構信息表中沒有使用該機構類型的信息。
/// </summary>
/// /// <param name="SqlConnection">SqlConnection cn對象</param>
/// <param name="JGDM">機構類型</param>
/// <returns>bool</returns>
/// **************************************************************************
public static bool JGLXDelCheck(SqlConnection cn,string JGLX)
{
if(JGLX==null || JGLX.Length<1)
return true;
try
{
string sql = "select COUNT(*) from JGXX WHERE JGLXDM='" + JGLX + "'";
SqlCommand cmd = new SqlCommand(sql, cn);
int iGetNum = Convert.ToInt16(cmd.ExecuteScalar().ToString());
if(iGetNum==0)
return true;
else
return false;
}
catch(Exception e)
{
LogService.Write ("com.ascs.plp.publics.DeleteCheck: DelCheck(SqlConnection cn,string JGLXDM)");
LogService.Write (e.Message);
return false;
}
}
/// **************************************************************************
/// END
/// **************************************************************************
/// **************************************************************************
/// BEIGIN
/// <summary>
/// 角色刪除檢查:當返回true時,才能執行刪除動作
/// 即當流程模板中沒有使用該角色時,才能刪除。
/// </summary>
/// <param name="roleid">角色ID</param>
/// <returns>bool</returns>
/// **************************************************************************
public static bool RolesDelCheck(int roleid)
{
bool bRetrun=true;
try
{
WorkflowMgr wMgr = new WorkflowMgr();
ArrayList templateList = wMgr.ListTemplates();
for(int i=0;i<templateList.Count;i++)
{
Message t_msg = (Message)templateList[i];
if (t_msg==null)
continue;
ArrayList nodeList = (ArrayList)wMgr.FindNodes(t_msg.MessageID);
if (nodeList!=null && nodeList.Count>0)
{
for(int j=0;j<nodeList.Count;j++)
{
Node t_node = (Node)nodeList[j];
if (t_node==null)
continue;
if(handlerAddressParser(t_node.HandlerAddress,roleid))
{
bRetrun = false;
break;
}
}
}
}
}
catch(Exception e)
{
LogService.WriteLog("com.ascs.plp.publics.DeleteCheck: RolesDelCheck(int roleid)");
LogService.WriteLog(e.Message);
return false;
}
return bRetrun;
}
public static bool handlerAddressParser(string Address,int roleid)
{
try
{
if (Address == "")
{
return false;
}
// 是否申請者
if (Address == "appl" || Address == "申請人")
return false;
// 取得操作者字符串中的冒號位置
int n = Address.IndexOf(":");
string p = "";
string v = "";
if (n > 0)
{
// 取得冒號前面的協議
p = Address.Substring(0,n);
// 取得冒號后面的值
v = Address.Substring(n+1);
}
else
{
// 如果沒有冒號,使用默認協議,即該字符串表示本系統中的用戶
p = "user";
v = Address;
}
string [] param;
switch (p)
{
case "user": // 操作者指向用戶名
return false;
case "group": // 操作者指向組
return false;
case "pos": // 操作者指向部門、職位或角色,格式 pos:[部門],[角色],[職位]
param = v.Split(',');
string DeptID = param[0];
int RoleID = int.Parse(param[1]);
int PosID = int.Parse(param[2]);
if (RoleID==roleid)
return true;
else
return false;
}
return false;
}
catch(Exception e)
{
LogService.WriteLog("handlerAddressParser:");
LogService.WriteLog(e.Message);
return false;
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -