191 lines
6.3 KiB
C#
191 lines
6.3 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Configuration;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Web;
|
|
using System.Web.Security;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using System.Web.UI.WebControls.WebParts;
|
|
using System.Web.UI.HtmlControls;
|
|
using Wellan.Common;
|
|
using Wellan.Data;
|
|
using System.Data.Common;
|
|
using CRAX;
|
|
using System.IO;
|
|
|
|
public partial class forms_report_fmCardDailyReport : Wellan.Web.UI.WUserControlBase
|
|
{
|
|
private RasnDAC rasnDao;
|
|
private RparDAC rparDao;
|
|
private ProjectBranchGroupDAC pbgDao;
|
|
|
|
private string 公司名稱;
|
|
private string 專案名稱;
|
|
private string 客戶名稱;
|
|
|
|
private List<ProjectEmployeeItem> 人員Data = null;
|
|
private List<差勤日報表Item> 請假Data = null;
|
|
private List<差勤日報表Item> 加班Data = null;
|
|
private List<差勤日報表Item> 出差Data = null;
|
|
private List<RASNBRHItem> 站別分組 = null;
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
}
|
|
|
|
protected override void OnInit(EventArgs e)
|
|
{
|
|
base.OnInit(e);
|
|
|
|
if (txtDate1.Value.Ticks == 0)
|
|
txtDate1.Value = DateTime.UtcNow.AddHours(8).Date;
|
|
if (txtDate2.Value.Ticks == 0)
|
|
txtDate2.Value = DateTime.UtcNow.AddHours(8).Date;
|
|
|
|
SetClientFocus(txtDate1);
|
|
|
|
rasnDao = new RasnDAC(Query);
|
|
rparDao = new RparDAC(Query);
|
|
pbgDao = new ProjectBranchGroupDAC(Query);
|
|
}
|
|
|
|
protected void btnOk_Click(object sender, EventArgs e)
|
|
{
|
|
cvMessage.IsValid = true;
|
|
cvMessage.ErrorMessage = "";
|
|
|
|
if (!CheckProjectRight())
|
|
return;
|
|
|
|
if (!CheckDateValid())
|
|
return;
|
|
|
|
// 取得並儲存畫面輸入的站別歸屬
|
|
pbgDao.DeleteByProject(ddlRPPYN.SelectedValue);
|
|
foreach (GridViewRow row in gvBranch.Rows)
|
|
{
|
|
var txtGroup = (row.Cells[0].FindControl("txtGroup") as TextBox);
|
|
if (txtGroup != null)
|
|
{
|
|
var group = txtGroup.Text;
|
|
var branchId = txtGroup.Attributes["relatevalue"];
|
|
|
|
if (!string.IsNullOrEmpty(group) && !string.IsNullOrEmpty(branchId))
|
|
{
|
|
pbgDao.Insert(ddlRPPYN.SelectedValue, branchId, group);
|
|
}
|
|
}
|
|
}
|
|
|
|
專案名稱 = GetLookup("BPAA", ddlRPPYN.SelectedValue, "BPPYM");
|
|
|
|
// 取得客戶名稱、公司別
|
|
公司名稱 = CompanyDAC.GetCompanyName(WDAC.GetStringValue(Query.ExecuteScalar(
|
|
@"SELECT BPCPY FROM BPRJ B
|
|
INNER JOIN BPAA C ON B.BPPNM=C.BPPNM
|
|
WHERE C.BPPYN='" + ddlRPPYN.SelectedValue + "'"))); ;
|
|
|
|
客戶名稱 = WDAC.GetStringValue(Query.ExecuteScalar(
|
|
@"SELECT BCNAM FROM BCUS A
|
|
INNER JOIN BPRJ B ON A.BCNUM=B.BPNUM
|
|
INNER JOIN BPAA C ON B.BPPNM=C.BPPNM
|
|
WHERE C.BPPYN='" + ddlRPPYN.SelectedValue + "'"));
|
|
|
|
人員Data = new GetData(Query).GetRASN_DATE_BPPYN(txtDate1.Value, txtDate2.Value, ddlRPPYN.SelectedValue);
|
|
請假Data = rparDao.取得差勤日報表資料(ddlRPPYN.SelectedValue, txtDate1.Value, txtDate2.Value, RPAR_TYPE.T0_請假);
|
|
加班Data = rparDao.取得差勤日報表資料(ddlRPPYN.SelectedValue, txtDate1.Value, txtDate2.Value, RPAR_TYPE.T1_加班);
|
|
出差Data = rparDao.取得差勤日報表資料(ddlRPPYN.SelectedValue, txtDate1.Value, txtDate2.Value, RPAR_TYPE.T3_出差);
|
|
站別分組 = rasnDao.SelectBranchForReport(ddlRPPYN.SelectedValue);
|
|
|
|
if (人員Data.Count != 0)
|
|
{
|
|
Do差勤日報表();
|
|
}
|
|
else
|
|
{
|
|
cvMessage.IsValid = false;
|
|
cvMessage.ErrorMessage = "無符合條件的資料";
|
|
}
|
|
}
|
|
|
|
private void Do差勤日報表()
|
|
{
|
|
var 報表 = new 差勤日報表();
|
|
報表.開始日期 = txtDate1.Value;
|
|
報表.結束日期 = txtDate2.Value;
|
|
報表.公司名稱 = 公司名稱;
|
|
報表.客戶名稱 = 客戶名稱;
|
|
報表.專案名稱 = 專案名稱;
|
|
報表.專案編號 = ddlRPPYN.SelectedValue;
|
|
報表.人員Data = 人員Data;
|
|
報表.請假Data = 請假Data;
|
|
報表.加班Data = 加班Data;
|
|
報表.出差Data = 出差Data;
|
|
報表.站別分組 = 站別分組;
|
|
報表.以時分顯示時數 = new GetData(Query).GetOverTimeToMinutes(ddlRPPYN.SelectedValue);
|
|
|
|
MemoryStream ms = 報表.產生報表();
|
|
ResponseWriteFile(ms, String.Format("差勤日報表_{0}_{1:yyyyMMdd}_{2:yyyyMMdd}.xls", ddlRPPYN.SelectedValue, txtDate1.Value, txtDate2.Value));
|
|
}
|
|
|
|
protected bool CheckProjectRight()
|
|
{
|
|
// 檢查此使用者是否有權限處理這個專案
|
|
BprmDAC bprm = new BprmDAC(Query);
|
|
if (!bprm.GetRight(ddlRPPYN.SelectedValue, UserId))
|
|
{
|
|
cvMessage.ErrorMessage = "對不起,你沒有處理這個專案的權限!";
|
|
cvMessage.IsValid = false;
|
|
pnlGroup.Visible = false;
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
protected void Next_Click(object sender, EventArgs e)
|
|
{
|
|
if (!CheckProjectRight())
|
|
return;
|
|
|
|
pnlGroup.Visible = true;
|
|
gvBranch.DataSource = rasnDao.SelectBranchForForm(ddlRPPYN.SelectedValue);
|
|
gvBranch.DataBind();
|
|
}
|
|
|
|
protected void btnDate_Click(object sender, EventArgs e)
|
|
{
|
|
if (!CheckDateValid())
|
|
return;
|
|
|
|
pnlGroup.Visible = false;
|
|
ddlRPPYN.DataSource = new BpaaDAC().GetBpaa(txtDate1.Value.Year);
|
|
ddlRPPYN.DataBind();
|
|
}
|
|
|
|
private bool CheckDateValid()
|
|
{
|
|
if (txtDate1.Value.Ticks == 0 && txtDate2.Value.Ticks != 0)
|
|
txtDate1.Value = txtDate2.Value;
|
|
if (txtDate2.Value.Ticks == 0 && txtDate1.Value.Ticks != 0)
|
|
txtDate2.Value = txtDate1.Value;
|
|
|
|
if (txtDate1.Value.Ticks == 0 || txtDate2.Value.Ticks == 0)
|
|
{
|
|
cvMessage.ErrorMessage = "開始日期與結束日期都應輸入!";
|
|
cvMessage.IsValid = false;
|
|
return false;
|
|
}
|
|
|
|
// 檢查日期是否跨年
|
|
if (txtDate1.Value.Year != txtDate2.Value.Year)
|
|
{
|
|
cvMessage.ErrorMessage = "日期請勿跨年!";
|
|
cvMessage.IsValid = false;
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
} |