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.
DS7/DSWeb/EntityDA/CwVouchersDA.cs

813 lines
47 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.Text;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Data;
using DSWeb.Models;
using DSWeb.DataAccess;
namespace DSWeb.EntityDA
{
public class CwVouchersDA
{
/// <summary>
/// 增加一条数据
/// </summary>
public int Add(CwVouchersEntity model)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into cw_vouchers(");
strSql.Append("ORDNO,FCY,QTY,VOUPROP,PREPARED,CHECKED,ENTERED,ERRMSG,ISDELETE,VOUNO,VKNO,{0}ACCYEAR,ACCMONTH,ATTACHS,AMTDR,AMTCR,VOUALLNO");//,DELETEUSER,DELETETIME
strSql.Append(") values (");
strSql.Append("@ORDNO,@FCY,@QTY,@VOUPROP,@PREPARED,@CHECKED,@ENTERED,@ERRMSG,@ISDELETE,@VOUNO,@VKNO,{1}@ACCYEAR,@ACCMONTH,@ATTACHS,@AMTDR,@AMTCR,@VOUALLNO");//,@DELETEUSER,@DELETETIME
strSql.Append(") ");
SqlParameter[] parameters = {
new SqlParameter("@ORDNO", SqlDbType.VarChar,36) ,
new SqlParameter("@FCY", SqlDbType.VarChar,1) ,
new SqlParameter("@QTY", SqlDbType.VarChar,1) ,
new SqlParameter("@VOUPROP", SqlDbType.VarChar,1) ,
new SqlParameter("@PREPARED", SqlDbType.VarChar,10) ,
new SqlParameter("@CHECKED", SqlDbType.VarChar,10) ,
new SqlParameter("@ENTERED", SqlDbType.VarChar,10) ,
new SqlParameter("@ERRMSG", SqlDbType.VarChar,6) ,
new SqlParameter("@ISDELETE", SqlDbType.Bit,1) ,
//new SqlParameter("@DELETEUSER", SqlDbType.VarChar,36) ,
//new SqlParameter("@DELETETIME", SqlDbType.DateTime) ,
new SqlParameter("@VOUNO", SqlDbType.VarChar,16) ,
new SqlParameter("@VKNO", SqlDbType.VarChar,8) ,
//new SqlParameter("@VOUDATE", SqlDbType.DateTime) ,
new SqlParameter("@ACCYEAR", SqlDbType.VarChar,4) ,
new SqlParameter("@ACCMONTH", SqlDbType.VarChar,2) ,
new SqlParameter("@ATTACHS", SqlDbType.Int,4) ,
new SqlParameter("@AMTDR", SqlDbType.Decimal,9) ,
new SqlParameter("@AMTCR", SqlDbType.Decimal,9) ,
new SqlParameter("@VOUALLNO", SqlDbType.VarChar,16)
};
parameters[0].Value = model.ORDNO;
parameters[1].Value = model.FCY;
parameters[2].Value = model.QTY;
parameters[3].Value = model.VOUPROP;
parameters[4].Value = model.PREPARED;
parameters[5].Value = model.CHECKED;
parameters[6].Value = model.ENTERED;
parameters[7].Value = model.ERRMSG;
parameters[8].Value = model.ISDELETE;
//parameters[9].Value = model.DELETEUSER;
//parameters[10].Value = model.DELETETIME;
parameters[9].Value = model.VOUNO;
parameters[10].Value = model.VKNO;
//parameters[11].Value = model.VOUDATE;
parameters[11].Value = model.ACCYEAR;
parameters[12].Value = model.ACCMONTH;
parameters[13].Value = model.ATTACHS;
parameters[14].Value = model.AMTDR;
parameters[15].Value = model.AMTCR;
parameters[16].Value = model.VOUALLNO;
//
string strVOUDATE = model.VOUDATE.ToString().IndexOf("0001")>-1 ? "" : "'" + model.VOUDATE.ToString() + "',";
string strVOUDATE_name = strVOUDATE.Equals("") ? "" : "VOUDATE,";
string strSqlInsert = String.Format(strSql.ToString(), strVOUDATE_name, strVOUDATE);
//
int iResult = 0;
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
int existVal = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, strSqlInsert, parameters);
if (existVal > 0)
{
iResult = 1;
//
//string str0 = "insert into sys_log(NAME,LOGTYPE,LOGCONTENT,CREATEUSER) values('增加信息','增加操作','GID=" + model.GID.ToString() + "','" + model.MODIFIEDUSER.ToString() + "')";
//bool bl0 = SqlHelper.ExecuteSqlCommand(SqlHelper.ConnectionStringLocalTransaction, str0);
}
else
{
iResult = -1;//执行异常
}
}
return iResult;
}
/// <summary>
/// 更新一条数据
/// </summary>
public int Update(CwVouchersEntity model)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update cw_vouchers set ");
strSql.Append(" ORDNO = @ORDNO , ");
strSql.Append(" FCY = @FCY , ");
strSql.Append(" QTY = @QTY , ");
strSql.Append(" VOUPROP = @VOUPROP , ");
strSql.Append(" PREPARED = @PREPARED , ");
strSql.Append(" CHECKED = @CHECKED , ");
strSql.Append(" ENTERED = @ENTERED , ");
strSql.Append(" ERRMSG = @ERRMSG , ");
//strSql.Append(" ISDELETE = @ISDELETE , ");
//strSql.Append(" DELETEUSER = @DELETEUSER , ");
//strSql.Append(" DELETETIME = @DELETETIME , ");
strSql.Append(" VOUNO = @VOUNO , ");
strSql.Append(" VKNO = @VKNO , ");
strSql.Append(" {0}{1} ");
strSql.Append(" ACCYEAR = @ACCYEAR , ");
strSql.Append(" ACCMONTH = @ACCMONTH , ");
strSql.Append(" ATTACHS = @ATTACHS , ");
strSql.Append(" AMTDR = @AMTDR , ");
strSql.Append(" AMTCR = @AMTCR , ");
strSql.Append(" VOUALLNO = @VOUALLNO ");
strSql.Append(" where ORDNO=@ORDNO ");
SqlParameter[] parameters = {
new SqlParameter("@ORDNO", SqlDbType.VarChar,36) ,
new SqlParameter("@FCY", SqlDbType.VarChar,1) ,
new SqlParameter("@QTY", SqlDbType.VarChar,1) ,
new SqlParameter("@VOUPROP", SqlDbType.VarChar,1) ,
new SqlParameter("@PREPARED", SqlDbType.VarChar,10) ,
new SqlParameter("@CHECKED", SqlDbType.VarChar,10) ,
new SqlParameter("@ENTERED", SqlDbType.VarChar,10) ,
new SqlParameter("@ERRMSG", SqlDbType.VarChar,6) ,
//new SqlParameter("@ISDELETE", SqlDbType.Bit,1) ,
//new SqlParameter("@DELETEUSER", SqlDbType.VarChar,36) ,
//new SqlParameter("@DELETETIME", SqlDbType.DateTime) ,
new SqlParameter("@VOUNO", SqlDbType.VarChar,16) ,
new SqlParameter("@VKNO", SqlDbType.VarChar,8) ,
//new SqlParameter("@VOUDATE", SqlDbType.DateTime) ,
new SqlParameter("@ACCYEAR", SqlDbType.VarChar,4) ,
new SqlParameter("@ACCMONTH", SqlDbType.VarChar,2) ,
new SqlParameter("@ATTACHS", SqlDbType.Int,4) ,
new SqlParameter("@AMTDR", SqlDbType.Decimal,9) ,
new SqlParameter("@AMTCR", SqlDbType.Decimal,9) ,
new SqlParameter("@VOUALLNO", SqlDbType.VarChar,16)
};
parameters[0].Value = model.ORDNO;
parameters[1].Value = model.FCY;
parameters[2].Value = model.QTY;
parameters[3].Value = model.VOUPROP;
parameters[4].Value = model.PREPARED;
parameters[5].Value = model.CHECKED;
parameters[6].Value = model.ENTERED;
parameters[7].Value = model.ERRMSG;
//parameters[8].Value = model.ISDELETE;
//parameters[9].Value = model.DELETEUSER;
//parameters[10].Value = model.DELETETIME;
parameters[8].Value = model.VOUNO;
parameters[9].Value = model.VKNO;
//parameters[10].Value = model.VOUDATE;
parameters[10].Value = model.ACCYEAR;
parameters[11].Value = model.ACCMONTH;
parameters[12].Value = model.ATTACHS;
parameters[13].Value = model.AMTDR;
parameters[14].Value = model.AMTCR;
parameters[15].Value = model.VOUALLNO;
//
string strVOUDATE = model.VOUDATE.ToString().IndexOf("0001")>-1 ? "null," : "'" + model.VOUDATE.ToString() + "',";
string strVOUDATE_name = "VOUDATE=";
string strSqlUpdate = String.Format(strSql.ToString(), strVOUDATE_name, strVOUDATE);
//
int iResult = 0;
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
int existVal = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, strSqlUpdate, parameters);
if (existVal > 0)
{
iResult = 1;
//
//string str0 = "insert into sys_log(NAME,LOGTYPE,LOGCONTENT,CREATEUSER) values('更新信息表','更新操作','GID=" + model.GID.ToString() + "','" + model.MODIFIEDUSER.ToString() + "')";
//bool bl0 = SqlHelper.ExecuteSqlCommand(SqlHelper.ConnectionStringLocalTransaction, str0);
}
else
{
iResult = -1;//执行异常
}
}
return iResult;
}
/// <summary>
/// 更新 金额
/// </summary>
public int UpdateAMT(CwVouchersEntity model)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update cw_vouchers set ");
strSql.Append(" AMTDR = @AMTDR , ");
strSql.Append(" AMTCR = @AMTCR ");
strSql.Append(" where ORDNO=@ORDNO ");
SqlParameter[] parameters = {
new SqlParameter("@ORDNO", SqlDbType.VarChar,36) ,
new SqlParameter("@AMTDR", SqlDbType.Decimal,9) ,
new SqlParameter("@AMTCR", SqlDbType.Decimal,9)
};
parameters[0].Value = model.ORDNO;
parameters[1].Value = model.AMTDR;
parameters[2].Value = model.AMTCR;
//
int iResult = 0;
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
int existVal = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, strSql.ToString(), parameters);
if (existVal > 0)
{
iResult = 1;
//
//string str0 = "insert into sys_log(NAME,LOGTYPE,LOGCONTENT,CREATEUSER) values('更新信息表','更新操作','GID=" + model.GID.ToString() + "','" + model.MODIFIEDUSER.ToString() + "')";
//bool bl0 = SqlHelper.ExecuteSqlCommand(SqlHelper.ConnectionStringLocalTransaction, str0);
}
else
{
iResult = -1;//执行异常
}
}
return iResult;
}
/// <summary>
/// 更新 凭证日期、制单人等数据
/// </summary>
public int UpdateOPDate(CwVouchersEntity model, string oldVOUALLNO)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update cw_vouchers set ");
strSql.Append(" VOUDATE = @VOUDATE , ");
strSql.Append(" VOUNO = @VOUNO , ");
strSql.Append(" ACCYEAR = @ACCYEAR , ");
strSql.Append(" ACCMONTH = @ACCMONTH , ");
strSql.Append(" VOUALLNO = @VOUALLNO , ");
strSql.Append(" PREPARED = @PREPARED ");
strSql.Append(" where ORDNO=@ORDNO ");
SqlParameter[] parameters = {
new SqlParameter("@ORDNO", SqlDbType.VarChar,36) ,
new SqlParameter("@VOUDATE", SqlDbType.DateTime) ,
new SqlParameter("@VOUNO", SqlDbType.VarChar,16) ,
new SqlParameter("@ACCYEAR", SqlDbType.VarChar,4) ,
new SqlParameter("@ACCMONTH", SqlDbType.VarChar,2) ,
new SqlParameter("@VOUALLNO", SqlDbType.VarChar,16) ,
new SqlParameter("@PREPARED", SqlDbType.VarChar,10)
};
parameters[0].Value = model.ORDNO;
parameters[1].Value = model.VOUDATE;
parameters[2].Value = model.VOUNO;
parameters[3].Value = model.ACCYEAR;
parameters[4].Value = model.ACCMONTH;
parameters[5].Value = model.VOUALLNO;
parameters[6].Value = model.PREPARED;
//
int iResult = 0;
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
int existVal = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, strSql.ToString(), parameters);
if (existVal > 0)
{
iResult = 1;
//
//更新业务表的凭证相关字段
string sSql = "update ch_fee_settlement set VOUNO='" + model.VOUALLNO + "' where 1=1 and VOUNO='" + oldVOUALLNO + "'";
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(conn, CommandType.Text, sSql, null);
//
//string str0 = "insert into sys_log(NAME,LOGTYPE,LOGCONTENT,CREATEUSER) values('更新信息表','更新操作','GID=" + model.GID.ToString() + "','" + model.MODIFIEDUSER.ToString() + "')";
//bool bl0 = SqlHelper.ExecuteSqlCommand(SqlHelper.ConnectionStringLocalTransaction, str0);
}
else
{
iResult = -1;//执行异常
}
}
return iResult;
}
/// <summary>
/// 删除一条数据
/// </summary>
public int Delete(string ORDNO)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("delete from cw_vouchers where ORDNO=@ORDNO ");
SqlParameter[] parameters = {
new SqlParameter("@ORDNO", SqlDbType.VarChar,36) };
parameters[0].Value = ORDNO;
//
int iResult = 0;
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, strSql.ToString(), parameters);
iResult = 1;//状态为1表示删除成功
sqlTran.Commit();
}
catch (Exception execError)
{
iResult = -1;//有异常,删除失败
sqlTran.Rollback();
iResult = -2;//插入异常,事务已回滚成功
throw execError;
}
finally
{
SqlHelper.CloseConnection();
}
}
return iResult;
}
/// <summary>
/// 得到一个对象实体
/// </summary>
public CwVouchersEntity GetModel(string ORDNO)
{
//初始化返回变量
CwVouchersEntity model = null;
StringBuilder strSql = new StringBuilder();
strSql.Append("select ORDNO,VOUNO,VKNO,VOUDATE,ACCYEAR,ACCMONTH,ATTACHS,AMTDR,AMTCR,FCY,QTY,VOUPROP,PREPARED,CHECKED,ENTERED,ERRMSG,ISDELETE,DELETEUSER,DELETETIME,VOUALLNO from cw_vouchers ");
strSql.Append(" where ORDNO=@ORDNO ");
SqlParameter[] parameters = {
new SqlParameter("@ORDNO", SqlDbType.VarChar,36) };
parameters[0].Value = ORDNO;
//
using (SqlDataReader sqlRead = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, strSql.ToString(), parameters))
{
try
{
model = new CwVouchersEntity();
//读取字段值
while (sqlRead.Read())
{
if (!sqlRead.IsDBNull(0)) { model.ORDNO = sqlRead.GetString(0); } // 唯一编码 newid()
if (!sqlRead.IsDBNull(1)) { model.VOUNO = sqlRead.GetString(1); } // 月初清零
if (!sqlRead.IsDBNull(2)) { model.VKNO = sqlRead.GetString(2); } // 凭证字
if (!sqlRead.IsDBNull(3)) { model.VOUDATE = sqlRead.GetDateTime(3); } // 凭证日期
if (!sqlRead.IsDBNull(4)) { model.ACCYEAR = sqlRead.GetString(4); } // 年
if (!sqlRead.IsDBNull(5)) { model.ACCMONTH = sqlRead.GetString(5); } // 月
if (!sqlRead.IsDBNull(6)) { model.ATTACHS = sqlRead.GetInt32(6); } // 附件(单据)数
if (!sqlRead.IsDBNull(7)) { model.AMTDR = sqlRead.GetDecimal(7); } // 本位币借方
if (!sqlRead.IsDBNull(8)) { model.AMTCR = sqlRead.GetDecimal(8); } // 本位币贷方
if (!sqlRead.IsDBNull(9)) { model.FCY = sqlRead.GetString(9); } // 是否含有外币科目
if (!sqlRead.IsDBNull(10)) { model.QTY = sqlRead.GetString(10); } // 是否含有数量科目
if (!sqlRead.IsDBNull(11)) { model.VOUPROP = sqlRead.GetString(11); } // 凭证属性
if (!sqlRead.IsDBNull(12)) { model.PREPARED = sqlRead.GetString(12); } // 制单人
if (!sqlRead.IsDBNull(13)) { model.CHECKED = sqlRead.GetString(13); } // 审核人
if (!sqlRead.IsDBNull(14)) { model.ENTERED = sqlRead.GetString(14); } // 记账人
if (!sqlRead.IsDBNull(15)) { model.ERRMSG = sqlRead.GetString(15); } // 错误信息
if (!sqlRead.IsDBNull(16)) { model.ISDELETE = sqlRead.GetBoolean(16); } // 是否废除
if (!sqlRead.IsDBNull(17)) { model.DELETEUSER = sqlRead.GetString(17); } // 废除操作人
if (!sqlRead.IsDBNull(18)) { model.DELETETIME = sqlRead.GetDateTime(18); } // 废除时间
if (!sqlRead.IsDBNull(19)) { model.VOUALLNO = sqlRead.GetString(19); } // 凭证号
}
}
catch (Exception exceError)
{
//抛出异常
throw exceError;
}
}
return model;
}
/// <summary>
/// 获得数据列表
/// </summary>
public DataSet GetList(string strWhere)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select * FROM cw_vouchers ");
if (strWhere.Trim() != "")
{
strSql.Append(" where " + strWhere);
}
//
DataSet DS = SqlHelper.OpenSqlDataSet(SqlHelper.ConnectionStringLocalTransaction, strSql.ToString());
try
{
if (DS.Tables[0].Rows.Count <= 0)
{
DS = null;
}
}
catch
{
DS = null;
}
return DS;
}
/// <summary>
/// 用事务执行保存流程
/// </summary>
/// <param name="CwVouchersEntity">一条主表信息</param>
/// <param name="CwVouitemsEntities">明细表列表</param>
/// <param name="strTable">业务表名例如op_seae</param>
/// <param name="strVOUNO">凭证号</param>
/// <param name="strSel">业务表更新条件</param>
/// <param name="strUserID">操作人</param>
/// <returns></returns>
public int setInsertAll(CwVouchersEntity CwVouchersEntity, IList<CwVouitemsEntity> CwVouitemsEntities, string strTable, string strVOUALLNO, string strSel, string strUserID, int iFeedo)
{
int iResult = 0;
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
//将明细插入表
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into cw_vouitems(");
strSql.Append("GID,AMTDR,AMTCR,ISFCY,FCYNO,FCYEXRATE,FCYDR,FCYCR,QTYUNIT,QTYDR,QTYCR,ORDNO,EXPLAN,ISDEPTACC,ISEMPLACC,ISCORPACC,ISITEMACC,DEPTID,EMPLID,CORPID,PITEMID,ITEMID,ITEMNO,FIELD10,FIELD9,FIELD8,FIELD7,FIELD6,FIELD5,FIELD4,FIELD3,FIELD2,FIELD1,ACCID,ISSYS,FSETTLCODE,FSETTLENO,MODIFIEDUSER,MODIFIEDTIME,PACCID,ACCNAME,PROPERTY,GRADE,DC,CUSTOMERNAME,SALE,BLNO");
strSql.Append(") values (");
strSql.Append("newid(),@AMTDR,@AMTCR,@ISFCY,@FCYNO,@FCYEXRATE,@FCYDR,@FCYCR,@QTYUNIT,@QTYDR,@QTYCR,@ORDNO,@EXPLAN,@ISDEPTACC,@ISEMPLACC,@ISCORPACC,@ISITEMACC,@DEPTID,@EMPLID,@CORPID,@PITEMID,@ITEMID,@ITEMNO,@FIELD10,@FIELD9,@FIELD8,@FIELD7,@FIELD6,@FIELD5,@FIELD4,@FIELD3,@FIELD2,@FIELD1,@ACCID,@ISSYS,@FSETTLCODE,@FSETTLENO,@MODIFIEDUSER,getdate(),@PACCID,@ACCNAME,@PROPERTY,@GRADE,@DC,@CUSTOMERNAME,@SALE,@BLNO");
strSql.Append(") ");
#region 插入明细表
SqlParameter[] parameters = new SqlParameter[]{
new SqlParameter("@AMTDR", SqlDbType.Decimal,9) ,
new SqlParameter("@AMTCR", SqlDbType.Decimal,9) ,
new SqlParameter("@ISFCY", SqlDbType.Bit,1) ,
new SqlParameter("@FCYNO", SqlDbType.VarChar,8) ,
new SqlParameter("@FCYEXRATE", SqlDbType.Decimal,9) ,
new SqlParameter("@FCYDR", SqlDbType.Decimal,9) ,
new SqlParameter("@FCYCR", SqlDbType.Decimal,9) ,
new SqlParameter("@QTYUNIT", SqlDbType.VarChar,10) ,
new SqlParameter("@QTYDR", SqlDbType.Decimal,9) ,
new SqlParameter("@QTYCR", SqlDbType.Decimal,9) ,
new SqlParameter("@ORDNO", SqlDbType.VarChar,36) ,
new SqlParameter("@EXPLAN", SqlDbType.VarChar,60) ,
new SqlParameter("@ISDEPTACC", SqlDbType.Bit,1) ,
new SqlParameter("@ISEMPLACC", SqlDbType.Bit,1) ,
new SqlParameter("@ISCORPACC", SqlDbType.Bit,1) ,
new SqlParameter("@ISITEMACC", SqlDbType.Bit,1) ,
new SqlParameter("@DEPTID", SqlDbType.VarChar,18) ,
new SqlParameter("@EMPLID", SqlDbType.VarChar,18) ,
new SqlParameter("@CORPID", SqlDbType.VarChar,18) ,
new SqlParameter("@PITEMID", SqlDbType.Int,4) ,
new SqlParameter("@ITEMID", SqlDbType.VarChar,50) ,
new SqlParameter("@ITEMNO", SqlDbType.Int,4) ,
new SqlParameter("@FIELD10", SqlDbType.VarChar,50) ,
new SqlParameter("@FIELD9", SqlDbType.VarChar,50) ,
new SqlParameter("@FIELD8", SqlDbType.VarChar,50) ,
new SqlParameter("@FIELD7", SqlDbType.VarChar,50) ,
new SqlParameter("@FIELD6", SqlDbType.VarChar,50) ,
new SqlParameter("@FIELD5", SqlDbType.VarChar,50) ,
new SqlParameter("@FIELD4", SqlDbType.VarChar,50) ,
new SqlParameter("@FIELD3", SqlDbType.VarChar,50) ,
new SqlParameter("@FIELD2", SqlDbType.VarChar,50) ,
new SqlParameter("@FIELD1", SqlDbType.VarChar,50) ,
new SqlParameter("@ACCID", SqlDbType.VarChar,16) ,
new SqlParameter("@ISSYS", SqlDbType.Bit,1) ,
new SqlParameter("@FSETTLCODE", SqlDbType.VarChar,20) ,
new SqlParameter("@FSETTLENO", SqlDbType.VarChar,20) ,
new SqlParameter("@MODIFIEDUSER", SqlDbType.VarChar,36) ,
//new SqlParameter("@MODIFIEDTIME", SqlDbType.DateTime) ,
new SqlParameter("@PACCID", SqlDbType.VarChar,16) ,
new SqlParameter("@ACCNAME", SqlDbType.VarChar,60) ,
new SqlParameter("@PROPERTY", SqlDbType.Int,4) ,
new SqlParameter("@GRADE", SqlDbType.Int,4) ,
new SqlParameter("@DC", SqlDbType.VarChar,1),
new SqlParameter("@CUSTOMERNAME", SqlDbType.VarChar,20),
new SqlParameter("@SALE", SqlDbType.VarChar,10),
new SqlParameter("@BLNO", SqlDbType.VarChar,30)
};
#endregion
foreach (CwVouitemsEntity model in CwVouitemsEntities)
{
#region 插入明细表参数赋值
//parameters[0].Value = model.GID;
parameters[0].Value = model.AMTDR;
parameters[1].Value = model.AMTCR;
parameters[2].Value = model.ISFCY;
parameters[3].Value = model.FCYNO;
parameters[4].Value = model.FCYEXRATE;
parameters[5].Value = model.FCYDR;
parameters[6].Value = model.FCYCR;
parameters[7].Value = model.QTYUNIT;
parameters[8].Value = model.QTYDR;
parameters[9].Value = model.QTYCR;
parameters[10].Value = model.ORDNO;
parameters[11].Value = model.EXPLAN;
parameters[12].Value = model.ISDEPTACC;
parameters[13].Value = model.ISEMPLACC;
parameters[14].Value = model.ISCORPACC;
parameters[15].Value = model.ISITEMACC;
parameters[16].Value = model.DEPTID;
parameters[17].Value = model.EMPLID;
parameters[18].Value = model.CORPID;
parameters[19].Value = model.PITEMID;
parameters[20].Value = model.ITEMID;
parameters[21].Value = model.ITEMNO;
parameters[22].Value = model.FIELD10;
parameters[23].Value = model.FIELD9;
parameters[24].Value = model.FIELD8;
parameters[25].Value = model.FIELD7;
parameters[26].Value = model.FIELD6;
parameters[27].Value = model.FIELD5;
parameters[28].Value = model.FIELD4;
parameters[29].Value = model.FIELD3;
parameters[30].Value = model.FIELD2;
parameters[31].Value = model.FIELD1;
parameters[32].Value = model.ACCID;
parameters[33].Value = model.ISSYS;
parameters[34].Value = model.FSETTLCODE;
parameters[35].Value = model.FSETTLENO;
parameters[36].Value = model.MODIFIEDUSER;
//parameters[37].Value = model.MODIFIEDTIME;
parameters[37].Value = model.PACCID;
parameters[38].Value = model.ACCNAME;
parameters[39].Value = model.PROPERTY;
parameters[40].Value = model.GRADE;
parameters[41].Value = model.DC;
parameters[42].Value = model.CUSTOMERNAME;
parameters[43].Value = model.SALE;
parameters[44].Value = model.BLNO;
#endregion
iResult = -2;//插入明细表
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql.ToString(), parameters);
}
//插入主表
StringBuilder strSql1 = new StringBuilder();
strSql1.Append("insert into cw_vouchers(");
strSql1.Append("ORDNO,FCY,QTY,VOUPROP,PREPARED,CHECKED,ENTERED,ERRMSG,ISDELETE,VOUNO,VKNO,{0}ACCYEAR,ACCMONTH,ATTACHS,AMTDR,AMTCR,VOUALLNO");//,DELETEUSER,DELETETIME
strSql1.Append(") values (");
strSql1.Append("@ORDNO,@FCY,@QTY,@VOUPROP,@PREPARED,@CHECKED,@ENTERED,@ERRMSG,@ISDELETE,@VOUNO,@VKNO,{1}@ACCYEAR,@ACCMONTH,@ATTACHS,@AMTDR,@AMTCR,@VOUALLNO");//,@DELETEUSER,@DELETETIME
strSql1.Append(") ");
#region 插入主表
SqlParameter[] parameters1 = {
new SqlParameter("@ORDNO", SqlDbType.VarChar,36) ,
new SqlParameter("@FCY", SqlDbType.VarChar,1) ,
new SqlParameter("@QTY", SqlDbType.VarChar,1) ,
new SqlParameter("@VOUPROP", SqlDbType.VarChar,1) ,
new SqlParameter("@PREPARED", SqlDbType.VarChar,10) ,
new SqlParameter("@CHECKED", SqlDbType.VarChar,10) ,
new SqlParameter("@ENTERED", SqlDbType.VarChar,10) ,
new SqlParameter("@ERRMSG", SqlDbType.VarChar,6) ,
new SqlParameter("@ISDELETE", SqlDbType.Bit,1) ,
//new SqlParameter("@DELETEUSER", SqlDbType.VarChar,36) ,
//new SqlParameter("@DELETETIME", SqlDbType.DateTime) ,
new SqlParameter("@VOUNO", SqlDbType.VarChar,16) ,
new SqlParameter("@VKNO", SqlDbType.VarChar,8) ,
//new SqlParameter("@VOUDATE", SqlDbType.DateTime) ,
new SqlParameter("@ACCYEAR", SqlDbType.VarChar,4) ,
new SqlParameter("@ACCMONTH", SqlDbType.VarChar,2) ,
new SqlParameter("@ATTACHS", SqlDbType.Int,4) ,
new SqlParameter("@AMTDR", SqlDbType.Decimal,9) ,
new SqlParameter("@AMTCR", SqlDbType.Decimal,9) ,
new SqlParameter("@VOUALLNO", SqlDbType.VarChar,16)
};
#endregion
#region 插入主表参数赋值
parameters1[0].Value = CwVouchersEntity.ORDNO;
parameters1[1].Value = CwVouchersEntity.FCY;
parameters1[2].Value = CwVouchersEntity.QTY;
parameters1[3].Value = CwVouchersEntity.VOUPROP;
parameters1[4].Value = CwVouchersEntity.PREPARED;
parameters1[5].Value = CwVouchersEntity.CHECKED;
parameters1[6].Value = CwVouchersEntity.ENTERED;
parameters1[7].Value = CwVouchersEntity.ERRMSG;
parameters1[8].Value = CwVouchersEntity.ISDELETE;
//parameters1[9].Value = CwVouchersEntity.DELETEUSER;
//parameters1[10].Value = CwVouchersEntity.DELETETIME;
parameters1[9].Value = CwVouchersEntity.VOUNO;
parameters1[10].Value = CwVouchersEntity.VKNO;
//parameters1[11].Value = CwVouchersEntity.VOUDATE;
parameters1[11].Value = CwVouchersEntity.ACCYEAR;
parameters1[12].Value = CwVouchersEntity.ACCMONTH;
parameters1[13].Value = CwVouchersEntity.ATTACHS;
parameters1[14].Value = CwVouchersEntity.AMTDR;
parameters1[15].Value = CwVouchersEntity.AMTCR;
parameters1[16].Value = CwVouchersEntity.VOUALLNO;
#endregion
string strVOUDATE = CwVouchersEntity.VOUDATE.ToString().IndexOf("0001")>-1 ? "" : "'" + CwVouchersEntity.VOUDATE.ToString() + "',";
string strVOUDATE_name = strVOUDATE.Equals("") ? "" : "VOUDATE,";
string sSql1 = String.Format(strSql1.ToString(), strVOUDATE_name, strVOUDATE);
iResult = -3;//插入主表
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql1, parameters1);
if (iFeedo==3)
{
//更新业务表的凭证相关字段
string sSql = "update " + strTable + " set VOUCHERNO='" + strVOUALLNO + "' where 1=1 " + strSel;
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
}
else if (iFeedo==2)
{
//更新业务表的凭证相关字段
string sSql = "update " + strTable + " set VOUNO='" + strVOUALLNO + "' where 1=1 " + strSel;
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
}
else if (iFeedo == 1)
{
//更新业务表的凭证相关字段
if (strTable == "v_op_bill")
{
string sSql = "update op_amend set ISVOU=1,VOUNO='" + strVOUALLNO + "' where 1=1 " + strSel;
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "update op_seae set ISVOU=1,VOUNO='" + strVOUALLNO + "' where 1=1 " + strSel;
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "update op_seai set ISVOU=1,VOUNO='" + strVOUALLNO + "' where 1=1 " + strSel;
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "update op_aire set ISVOU=1,VOUNO='" + strVOUALLNO + "' where 1=1 " + strSel;
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "update op_airi set ISVOU=1,VOUNO='" + strVOUALLNO + "' where 1=1 " + strSel;
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "update op_other set ISVOU=1,VOUNO='" + strVOUALLNO + "' where 1=1 " + strSel;
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "update op_apply set ISVOU=1,VOUNO='" + strVOUALLNO + "' where 1=1 " + strSel;
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "update op_railway set ISVOU=1,VOUNO='" + strVOUALLNO + "' where 1=1 " + strSel;
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "update WMS set ISVOU=1,VOUNO='" + strVOUALLNO + "' where 1=1 " + strSel.Replace("bsno", "ASSOCIATEDNO");
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "update WMS_OUT set ISVOU=1,VOUNO='" + strVOUALLNO + "' where 1=1 " + strSel.Replace("bsno", "GID");
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "update WMS_IN set ISVOU=1,VOUNO='" + strVOUALLNO + "' where 1=1 " + strSel.Replace("bsno", "GID");
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
}
else
{
string sSql = "update " + strTable + " set ISVOU=1,VOUNO='" + strVOUALLNO + "' where 1=1 " + strSel;
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
}
}
//把从序号的漏号补号表中调用的凭证号设为删除状态
if (strVOUALLNO != "")
{
string sSql2 = "update [code_fill_serialno] set ISDELETE=1,DELETEUSER='" + strUserID + "',DELETETIME=getdate() where SERIALNO='" + strVOUALLNO + "'";
iResult = -5;//把从序号的漏号补号表中调用的凭证号设为删除状态
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql2, null);
}
//事务提交
sqlTran.Commit();
iResult = 1;//状态为1表示插入成功
}
catch (Exception execError)
{
iResult = -1;//有异常,插入失败
sqlTran.Rollback();
iResult = -2;//插入异常,事务已回滚成功
throw execError;
}
finally
{
SqlHelper.CloseConnection();
}
}
return iResult;
}
/// <summary>
/// 删除主表+明细表数据,用事务
/// </summary>
/// <param name="strGids">多个gid组成的字符串例如 111,222,333</param>
/// <returns></returns>
public int DeleteAll(string sGids, string strUserID)
{
int iResult = 0;
string strGids = "'" + sGids.Trim().Replace(",", "','") + "'";
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
#region 2018年2月13日14:31:00 鼎世 李进举
string chfeehexiaoDelSql = " update ch_fee_hexiao set vouno ='' where vouno IN (select VOUALLNO from cw_vouchers where ordno IN (" + strGids + "))";
iResult = -8;//更新ch_fee_hexiao
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, chfeehexiaoDelSql, null);
#endregion
//更新海运出口业务表的凭证相关字段
string sSql = "update op_seae set ISVOU=0,VOUNO='' where 1=1 and VOUNO in(select VOUALLNO from cw_vouchers where ORDNO in (" + strGids + "))";
iResult = -2;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
//更新更改单表的凭证相关字段
sSql = "update op_amend set ISVOU=0,VOUNO='' where 1=1 and VOUNO in(select VOUALLNO from cw_vouchers where ORDNO in (" + strGids + "))";
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
//更新更改单表的凭证相关字段
sSql = "update op_aire set ISVOU=0,VOUNO='' where 1=1 and VOUNO in(select VOUALLNO from cw_vouchers where ORDNO in (" + strGids + "))";
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
//更新更改单表的凭证相关字段
sSql = "update op_airi set ISVOU=0,VOUNO='' where 1=1 and VOUNO in(select VOUALLNO from cw_vouchers where ORDNO in (" + strGids + "))";
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
//更新海运进口业务表的凭证相关字段
sSql = "update op_seai set ISVOU=0,VOUNO='' where 1=1 and VOUNO in(select VOUALLNO from cw_vouchers where ORDNO in (" + strGids + "))";
iResult = -3;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
//更新海运进口业务表的凭证相关字段
sSql = "update op_other set ISVOU=0,VOUNO='' where 1=1 and VOUNO in (select VOUALLNO from cw_vouchers where ORDNO in (" + strGids + "))";
iResult = -3;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "update WMS set ISVOU=0,VOUNO='' where ASSOCIATEDNO in (" + strGids + ")";
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "update WMS_OUT set ISVOU=0,VOUNO='' where GID in (" + strGids + ")";
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "update WMS_IN set ISVOU=0,VOUNO='' where GID in (" + strGids + ")";
iResult = -4;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
//更新进口贸易业务表的凭证相关字段
sSql = "update ch_fee set ISVOU=0,VOUCHERNO='' where 1=1 and VOUCHERNO in (select VOUALLNO from cw_vouchers where ORDNO in (" + strGids + "))";
iResult = -8;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
//更新管理费用表的凭证相关字段
sSql = "update ch_fee_management set ISVOU=0,VOUCHERNO='' where 1=1 and VOUCHERNO in (select VOUALLNO from cw_vouchers where ORDNO in (" + strGids + "))";
iResult = -8;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "update ch_fee_advance_payment set ISVOU=0,VOUCHERNO='' where 1=1 and VOUCHERNO in (select VOUALLNO from cw_vouchers where ORDNO in (" + strGids + ")) and (ISDELETE=0 or ISDELETE is null)";
iResult = -8;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
//更新报销单凭证相关字段
sSql = "update OA_Baoxiao set ISVOU=0,VOUCHERNO='' where 1=1 and VOUCHERNO in(select VOUALLNO from cw_vouchers where ORDNO in (" + strGids + "))";
iResult = -8;//更新业务表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
//更新结算表的凭证相关字段
sSql = "update ch_fee_settlement set VOUNO='' where 1=1 and VOUNO in(select VOUALLNO from cw_vouchers where ORDNO in (" + strGids + "))";
iResult = -4;//更新结算表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
//更新发票表的凭证相关字段
sSql = "update ch_fee_invoice set VOUCHERNO='' where 1=1 and VOUCHERNO in(select VOUALLNO from cw_vouchers where ORDNO in (" + strGids + "))";
iResult = -5;//更新结算表的凭证相关字段
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
//把删除的凭证号插入序号的漏号补号表
sSql = "INSERT INTO [code_fill_serialno]([GID],[TABLENAME],[SERIALNO],[CREATEUSER],[CREATETIME],[ISDELETE],[DELETEUSER],[DELETETIME],STARTGID) "
+ "select newid(),'cw_vouchers',VOUALLNO,'" + strUserID + "',getdate(),0,'',getdate(),'' from cw_vouchers where ORDNO in (" + strGids + ")";
iResult = -8;//把删除的凭证号插入序号的漏号补号表
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "delete from cw_vouitems where ORDNO in (" + strGids + ")";
iResult = -6;//删除明细表
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
sSql = "delete from cw_vouchers where ORDNO in (" + strGids + ")";
iResult = -7;//删除主表
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null);
//事务提交
sqlTran.Commit();
iResult = 1;//状态为1表示插入成功
}
catch (Exception execError)
{
iResult = -1;//有异常,插入失败
sqlTran.Rollback();
iResult = -2;//插入异常,事务已回滚成功
throw execError;
}
finally
{
SqlHelper.CloseConnection();
}
}
return iResult;
}
//
}
}