179 lines
5.9 KiB
C#
179 lines
5.9 KiB
C#
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;
|
|
|
|
/// <summary>
|
|
/// 出差費用檔
|
|
/// </summary>
|
|
[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);
|
|
}
|
|
} |