using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using System.Data;
|
using SQLHelper;
|
|
namespace DBUtility
|
{
|
public class ClsXt_CheckFlowMain
|
{
|
public Int64 HInterID;
|
public string HName;
|
public string HBillTypeID;
|
public Int64 HDeptID;
|
public bool HStandard;
|
public string HRemark;
|
private string mvarItemKey;
|
public List<ClsXt_CheckFlowSub> DetailColl = new List<ClsXt_CheckFlowSub>();
|
ClsCN oCn = new ClsCN();
|
|
public ClsXt_CheckFlowMain()
|
{
|
mvarItemKey = "8803";
|
mvarReportTitle = "审批流单";
|
}
|
|
#region 固定代码
|
public string MvarItemKey
|
{
|
get { return mvarItemKey; }
|
set { mvarItemKey = value; }
|
}
|
private string mvarReportTitle;
|
|
public string MvarReportTitle
|
{
|
get { return mvarReportTitle; }
|
set { mvarReportTitle = value; }
|
}
|
|
~ClsXt_CheckFlowMain()
|
{
|
DetailColl = null;
|
}
|
|
//删除子表
|
public void DeleteBillSub(Int64 lngBillKey)
|
{
|
oCn.RunProc("Delete From Xt_CheckFlowSub where HInterID=" + lngBillKey.ToString());
|
}
|
//删除主表
|
public void DeleteBillMain(Int64 lngBillKey)
|
{
|
oCn.RunProc("Delete From Xt_CheckFlowMain where HInterID=" + lngBillKey.ToString());
|
}
|
//删除单据
|
public bool DeleteBill(Int64 lngBillKey, ref string sReturn)
|
{
|
try
|
{
|
oCn.BeginTran();
|
//删除关联
|
DeleteRelation(ref sReturn, lngBillKey);
|
//删除明细表
|
DeleteBillSub(lngBillKey);
|
//删除主表
|
DeleteBillMain(lngBillKey);
|
sReturn = "删除单据成功!";
|
oCn.Commit();
|
return true;
|
}
|
catch (Exception e)
|
{
|
sReturn = e.Message;
|
oCn.RollBack();
|
return false;
|
}
|
}
|
//是否被关联
|
public bool isUse(Int64 lngBillKey, ref string sReturn)
|
{
|
try
|
{
|
//查询主表
|
DataSet Ds ;
|
Ds = oCn.RunProcReturn("Select HinterID from Xt_CheckFlowSub Where HInterID=" + lngBillKey.ToString() + " and isnull(HRelationQty,0)<>0 ", "Xt_CheckFlowMain");
|
if (Ds.Tables[0].Rows.Count != 0)
|
{
|
sReturn = "单据已被关联,不能操作!";
|
return true;
|
}
|
sReturn = "";
|
return false;
|
}
|
catch (Exception e)
|
{
|
sReturn = e.Message;
|
return false;
|
}
|
}
|
//读取下张单据
|
|
//读取首张单据
|
public bool GetFirstBill(ref string sReturn)
|
{
|
try
|
{
|
//查询主表
|
Int64 lMainID = 0;
|
DataSet Ds ;
|
Ds = oCn.RunProcReturn("Select Top 1 HinterID from Xt_CheckFlowMain Where HBillType='" + this.MvarItemKey + "' Order By HInterID ", "Xt_CheckFlowMain");
|
if (Ds.Tables[0].Rows.Count != 0)
|
{
|
lMainID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString());
|
if (lMainID != 0)
|
{
|
if (ShowBill(lMainID, ref sReturn))
|
{
|
sReturn = "查询首张单据成功";
|
return true;
|
}
|
}
|
}
|
sReturn = "查询首张单据失败";
|
return false;
|
}
|
catch (Exception e)
|
{
|
sReturn = e.Message;
|
return false;
|
}
|
}
|
//读取末张单据
|
public bool GetLastBill(ref string sReturn)
|
{
|
try
|
{
|
//查询主表
|
Int64 lMainID = 0;
|
DataSet Ds ;
|
Ds = oCn.RunProcReturn("Select Top 1 HinterID from Xt_CheckFlowMain Where HBillType='" + this.MvarItemKey + "' Order By HInterID Desc", "Xt_CheckFlowMain");
|
if (Ds.Tables[0].Rows.Count != 0)
|
{
|
lMainID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString());
|
if (lMainID != 0)
|
{
|
if (ShowBill(lMainID, ref sReturn))
|
{
|
sReturn = "查询末张单据成功";
|
return true;
|
}
|
}
|
}
|
sReturn = "查询末张单据失败";
|
return false;
|
}
|
catch (Exception e)
|
{
|
sReturn = e.Message;
|
return false;
|
}
|
}
|
//单据号是否重复
|
public bool IsExistBillNo(ref string sReturn, string sBillNo, Pub_Class.ClsPub.Enum_BillStatus oBillStatus, Int64 lngBillKey)
|
{
|
try
|
{
|
string sSql = "";
|
if (oBillStatus == Pub_Class.ClsPub.Enum_BillStatus.BillStatus_AddNew)
|
{
|
sSql = "Select HInterID from Xt_CheckFlowMain where hbilltype='" + MvarItemKey + "'and HBillNO ='" + sBillNo + "'";
|
}
|
else
|
{
|
sSql = "Select HInterID from Xt_CheckFlowMain where hbilltype='" + MvarItemKey + "'and HBillNO ='" + sBillNo + "' and HInterID<>" + lngBillKey.ToString();
|
}
|
DataSet Ds ;
|
Ds = oCn.RunProcReturn(sSql, "Xt_CheckFlowMain");
|
if (Ds.Tables[0].Rows.Count != 0)
|
{
|
sReturn = "单号重复";
|
return true;
|
}
|
sReturn = "单号未重复";
|
return false;
|
}
|
catch (Exception e)
|
{
|
sReturn = e.Message;
|
return false;
|
}
|
}
|
#endregion
|
//修改单据
|
public bool ModifyBill(Int64 lngBillKey, ref string sReturn)
|
{
|
try
|
{
|
//
|
oCn.BeginTran();
|
//更新主表
|
oCn.RunProc("UpDate Xt_CheckFlowMain set " +
|
"HRemark='" + this.HRemark + "'" +
|
",HName='" + this.HName + "'" +
|
",HDeptID=" + this.HDeptID.ToString() +
|
",HBillTypeID='" + this.HBillTypeID + "'" +
|
",HStandard='" +ClsPub.BoolToString(this.HStandard) + "'" +
|
" where HInterID=" + lngBillKey.ToString());
|
//删除关联
|
DeleteRelation(ref sReturn, lngBillKey);
|
//删除子表
|
DeleteBillSub(lngBillKey);
|
//插入子表
|
foreach(ClsXt_CheckFlowSub oSub in DetailColl)
|
{
|
oCn.RunProc("Insert into Xt_CheckFlowSub " +
|
" (HInterID,HEntryID,HCheckMan" +
|
",HFlowNo,HJumpFlag,HMakerSelf,HCheckItemID" +
|
" )values("
|
+ lngBillKey.ToString() + "," + oSub.HEntryID.ToString() +",'"+oSub.HCheckMan+"'"+
|
"," + oSub.HFlowNo + "," + Convert.ToString(oSub.HJumpFlag ? 1 : 0) + "," + Convert.ToString(oSub.HMakerSelf ? 1 : 0) + "," + oSub.HCheckItemID + "" + ") ");
|
}
|
sReturn = "修改单据成功!";
|
oCn.Commit();
|
return true;
|
}
|
catch (Exception e)
|
{
|
sReturn = e.Message;
|
oCn.RollBack();
|
return false;
|
}
|
}
|
//新增单据
|
public bool AddBill( ref string sReturn)
|
{
|
try
|
{
|
//得到mainid
|
this.HInterID = ClsPub.CreateBillID(MvarItemKey, ref ClsPub.sExeReturnInfo);
|
//若MAINDI重复则重新获取
|
oCn.BeginTran();
|
//主表
|
oCn.RunProc("Insert Into Xt_CheckFlowMain " +
|
"(HBillTypeID,HInterID,HDeptID" +
|
",HRemark,HStandard,HName" +
|
") " +
|
" values('" + this.HBillTypeID.ToString() + "'," + this.HInterID.ToString() + "," + this.HDeptID.ToString() +
|
",'" + this.HRemark + "'," + Convert.ToString(this.HStandard ? 1 : 0) + ",'" + this.HName.ToString() +
|
"') ");
|
//插入子表
|
foreach (ClsXt_CheckFlowSub oSub in DetailColl)
|
{
|
oCn.RunProc("Insert into Xt_CheckFlowSub " +
|
" (HInterID,HEntryID,HCheckMan" +
|
",HFlowNo,HJumpFlag,HMakerSelf,HCheckItemID" +
|
" )values("
|
+ this.HInterID.ToString() + "," + oSub.HEntryID.ToString() + ",'" + oSub.HCheckMan + "'" +
|
"," + oSub.HFlowNo + "," + Convert.ToString(oSub.HJumpFlag ? 1 : 0) + "," + Convert.ToString(oSub.HMakerSelf ? 1 : 0) + "," + oSub.HCheckItemID + "" + ") ");
|
}
|
sReturn = "新增单据成功!";
|
oCn.Commit();
|
return true;
|
}
|
catch (Exception e)
|
{
|
sReturn = e.Message;
|
oCn.RollBack();
|
return false;
|
}
|
}
|
//显示单据
|
public bool ShowBill(Int64 lngBillKey, ref string sReturn)
|
{
|
try
|
{
|
//查询主表
|
DataSet Ds ;
|
Ds = oCn.RunProcReturn("Select * from Xt_CheckFlowMain Where HInterID=" + lngBillKey.ToString(), "Xt_CheckFlowMain");
|
if(Ds.Tables[0].Rows.Count==0)
|
{
|
sReturn = "单据未找到!";
|
return false;
|
}
|
//赋值
|
this.HInterID =ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString());
|
this.HName = Ds.Tables[0].Rows[0]["HName"].ToString().Trim();
|
this.HBillTypeID =ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillTypeID"].ToString().Trim());
|
this.HStandard = ClsPub.isBool(Ds.Tables[0].Rows[0]["HStandard"]);
|
this.HRemark = Ds.Tables[0].Rows[0]["HRemark"].ToString().Trim();
|
this.HDeptID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HDeptID"].ToString());
|
//
|
//循环
|
DataSet DsSub ;
|
DsSub = oCn.RunProcReturn("Select * from Xt_CheckFlowSub Where HInterID=" + lngBillKey.ToString(), "Xt_CheckFlowMain");
|
DetailColl.Clear();//清空
|
for (int i = 0; i < DsSub.Tables[0].Rows.Count; i++)
|
{
|
ClsXt_CheckFlowSub oSub = new ClsXt_CheckFlowSub();
|
oSub.HInterID =ClsPub.isLong( DsSub.Tables[0].Rows[i]["HInterID"].ToString());
|
oSub.HEntryID = ClsPub.isLong(DsSub.Tables[0].Rows[i]["HEntryID"].ToString());
|
oSub.HFlowNo = ClsPub.isInt(DsSub.Tables[0].Rows[i]["HFlowNo"].ToString());
|
oSub.HCheckItemID = ClsPub.isLong(DsSub.Tables[0].Rows[i]["HCheckItemID"].ToString());
|
oSub.HJumpFlag = ClsPub.isBool(DsSub.Tables[0].Rows[i]["HJumpFlag"].ToString());
|
oSub.HMakerSelf = ClsPub.isBool(DsSub.Tables[0].Rows[i]["HMakerSelf"].ToString());
|
oSub.HCheckMan = DsSub.Tables[0].Rows[i]["HCheckMan"].ToString();
|
|
DetailColl.Add(oSub);
|
}
|
sReturn = "显示单据成功!";
|
return true;
|
}
|
catch (Exception e)
|
{
|
sReturn = e.Message;
|
return false;
|
}
|
}
|
|
//MAINID是否重复
|
public bool IsExistMainID(ref string sReturn, Int64 lngBillKey)
|
{
|
sReturn = "";
|
return false;
|
}
|
//删除关联
|
public void DeleteRelation(ref string sReturn, Int64 lngBillKey)
|
{
|
sReturn = "";
|
return;
|
}
|
}
|
|
}
|