491 lines
20 KiB
C#
491 lines
20 KiB
C#
using BLL;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
|
|
namespace FineUIPro.Web.common
|
|
{
|
|
public partial class main : PageBase
|
|
{
|
|
#region 加载
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
// 表头过滤
|
|
FilterDataRowItem = FilterDataRowItemImplement;
|
|
if (!IsPostBack)
|
|
{
|
|
StartTime.Text = DateTime.Now.AddMonths(-11).ToString(StartTime.DateFormatString);
|
|
EndTime.Text = DateTime.Now.ToString(EndTime.DateFormatString);
|
|
|
|
rStartTime.Text = DateTime.Now.AddMonths(-11).ToString("yyyy-MM-dd");
|
|
rEndTime.Text = DateTime.Now.ToString("yyyy-MM-dd");
|
|
|
|
this.BindGrid();
|
|
|
|
this.Grid1.SelectedRowIndex = 0;
|
|
}
|
|
else if (GetRequestEventArgument() == "FilterChange")
|
|
{
|
|
BindGrid();
|
|
}
|
|
}
|
|
|
|
#region 绑定 Grid1
|
|
/// <summary>
|
|
/// BindGrid
|
|
/// </summary>
|
|
private void BindGrid()
|
|
{
|
|
string strSql = @" SELECT fc.ID, fc.FO_NO,
|
|
(CASE WHEN dis.Discipline IS NULL THEN dis.DisciplineCN
|
|
WHEN dis.DisciplineCN IS NULL THEN dis.Discipline
|
|
ELSE dis.Discipline+dis.DisciplineCN END) AS Discipline,
|
|
con.Contractor AS Contractor, fc.Pricing_Scheme as Pricing_SchemeId,
|
|
ps.PriceScheme AS Pricing_Scheme, fc.Original_WC,fc.Contractor,
|
|
fc.Contract_Admin as Contract_AdminId,CA.UserName AS Contract_Admin, fc.Buyer,
|
|
mc.UserName AS Main_Coordinator, ur.UserName AS User_Representative,
|
|
fc.Contract_Person, fc.Contract_Tel,fc.Validate_Date, fc.Expire_Date,
|
|
CONVERT(VARCHAR(10),CONVERT(DECIMAL(18,2),(fc.Actual_Budget-ISNULL(c.CheckedValue,0))/fc.Actual_Budget*100))+'%' AS Remaining_Budget_Rate,
|
|
(CASE WHEN DATEDIFF(DAY,fc.Validate_Date,fc.Expire_Date)>0
|
|
THEN CONVERT(VARCHAR(10),CONVERT(DECIMAL(18,2),CONVERT(DECIMAL(18,2),DATEDIFF(DAY,GETDATE(),fc.Expire_Date))/CONVERT(DECIMAL(18,2),DATEDIFF(DAY,fc.Validate_Date,fc.Expire_Date))*100))+'%'
|
|
ELSE ''END) AS Remaining_Duration_Rate
|
|
FROM dbo.FC_SESRelatedData AS fc
|
|
LEFT JOIN dbo.Base_Contractor AS con ON con.ContractorId = fc.Contractor
|
|
LEFT JOIN dbo.Base_PriceScheme AS ps ON ps.PriceSchemeId = fc.Pricing_Scheme
|
|
LEFT JOIN dbo.Sys_User AS CA ON CA.UserId = fc.Contract_Admin
|
|
LEFT JOIN dbo.Sys_User AS mc ON mc.UserId = fc.Main_Coordinator
|
|
LEFT JOIN dbo.Sys_User AS ur ON ur.UserId = fc.User_Representative
|
|
LEFT JOIN dbo.Base_Discipline AS dis ON dis.DisciplineId = fc.DisciplineId
|
|
LEFT JOIN(SELECT SUM(Net_Value) AS CheckedValue,CPTList.Contract_No FROM dbo.SESList
|
|
LEFT JOIN dbo.CPTList ON CPTList.CPT_No = SESList.CPT_No GROUP BY CPTList.Contract_No) AS c ON c.Contract_No=fc.FO_NO
|
|
WHERE 1=1 ";
|
|
|
|
List<SqlParameter> listStr = new List<SqlParameter>();
|
|
if (this.drpValidContracts.SelectedValue == "1")
|
|
{
|
|
strSql += " AND fc.Expire_Date >= @expire_Date";
|
|
listStr.Add(new SqlParameter("@expire_Date", DateTime.Now));
|
|
}
|
|
if (!string.IsNullOrEmpty(this.txtDescription.Text.Trim()))
|
|
{
|
|
strSql += " AND fc.Contract_Title LIKE @Description";
|
|
listStr.Add(new SqlParameter("@Description", "%" + this.txtDescription.Text.Trim() + "%"));
|
|
}
|
|
if (!string.IsNullOrEmpty(this.txtContractor.Text.Trim()))
|
|
{
|
|
strSql += " AND con.Contractor LIKE @Contractor";
|
|
listStr.Add(new SqlParameter("@Contractor", "%" + this.txtContractor.Text.Trim() + "%"));
|
|
}
|
|
if (!string.IsNullOrEmpty(this.hdKeyword.Text.Trim()))
|
|
{
|
|
strSql += " AND con.Contractor LIKE @Contractor";
|
|
listStr.Add(new SqlParameter("@Contractor", "%" + this.hdKeyword.Text.Trim() + "%"));
|
|
}
|
|
if (!string.IsNullOrEmpty(this.hdContractNo.Text.Trim()))
|
|
{
|
|
strSql += " AND fc.FO_NO LIKE @FO_NO";
|
|
listStr.Add(new SqlParameter("@FO_NO", "%" + this.hdContractNo.Text.Trim() + "%"));
|
|
}
|
|
if (!string.IsNullOrEmpty(this.hdContractAdmin.Text.Trim()))
|
|
{
|
|
strSql += " AND fc.Contract_Admin = @contractAdmin";
|
|
listStr.Add(new SqlParameter("@contractAdmin", this.hdContractAdmin.Text.Trim()));
|
|
}
|
|
if (!string.IsNullOrEmpty(this.hdPricingScheme.Text.Trim()))
|
|
{
|
|
strSql += " AND fc.Pricing_Scheme=@PriceScheme";
|
|
listStr.Add(new SqlParameter("@PriceScheme", hdPricingScheme.Text.Trim()));
|
|
}
|
|
//strSql += " GROUP BY data.ID,data.FO_NO,data.Contract_Title,con.Contractor,ps.PriceScheme,data.Actual_Budget,data.Original_WC,data.Contractor,CA.UserName,b.UserName,mc.UserName,ur.UserName,cp.UserName,data.Contract_Tel,data.Validate_Date,data.Expire_Date";
|
|
SqlParameter[] parameter = listStr.ToArray();
|
|
|
|
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
|
|
Grid1.RecordCount = tb.Rows.Count;
|
|
tb = GetFilteredTable(Grid1.FilteredData, tb);
|
|
var table = this.GetPagedDataTable(Grid1, tb);
|
|
Grid1.DataSource = table;
|
|
Grid1.DataBind();
|
|
if (tb.Rows.Count > 0)
|
|
{
|
|
hidFO_NO.Text = this.Grid1.Rows[0].Values[1].ToString();
|
|
hidVendor_Name.Text = this.Grid1.Rows[0].Values[3].ToString();
|
|
PageContext.RegisterStartupScript("PagePostBank();");
|
|
}
|
|
else
|
|
{
|
|
Alert.ShowInParent("No record!");
|
|
}
|
|
}
|
|
#endregion
|
|
#endregion
|
|
|
|
#region 过滤表头
|
|
/// <summary>
|
|
/// 过滤表头
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Grid1_FilterChange(object sender, EventArgs e)
|
|
{
|
|
BindGrid();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据表头信息过滤列表数据
|
|
/// </summary>
|
|
/// <param name="sourceObj"></param>
|
|
/// <param name="fillteredOperator"></param>
|
|
/// <param name="fillteredObj"></param>
|
|
/// <param name="column"></param>
|
|
/// <returns></returns>
|
|
private bool FilterDataRowItemImplement(object sourceObj, string fillteredOperator, object fillteredObj, string column)
|
|
{
|
|
bool valid = false;
|
|
if (column == "FO_NO")
|
|
{
|
|
string sourceValue = sourceObj.ToString();
|
|
string fillteredValue = fillteredObj.ToString();
|
|
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
|
|
{
|
|
valid = true;
|
|
}
|
|
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
|
|
{
|
|
valid = true;
|
|
}
|
|
}
|
|
if (column == "Contract_Title")
|
|
{
|
|
string sourceValue = sourceObj.ToString();
|
|
string fillteredValue = fillteredObj.ToString();
|
|
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
|
|
{
|
|
valid = true;
|
|
}
|
|
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
|
|
{
|
|
valid = true;
|
|
}
|
|
}
|
|
if (column == "Contractor")
|
|
{
|
|
string sourceValue = sourceObj.ToString();
|
|
string fillteredValue = fillteredObj.ToString();
|
|
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
|
|
{
|
|
valid = true;
|
|
}
|
|
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
|
|
{
|
|
valid = true;
|
|
}
|
|
}
|
|
if (column == "Pricing_Scheme")
|
|
{
|
|
string sourceValue = sourceObj.ToString();
|
|
string fillteredValue = fillteredObj.ToString();
|
|
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
|
|
{
|
|
valid = true;
|
|
}
|
|
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
|
|
{
|
|
valid = true;
|
|
}
|
|
}
|
|
if (column == "Original_WC")
|
|
{
|
|
string sourceValue = sourceObj.ToString();
|
|
string fillteredValue = fillteredObj.ToString();
|
|
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
|
|
{
|
|
valid = true;
|
|
}
|
|
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
|
|
{
|
|
valid = true;
|
|
}
|
|
}
|
|
if (column == "Contract_Admin")
|
|
{
|
|
string sourceValue = sourceObj.ToString();
|
|
string fillteredValue = fillteredObj.ToString();
|
|
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
|
|
{
|
|
valid = true;
|
|
}
|
|
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
|
|
{
|
|
valid = true;
|
|
}
|
|
}
|
|
if (column == "Buyer")
|
|
{
|
|
string sourceValue = sourceObj.ToString();
|
|
string fillteredValue = fillteredObj.ToString();
|
|
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
|
|
{
|
|
valid = true;
|
|
}
|
|
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
|
|
{
|
|
valid = true;
|
|
}
|
|
}
|
|
if (column == "Main_Coordinator")
|
|
{
|
|
string sourceValue = sourceObj.ToString();
|
|
string fillteredValue = fillteredObj.ToString();
|
|
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
|
|
{
|
|
valid = true;
|
|
}
|
|
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
|
|
{
|
|
valid = true;
|
|
}
|
|
}
|
|
if (column == "User_Representative")
|
|
{
|
|
string sourceValue = sourceObj.ToString();
|
|
string fillteredValue = fillteredObj.ToString();
|
|
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
|
|
{
|
|
valid = true;
|
|
}
|
|
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
|
|
{
|
|
valid = true;
|
|
}
|
|
}
|
|
if (column == "Contract_Person")
|
|
{
|
|
string sourceValue = sourceObj.ToString();
|
|
string fillteredValue = fillteredObj.ToString();
|
|
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
|
|
{
|
|
valid = true;
|
|
}
|
|
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
|
|
{
|
|
valid = true;
|
|
}
|
|
}
|
|
if (column == "Contract_Tel")
|
|
{
|
|
string sourceValue = sourceObj.ToString();
|
|
string fillteredValue = fillteredObj.ToString();
|
|
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
|
|
{
|
|
valid = true;
|
|
}
|
|
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
|
|
{
|
|
valid = true;
|
|
}
|
|
}
|
|
if (column == "Validate_Date")
|
|
{
|
|
string sourceValue = sourceObj.ToString();
|
|
string fillteredValue = fillteredObj.ToString();
|
|
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
|
|
{
|
|
valid = true;
|
|
}
|
|
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
|
|
{
|
|
valid = true;
|
|
}
|
|
}
|
|
if (column == "Expire_Date")
|
|
{
|
|
string sourceValue = sourceObj.ToString();
|
|
string fillteredValue = fillteredObj.ToString();
|
|
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
|
|
{
|
|
valid = true;
|
|
}
|
|
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
|
|
{
|
|
valid = true;
|
|
}
|
|
}
|
|
if (column == "Remaining_Budget_Rate")
|
|
{
|
|
string sourceValue = sourceObj.ToString();
|
|
string fillteredValue = fillteredObj.ToString();
|
|
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
|
|
{
|
|
valid = true;
|
|
}
|
|
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
|
|
{
|
|
valid = true;
|
|
}
|
|
}
|
|
if (column == "Remaining_Duration_Rate")
|
|
{
|
|
string sourceValue = sourceObj.ToString();
|
|
string fillteredValue = fillteredObj.ToString();
|
|
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
|
|
{
|
|
valid = true;
|
|
}
|
|
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
|
|
{
|
|
valid = true;
|
|
}
|
|
}
|
|
return valid;
|
|
}
|
|
#endregion
|
|
|
|
#region 分页、排序
|
|
/// <summary>
|
|
/// 分页下拉选择
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
|
|
BindGrid();
|
|
}
|
|
|
|
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
|
|
{
|
|
Grid1.PageIndex = e.NewPageIndex;
|
|
BindGrid();
|
|
}
|
|
|
|
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
|
|
{
|
|
Grid1.SortDirection = e.SortDirection;
|
|
Grid1.SortField = e.SortField;
|
|
|
|
BindGrid();
|
|
}
|
|
#endregion
|
|
|
|
#region Grid1行点击事件
|
|
/// <summary>
|
|
/// 行点击事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Grid1_RowClick(object sender, GridRowClickEventArgs e)
|
|
{
|
|
hidFO_NO.Text = this.Grid1.SelectedRow.Values[1].ToString();
|
|
hidVendor_Name.Text = this.Grid1.SelectedRow.Values[3].ToString();
|
|
PageContext.RegisterStartupScript("PagePostBank();");
|
|
}
|
|
#endregion
|
|
|
|
#region DropDownList下拉选择事件
|
|
///查询
|
|
protected void DropDownList_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
BindGrid();
|
|
}
|
|
#endregion
|
|
|
|
#region 行绑定后事件
|
|
/// <summary>
|
|
/// 行绑定后事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
|
|
{
|
|
DataRowView row = e.DataItem as DataRowView;
|
|
string id = row["ID"].ToString();
|
|
//for (int i = 0; i < this.Grid1.Rows.Count; i++)
|
|
{
|
|
if (!string.IsNullOrEmpty(id))
|
|
{
|
|
var data = BLL.SESRelatedDataService.GetSESRelatedDataById(id);
|
|
if (data != null)
|
|
{
|
|
if (data.Expire_Date.HasValue)
|
|
{
|
|
if (data.Expire_Date < DateTime.Now)//过期行字体显示灰色
|
|
{
|
|
e.RowCssClass = "color2";
|
|
}
|
|
else if (data.Expire_Date.Value.AddMonths(-6) <= DateTime.Now && data.Expire_Date > DateTime.Now)//六个月后过期行字体显示棕色
|
|
{
|
|
e.RowCssClass = "color1";
|
|
}
|
|
}
|
|
|
|
//Remaining Budget/Contract Budget<10 显示红色
|
|
var checkedValue = BLL.SESReportService.getSumSSRActualCostByFo(data.FO_NO);
|
|
var remainmingBudget = data.Actual_Budget - checkedValue;
|
|
if (data.Actual_Budget > 0)
|
|
{
|
|
var remainmingBudgetRate = remainmingBudget / data.Actual_Budget * 100;
|
|
if (remainmingBudgetRate < 10)
|
|
{
|
|
e.CellCssClasses[14] = "colorRed";
|
|
}
|
|
}
|
|
|
|
//如果(合同过期日-今天)/(合同生效总天数)<10显示红色
|
|
if (data.Validate_Date.HasValue && data.Expire_Date.HasValue)
|
|
{
|
|
decimal a = (data.Expire_Date - DateTime.Now).Value.Days;
|
|
decimal b = (data.Expire_Date - data.Validate_Date).Value.Days;//合同生效总天数
|
|
if (b > 0)
|
|
{
|
|
decimal c = a / b * 100;
|
|
if (c < 10)
|
|
{
|
|
e.CellCssClasses[15] = "colorRed";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 查询
|
|
/// <summary>
|
|
/// 查询
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnSearch_Click(object sender, EventArgs e)
|
|
{
|
|
string s = this.hdKeyword.Text.Trim() + "|" +
|
|
this.hdContractNo.Text.Trim() + "|" +
|
|
this.hdContractAdmin.Text.Trim() + "|" +
|
|
this.hdPricingScheme.Text.Trim() + "|";
|
|
|
|
string window = String.Format("MainSearch.aspx?s={0}", s, "查询 - ");
|
|
PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hdItemsString.ClientID) + Window1.GetShowReference(window));
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询返回值
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Window1_Close(object sender, WindowCloseEventArgs e)
|
|
{
|
|
List<string> lists = Funs.GetStrListByStr(hdItemsString.Text, '|');
|
|
|
|
this.hdKeyword.Text = lists[0];
|
|
this.hdContractNo.Text = lists[1];
|
|
this.hdContractAdmin.Text = lists[2];
|
|
this.hdPricingScheme.Text = lists[3];
|
|
|
|
BindGrid();
|
|
}
|
|
#endregion
|
|
}
|
|
}
|