using System; using System.Data; using System.Configuration; using System.Data.Common; using System.Collections; using System.Collections.Generic; using Wellan.Data; using Wellan.Common; using System.Transactions; using System.ComponentModel; /// /// 出差費用檔 /// [DataObject] public class RpadDAC : Wellan.Data.WDAC { private string _select = @"SELECT RPREN, RPITM, RPSTP, RPEDP, RPF01, RPF02, RPF03, RPF04, RPF05, RPF06, RPF07, RPF08, RPF09, RPF10, RPSUM, RPDAT, RPJOB, RPVCH, RPDOC, TRDAT, TRMOD, TRUSR FROM RPAD "; public RpadDAC() { } public RpadDAC(string connectionConfig, string connectionConfigName) : this() { this._connectionConfig = connectionConfig; this._connectionConfigName = connectionConfigName; } public RpadDAC(WQuery query) { this._query = query; } [DataObjectMethod(DataObjectMethodType.Select)] public DataTable SelectRpar(string rpren) { DbCommand cmd = Query.NewCommand(); cmd.CommandText = _select + " WHERE RPREN=@RPREN ORDER BY RPITM"; AddParam(cmd, "RPREN", rpren); return Query.Select(cmd); } [DataObjectMethod(DataObjectMethodType.Insert)] public void InsertOne(string userId, string rpren, string rpstp, string rpedp, int rpf01, int rpf02, int rpf03, int rpf04, int rpf05, int rpf06, int rpf07, int rpf08, int rpf09, int rpf10, DateTime rpdat, string rpvch, string rpdoc) { DbCommand cmd = Query.NewCommand(); cmd.CommandText = @"INSERT INTO RPAD (RPREN, RPITM, RPSTP, RPEDP, RPF01, RPF02, RPF03, RPF04, RPF05, RPF06, RPF07, RPF08, RPF09, RPF10, RPSUM, RPDAT, RPVCH, RPDOC, TRDAT, TRMOD, TRUSR) VALUES (@RPREN, @RPITM, @RPSTP, @RPEDP, @RPF01, @RPF02, @RPF03, @RPF04, @RPF05, @RPF06, @RPF07, @RPF08, @RPF09, @RPF10, @RPSUM, @RPDAT, @RPVCH, @RPDOC, GETDATE(), 'INSERT', @TRUSR)"; AddParam(cmd, "RPREN", rpren); AddParam(cmd, "RPITM", GetNextRpitm(rpren)); AddParam(cmd, "RPSTP", rpstp); AddParam(cmd, "RPEDP", rpedp); AddParam(cmd, "RPF01", rpf01); AddParam(cmd, "RPF02", rpf02); AddParam(cmd, "RPF03", rpf03); AddParam(cmd, "RPF04", rpf04); AddParam(cmd, "RPF05", rpf05); AddParam(cmd, "RPF06", rpf06); AddParam(cmd, "RPF07", rpf07); AddParam(cmd, "RPF08", rpf08); AddParam(cmd, "RPF09", rpf09); AddParam(cmd, "RPF10", rpf10); AddParam(cmd, "RPSUM", rpf01 + rpf02 + rpf03 + rpf04 + rpf05 + rpf06 + rpf07 + rpf08 + rpf09 + rpf10); AddParam(cmd, "RPDAT", rpdat); AddParam(cmd, "RPVCH", rpvch); AddParam(cmd, "RPDOC", rpdoc); AddParam(cmd, "TRUSR", userId); Query.ExecuteNonQuery(cmd); UpdateRpar(rpren); } [DataObjectMethod(DataObjectMethodType.Update)] public void UpdateOne(string userId, string rpren, int rpitm, string rpstp, string rpedp, int rpf01, int rpf02, int rpf03, int rpf04, int rpf05, int rpf06, int rpf07, int rpf08, int rpf09, int rpf10, DateTime rpdat, string rpvch, string rpdoc) { DbCommand cmd = Query.NewCommand(); cmd.CommandText = @"UPDATE RPAD SET RPSTP = @RPSTP, RPEDP = @RPEDP, RPF01 = @RPF01, RPF02 = @RPF02, RPF03 = @RPF03, RPF04 = @RPF04, RPF05 = @RPF05, RPF06 = @RPF06, RPF07 = @RPF07, RPF08 = @RPF08, RPF09 = @RPF09, RPF10 = @RPF10, RPSUM = @RPSUM, RPDAT = @RPDAT, RPVCH = @RPVCH, RPDOC = @RPDOC, TRDAT = GETDATE(), TRMOD = 'UPDATE', TRUSR = @TRUSR WHERE RPREN = @RPREN AND RPITM = @RPITM"; AddParam(cmd, "RPSTP", rpstp); AddParam(cmd, "RPEDP", rpedp); AddParam(cmd, "RPF01", rpf01); AddParam(cmd, "RPF02", rpf02); AddParam(cmd, "RPF03", rpf03); AddParam(cmd, "RPF04", rpf04); AddParam(cmd, "RPF05", rpf05); AddParam(cmd, "RPF06", rpf06); AddParam(cmd, "RPF07", rpf07); AddParam(cmd, "RPF08", rpf08); AddParam(cmd, "RPF09", rpf09); AddParam(cmd, "RPF10", rpf10); AddParam(cmd, "RPSUM", rpf01 + rpf02 + rpf03 + rpf04 + rpf05 + rpf06 + rpf07 + rpf08 + rpf09 + rpf10); AddParam(cmd, "RPDAT", rpdat); AddParam(cmd, "RPVCH", rpvch); AddParam(cmd, "RPDOC", rpdoc); AddParam(cmd, "TRUSR", userId); AddParam(cmd, "RPREN", rpren); AddParam(cmd, "RPITM", rpitm); Query.ExecuteNonQuery(cmd); UpdateRpar(rpren); } [DataObjectMethod(DataObjectMethodType.Delete)] public void DeleteOne(string rpren, int rpitm) { DbCommand cmd = Query.NewCommand(); cmd.CommandText = @"DELETE FROM RPAD WHERE RPREN = @RPREN AND RPITM = @RPITM"; AddParam(cmd, "RPREN", rpren); AddParam(cmd, "RPITM", rpitm); Query.ExecuteNonQuery(cmd); UpdateRpar(rpren); } public void DeleteByRpren(string rpren) { DbCommand cmd = Query.NewCommand(); cmd.CommandText = @"DELETE FROM RPAD WHERE RPREN = @RPREN"; AddParam(cmd, "RPREN", rpren); Query.ExecuteNonQuery(cmd); UpdateRpar(rpren); } private int GetNextRpitm(string rpren) { DbCommand cmd = Query.NewCommand(); cmd.CommandText = @"SELECT ISNULL(MAX(RPITM), 0) + 1 FROM RPAD WHERE RPREN=@RPREN"; AddParam(cmd, "RPREN", rpren); return WDAC.GetInt32Value(Query.ExecuteScalar(cmd)); } private void UpdateRpar(string rpren) { DbCommand cmd1 = Query.NewCommand(); cmd1.CommandText = @"UPDATE RPAR SET RPFTR = (SELECT ISNULL(SUM(RPSUM), 0) FROM RPAD WHERE RPREN=@RPREN) WHERE RPREN=@RPREN"; AddParam(cmd1, "RPREN", rpren); Query.ExecuteNonQuery(cmd1); } }