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/Areas/MvcShipping/DAL/MsCwVouchers/MsCwVouchersDAL.cs

609 lines
40 KiB
C#

2 years ago
using System;
using System.Data;
using System.Collections.Generic;
using System.Text;
using DSWeb.MvcShipping.Models.MsCwVouchers;
using DSWeb.MvcShipping.Models.MsCwGenlegAccitems;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.EntityDA;
using DSWeb.Areas.CommMng.Models;
using HcUtility.Comm;
using System.Data.SqlClient;
using DSWeb.DataAccess;
using HcUtility.Core;
using DSWeb.Areas.CommMng.DAL;
namespace DSWeb.MvcShipping.DAL.MsCwVouchersDAL
{
public class MsCwVouchersDAL
{
#region 查询主表
static public MsCwVouchers GetData(string condition, string companyid)
{
var strSql = new StringBuilder();
strSql.Append("SELECT * from cw_vouchers WITH(NOLOCK) where ISDELETE=0");
if (!string.IsNullOrEmpty(condition))
{
strSql.Append(" and " + condition);
}
var list=SetData(strSql);
if (list.Count > 0)
return list[0];
return new MsCwVouchers();
}
private static List<MsCwVouchers> SetData(StringBuilder strSql)
{
var headList = new List<MsCwVouchers>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsCwVouchers data = new MsCwVouchers();
#region Set DB data to Object
data.ORDNO= (reader["ORDNO"] == null ? "" : Convert.ToString(reader["ORDNO"]));//唯一编码
data.VOUNO = (reader["VOUNO"] == null ? "" : Convert.ToString(reader["VOUNO"]));//自动生成编号,月初清零
data.EXPVOUNO = (reader["EXPVOUNO"] == null ? "" : Convert.ToString(reader["EXPVOUNO"]));//导出凭证号
data.VKNO = (reader["VKNO"] == null ? "" : Convert.ToString(reader["VKNO"]));//凭证字
data.VOUDATE = (reader["VOUDATE"] == DBNull.Value ? "" : Convert.ToString(reader["VOUDATE"]));//凭证日期
data.ACCYEAR = (reader["ACCYEAR"] == null ? "" : Convert.ToString(reader["ACCYEAR"]));//年
data.ACCMONTH = (reader["ACCMONTH"] == null ? "" : Convert.ToString(reader["ACCMONTH"]));//月
data.ATTACHS = (reader["ATTACHS"] == null ? 0 : Convert.ToInt32(reader["ATTACHS"]));//附件(单据)数
data.AMTDR = (reader["AMTDR"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["AMTDR"]));//本位币借方
data.AMTCR = (reader["AMTCR"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["AMTCR"]));//本位币贷方
data.FCY = (reader["FCY"] == DBNull.Value ? "" : Convert.ToString(reader["FCY"]));//是否含有外币科目
data.QTY = (reader["QTY"] == DBNull.Value ? "" : Convert.ToString(reader["QTY"]));//是否含有数量科目
data.VOUPROP = (reader["VOUPROP"] == DBNull.Value ? "" : Convert.ToString(reader["VOUPROP"]));//凭证属性
data.PREPARED = (reader["PREPARED"] == DBNull.Value ? "" : Convert.ToString(reader["PREPARED"]));//制单人
data.CHECKED = (reader["CHECKED"] == DBNull.Value ? "" : Convert.ToString(reader["CHECKED"]));//审核人
data.ENTERED = (reader["ENTERED"] == DBNull.Value ? "" : Convert.ToString(reader["ENTERED"]));//记账人
data.ERRMSG = (reader["ERRMSG"] == DBNull.Value ? "" : Convert.ToString(reader["ERRMSG"]));//错误信息
data.ISDELETE = (reader["ISDELETE"] == DBNull.Value ? false : Convert.ToBoolean(reader["ISDELETE"]));//是否废除
data.DELETEUSER = (reader["DELETEUSER"] == DBNull.Value ? "" : Convert.ToString(reader["DELETEUSER"]));//废除操作人
if (reader["DELETETIME"] != null && reader["DELETETIME"].ToString().Trim().IndexOf("0001") < 0 && reader["DELETETIME"].ToString().Trim().IndexOf("1900") < 0 && reader["DELETETIME"].ToString().Trim() != "")
{
data.DELETETIME = Convert.ToDateTime(reader["DELETETIME"]);//废除时间
}
data.VOUALLNO = (reader["VOUALLNO"] == null ? "" : Convert.ToString(reader["VOUALLNO"]));//年+月+自动生成编号=凭证号
data.ISEXPORT = (reader["ISEXPORT"] == null ? false : Convert.ToBoolean(reader["ISEXPORT"]));//是否导出凭证
data.ISCHECKED = (reader["ISCHECKED"] == DBNull.Value ? false : Convert.ToBoolean(reader["ISCHECKED"]));//是否审核
if (reader["CHECKEDTIME"] != DBNull.Value && reader["CHECKEDTIME"].ToString().Trim().IndexOf("0001") < 0 && reader["CHECKEDTIME"].ToString().Trim().IndexOf("1900") < 0 && reader["CHECKEDTIME"].ToString().Trim() != "")
{
data.CHECKEDTIME = Convert.ToDateTime(reader["CHECKEDTIME"]);//审核时间
}
data.CarryOverType = (reader["CarryOverType"] == DBNull.Value ? "" : Convert.ToString(reader["CarryOverType"]));//CarryOverType
data.MODIFIEDUSER = (reader["PREPARED"] == DBNull.Value ? "" : Convert.ToString(reader["PREPARED"]));//CarryOverType
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
static public List<MsCwVouchersVouitems> GetDataCwVVList(string strCondition, string userid, string usercode, string companyid, string sort = null)
{
var strSql = new StringBuilder();
strSql.Append("SELECT * from VW_cw_vouchers_vouitems WITH(NOLOCK) where ISDELETE=0");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" and " + strCondition);
}
//
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by convert(decimal(10),VOUNO) desc,VOUDATE desc,ITEMNO");
}
return SetDataCwVV(strSql);
}
private static List<MsCwVouchersVouitems> SetDataCwVV(StringBuilder strSql)
{
var headList = new List<MsCwVouchersVouitems>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsCwVouchersVouitems data = new MsCwVouchersVouitems();
#region Set DB data to Object
data.ORDNO = (reader["ORDNO"] == null ? "" : Convert.ToString(reader["ORDNO"]));//唯一编码 newid()
data.VOUNO = (reader["VOUNO"] == null ? "" : Convert.ToString(reader["VOUNO"]));//月初清零
data.VKNO = (reader["VKNO"] == null ? "" : Convert.ToString(reader["VKNO"]));//凭证字
if (reader["VOUDATE"] != null && reader["VOUDATE"].ToString().Trim().IndexOf("0001") < 0 && reader["VOUDATE"].ToString().Trim().IndexOf("1900") < 0 && reader["VOUDATE"].ToString().Trim() != "")
{
//data.VOUDATE = Convert.ToDateTime(reader["VOUDATE"]);//凭证日期
data.VOUDATE = reader["VOUDATE"].ToString().Trim();//凭证日期
}
data.ACCYEAR = (reader["ACCYEAR"] == null ? "" : Convert.ToString(reader["ACCYEAR"]));//年
data.ACCMONTH = (reader["ACCMONTH"] == null ? "" : Convert.ToString(reader["ACCMONTH"]));//月
data.ATTACHS = (reader["ATTACHS"] == null ? 0 : Convert.ToInt32(reader["ATTACHS"]));//附件(单据)数
//data.AMTDR = (reader["AMTDR"] == null ? 0 : Convert.ToDecimal(reader["AMTDR"]));//本位币借方
//data.AMTCR = (reader["AMTCR"] == null ? 0 : Convert.ToDecimal(reader["AMTCR"]));//本位币贷方
data.FCY = (reader["FCY"] == null ? "" : Convert.ToString(reader["FCY"]));//是否含有外币科目
data.QTY = (reader["QTY"] == null ? "" : Convert.ToString(reader["QTY"]));//是否含有数量科目
data.VOUPROP = (reader["VOUPROP"] == null ? "" : Convert.ToString(reader["VOUPROP"]));//凭证属性
data.PREPARED = (reader["PREPARED"] == null ? "" : Convert.ToString(reader["PREPARED"]));//制单人
data.CHECKED = (reader["CHECKED"] == null ? "" : Convert.ToString(reader["CHECKED"]));//审核人
data.ENTERED = (reader["ENTERED"] == null ? "" : Convert.ToString(reader["ENTERED"]));//记账人
data.ERRMSG = (reader["ERRMSG"] == null ? "" : Convert.ToString(reader["ERRMSG"]));//错误信息
data.ISDELETE = (reader["ISDELETE"] == null ? false : Convert.ToBoolean(reader["ISDELETE"]));//是否废除
data.DELETEUSER = (reader["DELETEUSER"] == null ? "" : Convert.ToString(reader["DELETEUSER"]));//废除操作人
if (reader["DELETETIME"] != null && reader["DELETETIME"].ToString().Trim().IndexOf("0001") < 0 && reader["DELETETIME"].ToString().Trim().IndexOf("1900") < 0 && reader["DELETETIME"].ToString().Trim() != "")
{
data.DELETETIME = Convert.ToDateTime(reader["DELETETIME"]);//废除时间
}
data.VOUALLNO = (reader["VOUALLNO"] == null ? "" : Convert.ToString(reader["VOUALLNO"]));//年+月+自动生成编号=凭证号
data.ISEXPORT = (reader["ISEXPORT"] == null ? false : Convert.ToBoolean(reader["ISEXPORT"]));//是否导出凭证
data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//唯一编码 newid()
data.ORDNO = (reader["ORDNO"] == null ? "" : Convert.ToString(reader["ORDNO"]));//关联cw_vouchers
data.ITEMNO = (reader["ITEMNO"] == null ? 0 : Convert.ToInt32(reader["ITEMNO"]));//行号
data.ACCID = (reader["ACCID"] == null ? "" : Convert.ToString(reader["ACCID"]));//科目代码
data.PACCID = (reader["PACCID"] == null ? "" : Convert.ToString(reader["PACCID"]));//父级科目代码
data.ACCNAME = (reader["ACCNAME"] == null ? "" : Convert.ToString(reader["ACCNAME"]));//科目名称
data.PROPERTY = (reader["PROPERTY"] == null ? 0 : Convert.ToInt32(reader["PROPERTY"]));//科目属性
data.GRADE = (reader["GRADE"] == null ? 0 : Convert.ToInt32(reader["GRADE"]));//科目级别
data.DC = (reader["DC"] == null ? "" : Convert.ToString(reader["DC"]));//借贷方向
data.AMTDR = (reader["AMTDR"] == null ? 0 : Convert.ToDecimal(reader["AMTDR"]));//本位币借方金额(互斥)
data.AMTCR = (reader["AMTCR"] == null ? 0 : Convert.ToDecimal(reader["AMTCR"]));//本位币贷方金额(互斥)
data.ISFCY = (reader["ISFCY"] == null ? false : Convert.ToBoolean(reader["ISFCY"]));//是否外币
data.FCYNO = (reader["FCYNO"] == null ? "" : Convert.ToString(reader["FCYNO"]));//外币编号usd
data.FCYEXRATE = (reader["FCYEXRATE"] == null ? 0 : Convert.ToDecimal(reader["FCYEXRATE"]));//汇率
data.FCYDR = (reader["FCYDR"] == null ? 0 : Convert.ToDecimal(reader["FCYDR"]));//外币借方金额
data.FCYCR = (reader["FCYCR"] == null ? 0 : Convert.ToDecimal(reader["FCYCR"]));//外币贷方金额
data.QTYUNIT = (reader["QTYUNIT"] == null ? "" : Convert.ToString(reader["QTYUNIT"]));//数量包装单位
data.QTYDR = (reader["QTYDR"] == null ? 0 : Convert.ToDecimal(reader["QTYDR"]));//借方数量
data.QTYCR = (reader["QTYCR"] == null ? 0 : Convert.ToDecimal(reader["QTYCR"]));//贷方数量
data.EXPLAN = (reader["EXPLAN"] == null ? "" : Convert.ToString(reader["EXPLAN"]));//摘要,规则生成
data.ISDEPTACC = (reader["ISDEPTACC"] == null ? false : Convert.ToBoolean(reader["ISDEPTACC"]));//核算部门,按规则设置生成
data.ISEMPLACC = (reader["ISEMPLACC"] == null ? false : Convert.ToBoolean(reader["ISEMPLACC"]));//核算人员,按规则设置生成
data.ISCORPACC = (reader["ISCORPACC"] == null ? false : Convert.ToBoolean(reader["ISCORPACC"]));//核算客户,按规则设置生成
data.ISITEMACC = (reader["ISITEMACC"] == null ? false : Convert.ToBoolean(reader["ISITEMACC"]));//核算项目,按规则设置生成
data.DEPTID = (reader["DEPTID"] == null ? "" : Convert.ToString(reader["DEPTID"]));//部门(系统)
data.EMPLID = (reader["EMPLID"] == null ? "" : Convert.ToString(reader["EMPLID"]));//人员(系统)
data.CORPID = (reader["CORPID"] == null ? "" : Convert.ToString(reader["CORPID"]));//客户(系统)
data.PITEMID = (reader["PITEMID"] == null ? 0 : Convert.ToInt32(reader["PITEMID"]));//父级项目编号
data.ITEMID = (reader["ITEMID"] == null ? "" : Convert.ToString(reader["ITEMID"]));//项目编号
data.FIELD1 = (reader["FIELD1"] == null ? "" : Convert.ToString(reader["FIELD1"]));//预留字段1
data.FIELD2 = (reader["FIELD2"] == null ? "" : Convert.ToString(reader["FIELD2"]));//预留字段2
data.FIELD3 = (reader["FIELD3"] == null ? "" : Convert.ToString(reader["FIELD3"]));//预留字段3
data.FIELD4 = (reader["FIELD4"] == null ? "" : Convert.ToString(reader["FIELD4"]));//预留字段4
data.FIELD5 = (reader["FIELD5"] == null ? "" : Convert.ToString(reader["FIELD5"]));//预留字段5
data.FIELD6 = (reader["FIELD6"] == null ? "" : Convert.ToString(reader["FIELD6"]));//预留字段6
data.FIELD7 = (reader["FIELD7"] == null ? "" : Convert.ToString(reader["FIELD7"]));//预留字段7
data.FIELD8 = (reader["FIELD8"] == null ? "" : Convert.ToString(reader["FIELD8"]));//预留字段8
data.FIELD9 = (reader["FIELD9"] == null ? "" : Convert.ToString(reader["FIELD9"]));//预留字段9
data.FIELD10 = (reader["FIELD10"] == null ? "" : Convert.ToString(reader["FIELD10"]));//预留字段10
data.ISSYS = (reader["ISSYS"] == null ? false : Convert.ToBoolean(reader["ISSYS"]));//是否手动录入
data.FSETTLCODE = (reader["FSETTLCODE"] == null ? "" : Convert.ToString(reader["FSETTLCODE"]));//结算方式
data.FSETTLENO = (reader["FSETTLENO"] == null ? "" : Convert.ToString(reader["FSETTLENO"]));//财务辅助编号
data.MODIFIEDUSER = (reader["MODIFIEDUSER"] == null ? "" : Convert.ToString(reader["MODIFIEDUSER"]));//最后一次更新操作人
if (reader["MODIFIEDTIME"] != null && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("0001") < 0 && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("1900") < 0 && reader["MODIFIEDTIME"].ToString().Trim() != "")
{
data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]);//最后一次更新操作时间
}
data.CUSTOMERNAME = (reader["CUSTOMERNAME"] == null ? "" : Convert.ToString(reader["CUSTOMERNAME"]));//委托单位
data.SALE = (reader["SALE"] == null ? "" : Convert.ToString(reader["SALE"]));//揽货人
data.BLNO = (reader["BLNO"] == null ? "" : Convert.ToString(reader["BLNO"]));//业务编号
data.ITEMGID = (reader["ITEMGID"] == null ? "" : Convert.ToString(reader["ITEMGID"]));
data.DEPTGID = (reader["DEPTGID"] == null ? "" : Convert.ToString(reader["DEPTGID"]));
data.ACCALL = (reader["ACCALL"] == null ? "" : Convert.ToString(reader["ACCALL"]));
//data.FCYAMT = (reader["FCYAMT"] == null ? 0 : Convert.ToDecimal(reader["FCYAMT"]));//原币金额
if (reader["ISCHECKED"] != DBNull.Value)
data.ISCHECKED = (reader["ISCHECKED"] == null ? false : Convert.ToBoolean(reader["ISCHECKED"]));//是否审核
if (reader["CHECKEDTIME"] != DBNull.Value && reader["CHECKEDTIME"].ToString().Trim().IndexOf("0001") < 0 && reader["CHECKEDTIME"].ToString().Trim().IndexOf("1900") < 0 && reader["CHECKEDTIME"].ToString().Trim() != "")
{
data.CHECKEDTIME = Convert.ToDateTime(reader["CHECKEDTIME"]);//审核时间
}
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 合计列
static public List<MsCwVouchersVouitems> GetDataListHJ(string strCondition, string userid, string usercode, string companyid, string sort = null)
{
var strSql = new StringBuilder();
strSql.Append("SELECT ORDNO,VOUALLNO,VOUNO,EXPVOUNO,VKNO,VOUDATE,ACCYEAR,ACCMONTH,ATTACHS,ACCDATE,PREPARED,ISCHECKED,CHECKED,ENTERED,ISEXPORT,SUM(case when FCYNO='RMB' THEN AMTDR ELSE 0 END) as AMTDR,SUM(case when FCYNO='RMB' THEN AMTCR ELSE 0 END) as AMTCR,SUM(FCYDR) as FCYDR,SUM(FCYCR) as FCYCR,SUM(AMTDR) as QTYDR,SUM(AMTCR) as QTYCR from VW_cw_vouchers_vouitems WITH(NOLOCK) where ISDELETE=0");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" and " + strCondition);
}
strSql.Append(" GROUP BY ORDNO,VOUALLNO,VOUNO,EXPVOUNO,VKNO,VOUDATE,ACCYEAR,ACCMONTH,ATTACHS,ACCDATE,PREPARED,ISCHECKED,CHECKED,ENTERED,ISEXPORT");
//
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by convert(decimal(10),VOUNO) desc,VOUDATE desc");
}
return SetDataHJ(strSql);
}
private static List<MsCwVouchersVouitems> SetDataHJ(StringBuilder strSql)
{
var headList = new List<MsCwVouchersVouitems>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsCwVouchersVouitems data = new MsCwVouchersVouitems();
#region Set DB data to Object
data.ORDNO = (reader["ORDNO"] == null ? "" : Convert.ToString(reader["ORDNO"]));//唯一编码 newid()
data.VOUALLNO = (reader["VOUALLNO"] == null ? "" : Convert.ToString(reader["VOUALLNO"]));//年+月+自动生成编号=凭证号
data.VOUNO = (reader["VOUNO"] == null ? "" : Convert.ToString(reader["VOUNO"]));//月初清零
data.EXPVOUNO = (reader["EXPVOUNO"] == null ? "" : Convert.ToString(reader["EXPVOUNO"]));//月初清零
data.VKNO = (reader["VKNO"] == null ? "" : Convert.ToString(reader["VKNO"]));//凭证字
if (reader["VOUDATE"] != null && reader["VOUDATE"].ToString().Trim().IndexOf("0001") < 0 && reader["VOUDATE"].ToString().Trim().IndexOf("1900") < 0 && reader["VOUDATE"].ToString().Trim() != "")
{
data.VOUDATE = reader["VOUDATE"].ToString().Trim();//凭证日期
}
data.ACCYEAR = (reader["ACCYEAR"] == null ? "" : Convert.ToString(reader["ACCYEAR"]));//年
data.ACCMONTH = (reader["ACCMONTH"] == null ? "" : Convert.ToString(reader["ACCMONTH"]));//月
data.ATTACHS = (reader["ATTACHS"] == null ? 0 : Convert.ToInt32(reader["ATTACHS"]));//附件(单据)数
data.ACCDATE = (reader["ACCDATE"] == null ? "" : Convert.ToString(reader["ACCDATE"]));//月
data.PREPARED = (reader["PREPARED"] == null ? "" : Convert.ToString(reader["PREPARED"]));//制单人
data.ISCHECKED = (reader["ISCHECKED"] == DBNull.Value ? false : Convert.ToBoolean(reader["ISCHECKED"]));//是否审核
data.CHECKED = (reader["CHECKED"] == DBNull.Value ? "" : Convert.ToString(reader["CHECKED"]));//审核人
data.ENTERED = (reader["ENTERED"] == DBNull.Value ? "" : Convert.ToString(reader["ENTERED"]));//记账人
data.ISEXPORT = (reader["ISEXPORT"] == DBNull.Value ? false : Convert.ToBoolean(reader["ISEXPORT"]));//是否导出凭证
data.AMTDR = (reader["AMTDR"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["AMTDR"]));//本位币借方
data.AMTCR = (reader["AMTCR"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["AMTCR"]));//本位币贷方
data.FCYDR = (reader["FCYDR"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["FCYDR"]));//外币借方
data.FCYCR = (reader["FCYCR"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["FCYCR"]));//外币贷方
data.QTYDR = (reader["QTYDR"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["QTYDR"]));//综合本位币借方
data.QTYCR = (reader["QTYCR"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["QTYCR"]));//综合本位币贷方
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 查询明细表
static public List<MsCwVouitems> GetDetailList(string strCondition, string userid, string usercode, string companyid)
{
var strSql = new StringBuilder();
strSql.Append("SELECT *,isnull((case when FCYDR=0 then FCYCR else FCYDR end),0) as FCYAMT,ISNULL((SELECT TOP 1 DEPTNAME FROM sys_dept WHERE GID = cw_vouitems.DEPTGID), '') AS DEPTNAME, ISNULL((SELECT TOP 1 ITEMNAME FROM cw_item WHERE GID = cw_vouitems.ITEMGID), '') AS ITEMNAME from cw_vouitems WITH(NOLOCK) where 1=1");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" and " + strCondition);
}
strSql.Append(" order by ORDNO,ITEMNO");
return SetDetail(strSql);
}
private static List<MsCwVouitems> SetDetail(StringBuilder strSql)
{
var headList = new List<MsCwVouitems>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsCwVouitems data = new MsCwVouitems();
#region Set DB data to Object
data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//唯一编码 newid()
data.ORDNO = (reader["ORDNO"] == null ? "" : Convert.ToString(reader["ORDNO"]));//关联cw_vouchers
data.ITEMNO = (reader["ITEMNO"] == null ? 0 : Convert.ToInt32(reader["ITEMNO"]));//行号
data.ACCID = (reader["ACCID"] == null ? "" : Convert.ToString(reader["ACCID"]));//科目代码
data.PACCID = (reader["PACCID"] == null ? "" : Convert.ToString(reader["PACCID"]));//父级科目代码
data.ACCNAME = (reader["ACCNAME"] == null ? "" : Convert.ToString(reader["ACCNAME"]));//科目名称
data.PROPERTY = (reader["PROPERTY"] == null ? 0 : Convert.ToInt32(reader["PROPERTY"]));//科目属性
data.GRADE = (reader["GRADE"] == null ? 0 : Convert.ToInt32(reader["GRADE"]));//科目级别
data.DC = (reader["DC"] == null ? "" : Convert.ToString(reader["DC"]));//借贷方向
data.AMTDR = (reader["AMTDR"] == null ? 0 : Convert.ToDecimal(reader["AMTDR"]));//本位币借方金额(互斥)
data.AMTCR = (reader["AMTCR"] == null ? 0 : Convert.ToDecimal(reader["AMTCR"]));//本位币贷方金额(互斥)
data.ISFCY = (reader["ISFCY"] == null ? false : Convert.ToBoolean(reader["ISFCY"]));//是否外币
data.FCYNO = (reader["FCYNO"] == null ? "" : Convert.ToString(reader["FCYNO"]));//外币编号usd
data.FCYEXRATE = (reader["FCYEXRATE"] == null ? 0 : Convert.ToDecimal(reader["FCYEXRATE"]));//汇率
data.FCYDR = (reader["FCYDR"] == null ? 0 : Convert.ToDecimal(reader["FCYDR"]));//外币借方金额
data.FCYCR = (reader["FCYCR"] == null ? 0 : Convert.ToDecimal(reader["FCYCR"]));//外币贷方金额
data.QTYUNIT = (reader["QTYUNIT"] == null ? "" : Convert.ToString(reader["QTYUNIT"]));//数量包装单位
data.QTYDR = (reader["QTYDR"] == null ? 0 : Convert.ToDecimal(reader["QTYDR"]));//借方数量
data.QTYCR = (reader["QTYCR"] == null ? 0 : Convert.ToDecimal(reader["QTYCR"]));//贷方数量
data.EXPLAN = (reader["EXPLAN"] == null ? "" : Convert.ToString(reader["EXPLAN"]));//摘要,规则生成
data.ISDEPTACC = (reader["ISDEPTACC"] == null ? false : Convert.ToBoolean(reader["ISDEPTACC"]));//核算部门,按规则设置生成
data.ISEMPLACC = (reader["ISEMPLACC"] == null ? false : Convert.ToBoolean(reader["ISEMPLACC"]));//核算人员,按规则设置生成
data.ISCORPACC = (reader["ISCORPACC"] == null ? false : Convert.ToBoolean(reader["ISCORPACC"]));//核算客户,按规则设置生成
data.ISITEMACC = (reader["ISITEMACC"] == null ? false : Convert.ToBoolean(reader["ISITEMACC"]));//核算项目,按规则设置生成
data.DEPTID = (reader["DEPTID"] == null ? "" : Convert.ToString(reader["DEPTID"]));//部门(系统)
data.EMPLID = (reader["EMPLID"] == null ? "" : Convert.ToString(reader["EMPLID"]));//人员(系统)
data.CORPID = (reader["CORPID"] == null ? "" : Convert.ToString(reader["CORPID"]));//客户(系统)
data.PITEMID = (reader["PITEMID"] == null ? 0 : Convert.ToInt32(reader["PITEMID"]));//父级项目编号
data.ITEMID = (reader["ITEMID"] == null ? "" : Convert.ToString(reader["ITEMID"]));//项目编号
data.FIELD1 = (reader["FIELD1"] == null ? "" : Convert.ToString(reader["FIELD1"]));//预留字段1
data.FIELD2 = (reader["FIELD2"] == null ? "" : Convert.ToString(reader["FIELD2"]));//预留字段2
data.FIELD3 = (reader["FIELD3"] == null ? "" : Convert.ToString(reader["FIELD3"]));//预留字段3
data.FIELD4 = (reader["FIELD4"] == null ? "" : Convert.ToString(reader["FIELD4"]));//预留字段4
data.FIELD5 = (reader["FIELD5"] == null ? "" : Convert.ToString(reader["FIELD5"]));//预留字段5
data.FIELD6 = (reader["FIELD6"] == null ? "" : Convert.ToString(reader["FIELD6"]));//预留字段6
data.FIELD7 = (reader["FIELD7"] == null ? "" : Convert.ToString(reader["FIELD7"]));//预留字段7
data.FIELD8 = (reader["FIELD8"] == null ? "" : Convert.ToString(reader["FIELD8"]));//预留字段8
data.FIELD9 = (reader["FIELD9"] == null ? "" : Convert.ToString(reader["FIELD9"]));//预留字段9
data.FIELD10 = (reader["FIELD10"] == null ? "" : Convert.ToString(reader["FIELD10"]));//预留字段10
data.ISSYS = (reader["ISSYS"] == null ? false : Convert.ToBoolean(reader["ISSYS"]));//是否手动录入
data.FSETTLCODE = (reader["FSETTLCODE"] == null ? "" : Convert.ToString(reader["FSETTLCODE"]));//结算方式
data.FSETTLENO = (reader["FSETTLENO"] == null ? "" : Convert.ToString(reader["FSETTLENO"]));//财务辅助编号
data.MODIFIEDUSER = (reader["MODIFIEDUSER"] == null ? "" : Convert.ToString(reader["MODIFIEDUSER"]));//最后一次更新操作人
if (reader["MODIFIEDTIME"] != null && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("0001") < 0 && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("1900") < 0 && reader["MODIFIEDTIME"].ToString().Trim() != "")
{
data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]);//最后一次更新操作时间
}
data.CUSTOMERNAME = (reader["CUSTOMERNAME"] == null ? "" : Convert.ToString(reader["CUSTOMERNAME"]));//委托单位
data.SALE = (reader["SALE"] == null ? "" : Convert.ToString(reader["SALE"]));//揽货人
data.BLNO = (reader["BLNO"] == null ? "" : Convert.ToString(reader["BLNO"]));//业务编号
data.ITEMGID = (reader["ITEMGID"] == null ? "" : Convert.ToString(reader["ITEMGID"]));
data.DEPTGID = (reader["DEPTGID"] == null ? "" : Convert.ToString(reader["DEPTGID"]));
data.FCYAMT = (reader["FCYAMT"] == null ? 0 : Convert.ToDecimal(reader["FCYAMT"]));//原币金额
data.ACCALL = (reader["ACCALL"] == null ? "" : Convert.ToString(reader["ACCALL"]));
data.DEPTNAME = (reader["DEPTNAME"] == null ? "" : Convert.ToString(reader["DEPTNAME"]));
data.ITEMNAME = (reader["ITEMNAME"] == null ? "" : Convert.ToString(reader["ITEMNAME"]));
if (data.ACCALL.ToString().Trim() == "")
{
data.ACCALL = data.ACCNAME.ToString().Trim();
if (data.ISCORPACC)
{
if (data.CUSTOMERNAME.ToString().Trim() != "")
{
data.ACCALL += "▁" + data.CUSTOMERNAME.ToString().Trim();
}
}
else if (data.ISDEPTACC)
{
if(data.DEPTNAME.ToString().Trim()!="")
{
data.ACCALL += "▁" + data.DEPTNAME.ToString().Trim();
}
}
else if (data.ISEMPLACC)
{
if (data.SALE.ToString().Trim() != "")
{
data.ACCALL += "▁" + data.SALE.ToString().Trim();
}
}
else if (data.ISITEMACC)
{
if (data.ITEMNAME.ToString().Trim() != "")
{
data.ACCALL += "▁" + data.ITEMNAME.ToString().Trim();
}
}
}
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 根据币别,获取汇率值
public static string GetFCYEXRATE(string FCY, string LINKGID, string strCompanyID, string strUserID)
{
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUserID);
string strCwACCDATE = BasicDataRefDAL.GetCwACCDATE(strUserID);
string strFCY = "RMB1";
if (FCY != "RMB")
{
string sSQL = "SELECT top 1 DEFAULTRATE=isnull((select top 1 BEGRATE from cw_currency_rate where LINKGID=code_currency.GID and ISDELETE=0 and ACCDATE= '" + strCwACCDATE + "' and STARTGID='" + strCwSTARTGID + "'),DEFAULTRATE) from code_currency WITH(NOLOCK) where CODENAME='" + FCY + "'";// and CORPID='" + strCompanyID + "'
strFCY = T_ALL_DA.GetStrSQL("DEFAULTRATE", sSQL);
if (strFCY.Trim() == "")
{
//return "请先设置帐套信息!";
return "-1";
}
strFCY = FCY + "" + strFCY;
}
return strFCY;
}
#endregion
#region 是否已经维护财务代码
public static string GetISFINANCESOFTCODE(string TYPE, string VALUE, string strCompanyID, string strUserID)
{
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUserID);
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
string sSQL = "";
if (TYPE == "DeptName")
{
sSQL = "select top 1 FINANCESOFTCODE from sys_dept WITH(NOLOCK) where DEPTNAME='" + VALUE.ToString() + "'";
}
else if (TYPE == "CustNAME")
{
2 years ago
sSQL = "select top 1 (case when (FARCODE='' or FAPCODE='') then '' else FARCODE end) as FINANCESOFTCODE from info_client WITH(NOLOCK) where SHORTNAME='" + VALUE.ToString() + "' and corpid='"+ strCompanyID + "' ";
2 years ago
}
else if (TYPE == "SALE")
{
sSQL = "select top 1 FINANCESOFTCODE from user_baseinfo,[user] WITH(NOLOCK) where [user].GID=user_baseinfo.USERID and [user].SHOWNAME='" + VALUE.ToString() + "'";
}
else if (TYPE == "ITEMNAME")
{
sSQL = "select top 1 FINANCESOFTCODE from cw_item WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ITEMNAME='" + VALUE.ToString() + "'";
}
//
string sFINANCESOFTCODE = T_ALL_DA.GetStrSQL("FINANCESOFTCODE", sSQL);
if (sFINANCESOFTCODE.Trim() == "")
{
//return "请先设置帐套信息!";
return "-1";
}
return VALUE.ToString();
}
#endregion
#region 是否导出数据
public static DBResult getIsExport(string strCondition, string gids, string strCompanyID)
{
var result = new DBResult();
T_ALL_DA T_ALL_DA = new T_ALL_DA();
string sSQL = "";
string sResult = "";
string sCondition = "";
string sgids = "'" + gids.Trim().Replace(",", "','") + "'";
if (gids.Trim() == "")
{
if (!string.IsNullOrEmpty(strCondition))
{
sCondition = " and " + strCondition;
}
}
else
{
sCondition = " and ORDNO in (" + sgids + ")";
}
//
//判断借贷平衡
sSQL = "select VOUALLNO,cha from (select (SUM(AMTDR)-SUM(AMTCR)) as cha,VOUALLNO from VW_cw_vouchers_vouitems where 1=1" + sCondition + " group by VOUALLNO,ORDNO) as a where cha<>'0.00' group by VOUALLNO,cha order by cha desc";
DataSet ds = T_ALL_DA.GetAllSQL(sSQL);
if (ds != null)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
sResult += "凭证 " + ds.Tables[0].Rows[i]["VOUALLNO"].ToString().Trim() + " 借贷不平衡,不能导出凭证!\r\n";
}
}
////借贷是否同时为0
//sSQL = "select VOUALLNO from (select (case SUM(AMTDR) when '0.00' then SUM(AMTCR) else SUM(AMTDR) end) as amt,VOUALLNO=(select VOUALLNO from cw_vouchers where ORDNO=VW_cw_vouchers_vouitems.ORDNO) from VW_cw_vouchers_vouitems where 1=1" + sCondition + " group by VOUALLNO,ORDNO) as a where amt='0.00' group by VOUALLNO order by VOUALLNO";
//ds = T_ALL_DA.GetAllSQL(sSQL);
//if (ds != null)
//{
// for (int k = 0; k < ds.Tables[0].Rows.Count; k++)
// {
// sResult += "凭证 " + ds.Tables[0].Rows[k]["VOUALLNO"].ToString().Trim() + " 有借贷双方同为“0”的数据不能导出凭证\r\n";
// }
//}
//外币科目汇率不能为0或1
sSQL = " select VOUALLNO from ( ";
sSQL = sSQL + " select (case FCYDR when '0.00' then FCYCR else FCYDR end) as fcy";
sSQL = sSQL + ",FCYEXRATE,(select VOUALLNO from cw_vouchers where ORDNO=VW_cw_vouchers_vouitems.ORDNO) as VOUALLNO";
sSQL = sSQL + " from VW_cw_vouchers_vouitems ";
sSQL = sSQL + " where 1=1" + sCondition;
sSQL = sSQL + " and ((FCYEXRATE=0) or (FCYEXRATE=1 and fcyno<>'RMB')) ";
sSQL = sSQL + " ) as a where fcy<>'0.00' and ";
sSQL = sSQL + " (FCYEXRATE='1.00' or FCYEXRATE='0.00') ";
sSQL = sSQL + " group by VOUALLNO order by VOUALLNO ";
ds = T_ALL_DA.GetAllSQL(sSQL);
if (ds != null)
{
for (int k = 0; k < ds.Tables[0].Rows.Count; k++)
{
sResult += "凭证 " + ds.Tables[0].Rows[k]["VOUALLNO"].ToString().Trim() + " 有外币科目的汇率为“0”或“1”的数据不能导出凭证\r\n";
}
}
//财务代码是否为空
sSQL = "select VOUALLNO from (select VOUALLNO=(select VOUALLNO from cw_vouchers where ORDNO=VW_cw_vouchers_vouitems.ORDNO) from VW_cw_vouchers_vouitems where (accid is null or accid='')" + sCondition + ") as a group by VOUALLNO order by VOUALLNO";
ds = T_ALL_DA.GetAllSQL(sSQL);
if (ds != null)
{
for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
{
sResult += "凭证 " + ds.Tables[0].Rows[j]["VOUALLNO"].ToString().Trim() + " 有财务科目代码为空的数据,不能导出凭证!\r\n";
}
}
//客户财务代码是否为空
//sSQL = "select VOUALLNO from (select VOUALLNO=(select VOUALLNO from cw_vouchers where ORDNO=VW_cw_vouchers_vouitems.ORDNO) from VW_cw_vouchers_vouitems where (CUSTOMERNAME is not null and CUSTOMERNAME<>'' and (CORPID is null or CORPID='') and (FIELD3 is null or FIELD3=''))" + sCondition + ") as a group by VOUALLNO order by VOUALLNO";
//ds = T_ALL_DA.GetAllSQL(sSQL);
//if (ds != null)
//{
// for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
// {
// sResult += "凭证 " + ds.Tables[0].Rows[j]["VOUALLNO"].ToString().Trim() + " 有客户财务代码为空的数据,不能导出凭证!\r\n";
// }
//}
//
if (sResult == "")
{
result.Success = true;
result.Message = "";
return result;
}
else
{
result.Success = false;
result.Message = sResult;
return result;
}
}
#endregion
#region 删除
public static DBResult Delete(string gids, string strUserID)
{
var result = new DBResult();
int ibl = 0;
if (gids.Trim() != "")
{
CwVouchersDA CwVouchersDA = new CwVouchersDA();
ibl = CwVouchersDA.DeleteAll(gids, strUserID);
}
if (ibl < 1)
{
result.Success = false;
result.Message = "操作出错!";
return result;
}
result.Success = true;
result.Message = "操作成功!";
return result;
}
public static DBResult DeleteDetail(MsCwVouitems headData)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdDelete = db.GetSqlStringCommand("delete from cw_vouitems where GID='" + headData.GID + "'");
db.ExecuteNonQuery(cmdDelete, tran);
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "删除出现错误,请重试!";
return result;
}
}
result.Success = true;
result.Message = "操作成功";
return result;
}
#endregion
//
}
}