using System ;
using System.Data ;
using System.Collections.Generic ;
using System.Text ;
using DSWeb.MvcShipping.Models.SysBillType ;
using DSWeb.MvcShipping.Models.MsSysBillNoSet ;
using Microsoft.Practices.EnterpriseLibrary.Data ;
using DSWeb.Areas.CommMng.Models ;
using HcUtility.Comm ;
using DSWeb.TruckMng.Comm.Cookie ;
using DSWeb.EntityDA ;
using System.Transactions ;
using System.Data.SqlClient ;
using DSWeb.Areas.MvcShipping.Models.Message.VGM ;
namespace DSWeb.MvcShipping.DAL.MsSysBillNoSet
{
public class MsSysBillNoSetDAL
{
#region BillNoSet
static public List < SysBillNoSet > GetDataList ( string strCondition , string companyid , string sort = null , string dbname = "" )
{
var strSql = new StringBuilder ( ) ;
strSql . Append ( "SELECT " ) ;
strSql . Append ( "GID,OPLBNAME,RULEBLNO,RULEDATETYPE,BILLTYPE,COMPANYID,ISEDIT,ISAUTO,CUSTOMHEAD" ) ;
strSql . Append ( ",(select BillName from tSysBillType where BillCode=sys_billno_set.BILLTYPE) BILLTYPEREF" ) ;
strSql . Append ( " from sys_billno_set where COMPANYID='" + companyid + "'" ) ;
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 OPLBNAME" ) ;
}
return SetData ( strSql , dbname ) ;
}
static public SysBillNoSet GetData ( string condition , string companyid , string dbname = "" )
{
SysBillNoSet data = null ;
var list = GetDataList ( condition , companyid , null , dbname ) ;
if ( list . Count > 0 )
data = list [ 0 ] ;
if ( data = = null )
{
data = new SysBillNoSet ( ) ;
}
return data ;
}
/ *
public static string GetNewNo ( string bltype , string ruleblno , string BILLTYPE , string companyid , string etd , string accdate = null )
{
if ( etd . Length < = 7 ) return "" ;
if ( accdate = = null )
{
accdate = etd . Substring ( 0 , 7 ) ;
}
var billnoset = MsSysBillNoSetDAL . GetData ( "OPLBNAME='" + bltype + "' AND RULEBLNO='" + ruleblno + "' AND BILLTYPE='" + BILLTYPE + "'" , companyid ) ;
if ( billnoset . BILLTYPE ! = "" )
{
var custno = MsSysBillNoSetDAL . GetBillNo ( billnoset , etd , accdate ) ;
return custno ;
}
else
{
return "" ;
}
}
* /
public static string GetNewNo ( string bltype , string BILLTYPE , string companyid , string etd , string accdate = null )
{
if ( etd . Length < = 7 ) return "" ;
if ( accdate = = null )
{
accdate = etd . Substring ( 0 , 7 ) ;
}
var billnoset = MsSysBillNoSetDAL . GetData ( "OPLBNAME='" + bltype + "' AND (RULEBLNO='" + BILLTYPE + "' or BILLTYPE='" + BILLTYPE + "')" , companyid ) ;
if ( billnoset . BILLTYPE ! = "" )
{
var custno = MsSysBillNoSetDAL . GetBillNo ( billnoset , etd , accdate ) ;
return custno ;
}
else
{
return "" ;
}
}
private static List < SysBillNoSet > SetData ( StringBuilder strSql , string dbname = "" )
{
var headList = new List < SysBillNoSet > ( ) ;
Database db = string . IsNullOrWhiteSpace ( dbname ) ? DatabaseFactory . CreateDatabase ( ) : DatabaseFactory . CreateDatabase ( dbname ) ;
using ( IDataReader reader = db . ExecuteReader ( CommandType . Text , strSql . ToString ( ) ) )
{
while ( reader . Read ( ) )
{
SysBillNoSet data = new SysBillNoSet ( ) ;
#region Set DB data to Object
data . GID = Convert . ToString ( reader [ "GID" ] ) ;
data . OPLBNAME = Convert . ToString ( reader [ "OPLBNAME" ] ) ;
data . RULEBLNO = Convert . ToString ( reader [ "RULEBLNO" ] ) ;
data . RULEDATETYPE = Convert . ToString ( reader [ "RULEDATETYPE" ] ) ;
data . COMPANYID = Convert . ToString ( reader [ "COMPANYID" ] ) ;
data . BILLTYPE = Convert . ToString ( reader [ "BILLTYPE" ] ) ;
data . BILLTYPEREF = Convert . ToString ( reader [ "BILLTYPEREF" ] ) ;
data . ISEDIT = Convert . ToString ( reader [ "ISEDIT" ] ) ;
data . ISAUTO = Convert . ToString ( reader [ "ISAUTO" ] ) ;
data . CUSTOMHEAD = Convert . ToString ( reader [ "CUSTOMHEAD" ] ) ;
# endregion
headList . Add ( data ) ;
}
reader . Close ( ) ;
}
return headList ;
}
# endregion
public static DBResult SaveBillSetDetail ( List < SysBillNoSet > bodyList , string companyid )
{
var result = new DBResult ( ) ;
Database db = DatabaseFactory . CreateDatabase ( ) ;
using ( var conn = db . CreateConnection ( ) )
{
conn . Open ( ) ;
var tran = conn . BeginTransaction ( ) ;
try
{
var cmdInsert =
db . GetSqlStringCommand (
@ "insert into sys_billno_set (GID,OPLBNAME,RULEBLNO,RULEDATETYPE,BILLTYPE,COMPANYID,ISEDIT,ISAUTO,CUSTOMHEAD)
values ( @GID , @OPLBNAME , @RULEBLNO , @RULEDATETYPE , @BILLTYPE , @COMPANYID , @ISEDIT , @ISAUTO , @CUSTOMHEAD ) ");
var cmdUpdate =
db . GetSqlStringCommand (
@"update sys_billno_set set OPLBNAME=@OPLBNAME,RULEBLNO=@RULEBLNO,RULEDATETYPE=@RULEDATETYPE,BILLTYPE=@BILLTYPE,COMPANYID=@COMPANYID,ISEDIT=@ISEDIT,ISAUTO=@ISAUTO,CUSTOMHEAD=@CUSTOMHEAD where GID=@GID " ) ;
if ( bodyList ! = null )
{
foreach ( var enumValue in bodyList )
{
if ( enumValue . GID = = "*" | | enumValue . GID = = "" )
{
cmdInsert . Parameters . Clear ( ) ;
db . AddInParameter ( cmdInsert , "@GID" , DbType . String , Guid . NewGuid ( ) . ToString ( ) ) ;
db . AddInParameter ( cmdInsert , "@OPLBNAME" , DbType . String , enumValue . OPLBNAME ) ;
db . AddInParameter ( cmdInsert , "@RULEBLNO" , DbType . String , enumValue . RULEBLNO ) ;
db . AddInParameter ( cmdInsert , "@RULEDATETYPE" , DbType . String , enumValue . RULEDATETYPE ) ;
db . AddInParameter ( cmdInsert , "@BILLTYPE" , DbType . String , enumValue . BILLTYPE ) ;
db . AddInParameter ( cmdInsert , "@ISEDIT" , DbType . String , enumValue . ISEDIT ) ;
db . AddInParameter ( cmdInsert , "@ISAUTO" , DbType . String , enumValue . ISAUTO ) ;
db . AddInParameter ( cmdInsert , "@CUSTOMHEAD" , DbType . String , enumValue . CUSTOMHEAD ) ;
db . AddInParameter ( cmdInsert , "@COMPANYID" , DbType . String , companyid ) ;
db . ExecuteNonQuery ( cmdInsert , tran ) ;
}
else
{
cmdUpdate . Parameters . Clear ( ) ;
db . AddInParameter ( cmdUpdate , "@GID" , DbType . String , enumValue . GID ) ;
db . AddInParameter ( cmdUpdate , "@OPLBNAME" , DbType . String , enumValue . OPLBNAME ) ;
db . AddInParameter ( cmdUpdate , "@RULEBLNO" , DbType . String , enumValue . RULEBLNO ) ;
db . AddInParameter ( cmdUpdate , "@RULEDATETYPE" , DbType . String , enumValue . RULEDATETYPE ) ;
db . AddInParameter ( cmdUpdate , "@BILLTYPE" , DbType . String , enumValue . BILLTYPE ) ;
db . AddInParameter ( cmdUpdate , "@ISEDIT" , DbType . String , enumValue . ISEDIT ) ;
db . AddInParameter ( cmdUpdate , "@ISAUTO" , DbType . String , enumValue . ISAUTO ) ;
db . AddInParameter ( cmdUpdate , "@CUSTOMHEAD" , DbType . String , enumValue . CUSTOMHEAD ) ;
db . AddInParameter ( cmdUpdate , "@COMPANYID" , DbType . String , enumValue . COMPANYID ) ;
db . ExecuteNonQuery ( cmdUpdate , tran ) ;
}
}
}
tran . Commit ( ) ;
}
catch ( Exception )
{
tran . Rollback ( ) ;
result . Success = false ;
result . Message = "保存出现错误,请重试或联系系统管理员" ;
return result ;
}
}
result . Success = true ;
result . Message = "保存成功" + result . Message ;
return result ;
}
#region BillType
static public List < BillType > GetBillTypeDataList ( string strCondition , string companyid , string sort = null )
{
var strSql = new StringBuilder ( ) ;
strSql . Append ( "SELECT " ) ;
strSql . Append ( "GID,BillCode,BillName,BillGrp,IsRule,NoLength,IsPrefix,PrefixLen,PrefixNo,[IsDate],DateFmt," ) ;
strSql . Append ( " SerialLen,YearNo,MonthNo,DayNo,MaxSerial,BillHeadTbl,IsOrgPrefix,IsEmpPrefix from tSysBillType " ) ;
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 BillCode" ) ;
}
return SetBillTypeData ( strSql ) ;
}
static public BillType GetBillTypeData ( string condition , string companyid )
{
BillType data = null ;
var list = GetBillTypeDataList ( condition , companyid ) ;
if ( list . Count > 0 )
data = list [ 0 ] ;
if ( data = = null )
{
data = new BillType ( ) ;
}
return data ;
}
private static List < BillType > SetBillTypeData ( StringBuilder strSql )
{
var headList = new List < BillType > ( ) ;
Database db = DatabaseFactory . CreateDatabase ( ) ;
using ( IDataReader reader = db . ExecuteReader ( CommandType . Text , strSql . ToString ( ) ) )
{
while ( reader . Read ( ) )
{
BillType data = new BillType ( ) ;
#region Set DB data to Object
data . GID = Convert . ToString ( reader [ "GID" ] ) ;
data . BillCode = Convert . ToString ( reader [ "BillCode" ] ) ;
data . BillName = Convert . ToString ( reader [ "BillName" ] ) ;
data . BillGrp = Convert . ToString ( reader [ "BillGrp" ] ) ;
data . IsRule = Convert . ToString ( reader [ "IsRule" ] ) ;
data . NoLength = Convert . ToInt32 ( reader [ "NoLength" ] ) ;
data . IsPrefix = Convert . ToString ( reader [ "IsPrefix" ] ) ;
data . PrefixLen = Convert . ToInt16 ( reader [ "PrefixLen" ] ) ;
data . PrefixNo = Convert . ToString ( reader [ "PrefixNo" ] ) ;
data . IsDate = Convert . ToString ( reader [ "IsDate" ] ) ;
data . DateFmt = Convert . ToString ( reader [ "DateFmt" ] ) ;
data . SerialLen = Convert . ToInt16 ( reader [ "SerialLen" ] ) ;
data . YearNo = Convert . ToString ( reader [ "YearNo" ] ) ;
data . MonthNo = Convert . ToString ( reader [ "MonthNo" ] ) ;
data . DayNo = Convert . ToString ( reader [ "DayNo" ] ) ;
data . MaxSerial = Convert . ToInt32 ( reader [ "MaxSerial" ] ) ;
data . BillHeadTbl = Convert . ToString ( reader [ "BillHeadTbl" ] ) ;
data . IsOrgPrefix = Convert . ToString ( reader [ "IsOrgPrefix" ] ) ;
data . IsEmpPrefix = Convert . ToString ( reader [ "IsEmpPrefix" ] ) ;
# endregion
headList . Add ( data ) ;
}
reader . Close ( ) ;
}
return headList ;
}
public static DBResult SaveBillTypeDetail ( List < BillType > bodyList , string companyid )
{
var result = new DBResult ( ) ;
Database db = DatabaseFactory . CreateDatabase ( ) ;
using ( var conn = db . CreateConnection ( ) )
{
conn . Open ( ) ;
var tran = conn . BeginTransaction ( ) ;
try
{
var cmdInsert =
db . GetSqlStringCommand (
@ "insert into tSysBillType (GID,BillCode,BillName,BillGrp,IsRule,NoLength,IsPrefix,PrefixLen,PrefixNo,[IsDate],DateFmt,SerialLen,YearNo,MonthNo,DayNo,MaxSerial,BillHeadTbl,IsOrgPrefix,IsEmpPrefix)
values ( @GID , @BillCode , @BillName , @BillGrp , @IsRule , @NoLength , @IsPrefix , @PrefixLen , @PrefixNo , @IsDate , @DateFmt , @SerialLen , @YearNo , @MonthNo , @DayNo , @MaxSerial , @BillHeadTbl , @IsOrgPrefix , @IsEmpPrefix ) ");
var cmdUpdate =
db . GetSqlStringCommand (
@ "update tSysBillType set BillCode=@BillCode,BillName=@BillName,BillGrp=@BillGrp,IsRule=@IsRule,NoLength=@NoLength,IsPrefix=@IsPrefix,PrefixLen=@PrefixLen,PrefixNo=@PrefixNo
, IsDate = @IsDate , DateFmt = @DateFmt , SerialLen = @SerialLen , YearNo = @YearNo , MonthNo = @MonthNo , DayNo = @DayNo , MaxSerial = @MaxSerial , BillHeadTbl = @BillHeadTbl ,
IsOrgPrefix = @IsOrgPrefix , IsEmpPrefix = @IsEmpPrefix where GID = @GID ");
if ( bodyList ! = null )
{
foreach ( var enumValue in bodyList )
{
if ( enumValue . GID = = "*" | | enumValue . GID = = "" )
{
cmdInsert . Parameters . Clear ( ) ;
db . AddInParameter ( cmdInsert , "@GID" , DbType . String , Guid . NewGuid ( ) . ToString ( ) ) ;
db . AddInParameter ( cmdInsert , "@BillCode" , DbType . String , enumValue . BillCode ) ;
db . AddInParameter ( cmdInsert , "@BillName" , DbType . String , enumValue . BillName ) ;
db . AddInParameter ( cmdInsert , "@BillGrp" , DbType . String , enumValue . BillGrp ) ;
db . AddInParameter ( cmdInsert , "@IsRule" , DbType . String , enumValue . IsRule ) ;
db . AddInParameter ( cmdInsert , "@NoLength" , DbType . Int16 , enumValue . NoLength ) ;
db . AddInParameter ( cmdInsert , "@IsPrefix" , DbType . String , enumValue . IsPrefix ) ;
db . AddInParameter ( cmdInsert , "@PrefixLen" , DbType . Int16 , enumValue . PrefixLen ) ;
db . AddInParameter ( cmdInsert , "@PrefixNo" , DbType . String , enumValue . PrefixNo ) ;
db . AddInParameter ( cmdInsert , "@IsDate" , DbType . String , enumValue . IsDate ) ;
db . AddInParameter ( cmdInsert , "@DateFmt" , DbType . String , enumValue . DateFmt ) ;
db . AddInParameter ( cmdInsert , "@SerialLen" , DbType . Int16 , enumValue . SerialLen ) ;
db . AddInParameter ( cmdInsert , "@YearNo" , DbType . String , enumValue . YearNo ) ;
db . AddInParameter ( cmdInsert , "@MonthNo" , DbType . String , enumValue . MonthNo ) ;
db . AddInParameter ( cmdInsert , "@DayNo" , DbType . String , enumValue . DayNo ) ;
db . AddInParameter ( cmdInsert , "@MaxSerial" , DbType . Int16 , enumValue . MaxSerial ) ;
db . AddInParameter ( cmdInsert , "@BillHeadTbl" , DbType . String , enumValue . BillHeadTbl ) ;
db . AddInParameter ( cmdInsert , "@IsOrgPrefix" , DbType . String , enumValue . IsOrgPrefix ) ;
db . AddInParameter ( cmdInsert , "@IsEmpPrefix" , DbType . String , enumValue . IsEmpPrefix ) ;
db . ExecuteNonQuery ( cmdInsert , tran ) ;
}
else
{
cmdUpdate . Parameters . Clear ( ) ;
db . AddInParameter ( cmdUpdate , "@GID" , DbType . String , enumValue . GID ) ;
db . AddInParameter ( cmdUpdate , "@BillCode" , DbType . String , enumValue . BillCode ) ;
db . AddInParameter ( cmdUpdate , "@BillName" , DbType . String , enumValue . BillName ) ;
db . AddInParameter ( cmdUpdate , "@BillGrp" , DbType . String , enumValue . BillGrp ) ;
db . AddInParameter ( cmdUpdate , "@IsRule" , DbType . String , enumValue . IsRule ) ;
db . AddInParameter ( cmdUpdate , "@NoLength" , DbType . Int16 , enumValue . NoLength ) ;
db . AddInParameter ( cmdUpdate , "@IsPrefix" , DbType . String , enumValue . IsPrefix ) ;
db . AddInParameter ( cmdUpdate , "@PrefixLen" , DbType . Int16 , enumValue . PrefixLen ) ;
db . AddInParameter ( cmdUpdate , "@PrefixNo" , DbType . String , enumValue . PrefixNo ) ;
db . AddInParameter ( cmdUpdate , "@IsDate" , DbType . String , enumValue . IsDate ) ;
db . AddInParameter ( cmdUpdate , "@DateFmt" , DbType . String , enumValue . DateFmt ) ;
db . AddInParameter ( cmdUpdate , "@SerialLen" , DbType . Int16 , enumValue . SerialLen ) ;
db . AddInParameter ( cmdUpdate , "@YearNo" , DbType . String , enumValue . YearNo ) ;
db . AddInParameter ( cmdUpdate , "@MonthNo" , DbType . String , enumValue . MonthNo ) ;
db . AddInParameter ( cmdUpdate , "@DayNo" , DbType . String , enumValue . DayNo ) ;
db . AddInParameter ( cmdUpdate , "@MaxSerial" , DbType . Int16 , enumValue . MaxSerial ) ;
db . AddInParameter ( cmdUpdate , "@BillHeadTbl" , DbType . String , enumValue . BillHeadTbl ) ;
db . AddInParameter ( cmdUpdate , "@IsOrgPrefix" , DbType . String , enumValue . IsOrgPrefix ) ;
db . AddInParameter ( cmdUpdate , "@IsEmpPrefix" , DbType . String , enumValue . IsEmpPrefix ) ;
db . ExecuteNonQuery ( cmdUpdate , tran ) ;
}
}
}
tran . Commit ( ) ;
}
catch ( Exception )
{
tran . Rollback ( ) ;
result . Success = false ;
result . Message = "保存出现错误,请重试或联系系统管理员" ;
return result ;
}
}
result . Success = true ;
result . Message = "保存成功" + result . Message ;
return result ;
}
static public string GetUserCode ( string username , string dbname = "" )
{
string EDICODE = "" ;
var strSql = new StringBuilder ( ) ;
strSql . Append ( "select CODENAME from [user] where SHOWNAME='" + username + "'" ) ;
Database db = string . IsNullOrWhiteSpace ( dbname ) ? DatabaseFactory . CreateDatabase ( ) : DatabaseFactory . CreateDatabase ( dbname ) ;
using ( IDataReader reader = db . ExecuteReader ( CommandType . Text , strSql . ToString ( ) ) )
{
while ( reader . Read ( ) )
{
EDICODE = Convert . ToString ( reader [ "CODENAME" ] ) ;
}
reader . Close ( ) ;
}
return EDICODE ;
}
static public string GetCorpCode ( string Corpid , string dbname = "" )
{
string EDICODE = "" ;
var strSql = new StringBuilder ( ) ;
strSql . Append ( "select CODENAME from [company] where GID='" + Corpid + "'" ) ;
Database db = string . IsNullOrWhiteSpace ( dbname ) ? DatabaseFactory . CreateDatabase ( ) : DatabaseFactory . CreateDatabase ( dbname ) ;
using ( IDataReader reader = db . ExecuteReader ( CommandType . Text , strSql . ToString ( ) ) )
{
while ( reader . Read ( ) )
{
EDICODE = Convert . ToString ( reader [ "CODENAME" ] ) ;
}
reader . Close ( ) ;
}
return EDICODE ;
}
public class 获 取 业 务 编 号 Helper
{
private static readonly Lazy < 获 取 业 务 编 号 Helper > lazy = new Lazy < 获 取 业 务 编 号 Helper > ( ( ) = > new 获 取 业 务 编 号 Helper ( ) ) ;
public static 获 取 业 务 编 号 Helper Instance { get { return lazy . Value ; } }
private 获 取 业 务 编 号 Helper ( ) { }
/// <summary>
/// 调用委托编号存储过程
/// </summary>
/// <param name="Code">SE加会计期间年月 共8位</param>
/// <returns></returns>
public string GetBillNo ( SysBillNoSet billType , string bsdate , string accdate , string dbname = "" , string opname = "" , string corpid = "" , string bshead = "" )
{
return DoGetBillNo ( billType , bsdate , accdate , dbname = "" , opname = "" , corpid = "" , bshead = "" ) ;
}
}
public static string GetBillNo ( SysBillNoSet billType , string bsdate , string accdate , string dbname = "" , string opname = "" , string corpid = "" , string bshead = "" )
{
return 获 取 业 务 编 号 Helper . Instance . GetBillNo ( billType , bsdate , accdate , dbname , opname , corpid , bshead ) ;
}
public static string DoGetBillNo ( SysBillNoSet billType , string bsdate , string accdate , string dbname = "" , string opname = "" , string corpid = "" , string bshead = "" )
{
var cookies = new Cookies ( ) ;
var orgCode = "" ;
var UserCode = "" ;
Database db = string . IsNullOrWhiteSpace ( dbname ) ? DatabaseFactory . CreateDatabase ( ) : DatabaseFactory . CreateDatabase ( dbname ) ;
//if (dbname != "") db = DatabaseFactory.CreateDatabase(dbname);
if ( opname ! = "" )
{
UserCode = GetUserCode ( opname , dbname ) ;
}
else {
UserCode = cookies . getCookie ( CookieConstant . UserCode ) ; //登录组织
}
if ( corpid ! = "" )
{
orgCode = GetCorpCode ( corpid , dbname ) ;
}
else {
orgCode = cookies . getCookie ( CookieConstant . OrgCode ) ; //登录组织
}
var cmd = db . GetStoredProcCommand ( "sSysGetBillNo_new" ) ;
db . AddInParameter ( cmd , "@ps_BillType" , DbType . String , billType . BILLTYPE ) ;
db . AddInParameter ( cmd , "@ps_OrgCode" , DbType . String , orgCode ) ;
db . AddInParameter ( cmd , "@ps_EmpCode" , DbType . String , UserCode ) ;
db . AddInParameter ( cmd , "@ps_bshead" , DbType . String , bshead ) ;
if ( billType . RULEDATETYPE = = "业务日期" )
db . AddInParameter ( cmd , "@ps_Date" , DbType . String , bsdate ) ;
else if ( billType . RULEDATETYPE = = "会计期间" & & accdate . Length = = 7 )
db . AddInParameter ( cmd , "@ps_Date" , DbType . String , accdate + "-01" ) ;
else
db . AddInParameter ( cmd , "@ps_Date" , DbType . String , "" ) ;
db . AddOutParameter ( cmd , "@ps_BillNo" , DbType . String , 20 ) ;
db . AddInParameter ( cmd , "@ps_RefBillNo" , DbType . String , null ) ;
db . ExecuteNonQuery ( cmd ) ;
var result = Convert . ToString ( db . GetParameterValue ( cmd , "@ps_BillNo" ) ) ;
return result ;
}
public static string GetBillNoHblno ( SysBillNoSet billType , string bsdate , string accdate , string bshead = "" )
{
var cookies = new Cookies ( ) ;
var orgCode = cookies . getCookie ( CookieConstant . OrgCode ) ; //登录组织
var UserCode = cookies . getCookie ( CookieConstant . UserCode ) ; //登录组织
Database db = DatabaseFactory . CreateDatabase ( ) ;
if ( bshead ! = "" ) {
orgCode = "" ;
UserCode = "" ;
}
var cmd = db . GetStoredProcCommand ( "sSysGetBillNo_hblno" ) ;
db . AddInParameter ( cmd , "@ps_BillType" , DbType . String , billType . BILLTYPE ) ;
db . AddInParameter ( cmd , "@ps_OrgCode" , DbType . String , orgCode ) ;
db . AddInParameter ( cmd , "@ps_EmpCode" , DbType . String , UserCode ) ;
db . AddInParameter ( cmd , "@ps_bshead" , DbType . String , bshead ) ;
if ( billType . RULEDATETYPE = = "业务日期" )
db . AddInParameter ( cmd , "@ps_Date" , DbType . String , bsdate ) ;
else if ( billType . RULEDATETYPE = = "会计期间" )
db . AddInParameter ( cmd , "@ps_Date" , DbType . String , accdate + "-01" ) ;
else
db . AddInParameter ( cmd , "@ps_Date" , DbType . String , "" ) ;
db . AddOutParameter ( cmd , "@ps_BillNo" , DbType . String , 20 ) ;
db . AddInParameter ( cmd , "@ps_RefBillNo" , DbType . String , null ) ;
db . ExecuteNonQuery ( cmd ) ;
return Convert . ToString ( db . GetParameterValue ( cmd , "@ps_BillNo" ) ) ;
}
public static string GetTrayNo ( )
{
string trayNO = "" ;
string strSql = "exec Proc_EIP_OrderNo '2001' " ;
Database db = DatabaseFactory . CreateDatabase ( ) ;
using ( IDataReader reader = db . ExecuteReader ( CommandType . Text , strSql . ToString ( ) ) )
{
while ( reader . Read ( ) )
{
trayNO = reader [ "result" ] . ToString ( ) ;
break ;
}
reader . Close ( ) ;
}
return trayNO ;
}
public static string GetFenCustNo ( string masterbsno , string tblname )
{
var strnum = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
var billno = "" ;
var strnumno = "" ;
T_ALL_DA T_ALL_DA = new EntityDA . T_ALL_DA ( ) ;
string mcustno = T_ALL_DA . GetStrSQL ( "custno" , "select top 1 custno from " + tblname + " where bsno='" + masterbsno + "' " ) ;
var strSql = new StringBuilder ( ) ;
strSql . Append ( "select custno from " + tblname + " where bsno<>'" + masterbsno + "' and MASTERNO='" + masterbsno + "' order by CUSTNO" ) ;
var i = 0 ;
Database db = DatabaseFactory . CreateDatabase ( ) ;
using ( IDataReader reader = db . ExecuteReader ( CommandType . Text , strSql . ToString ( ) ) )
{
while ( reader . Read ( ) )
{
var evData = Convert . ToString ( reader [ "custno" ] ) ;
var strnumno1 = evData . Substring ( evData . Length - 1 , 1 ) ;
var strnumno2 = strnum . Substring ( i , 1 ) ;
if ( strnumno1 ! = strnumno2 ) strnumno = strnumno2 ;
i = i + 1 ;
}
reader . Close ( ) ;
}
if ( strnumno = = "" ) strnumno = strnum . Substring ( i , 1 ) ;
billno = mcustno + strnumno ;
return billno ;
}
public static DBResult DeleteBsNo ( string BSNO , string dbname = "" )
{
var result = new DBResult ( ) ;
Database db = DatabaseFactory . CreateDatabase ( ) ;
if ( dbname ! = "" ) db = DatabaseFactory . CreateDatabase ( dbname ) ;
using ( var conn = db . CreateConnection ( ) )
{
conn . Open ( ) ;
var tran = conn . BeginTransaction ( ) ;
try
{
var cmdUpdate =
db . GetSqlStringCommand (
@"update sys_no set ISUSE=1 WHERE BSNO=@BSNO " ) ;
cmdUpdate . Parameters . Clear ( ) ;
db . AddInParameter ( cmdUpdate , "@BSNO" , DbType . String , BSNO ) ;
db . ExecuteNonQuery ( cmdUpdate , tran ) ;
tran . Commit ( ) ;
}
catch ( Exception )
{
tran . Rollback ( ) ;
result . Success = false ;
result . Message = "保存出现错误,请重试或联系系统管理员" ;
return result ;
}
}
result . Success = true ;
result . Message = "保存成功" + result . Message ;
return result ;
}
# endregion
#region 参照部分
# endregion
}
}