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
///
/// BindGrid
///
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 listStr = new List();
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 过滤表头
///
/// 过滤表头
///
///
///
protected void Grid1_FilterChange(object sender, EventArgs e)
{
BindGrid();
}
///
/// 根据表头信息过滤列表数据
///
///
///
///
///
///
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 分页、排序
///
/// 分页下拉选择
///
///
///
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行点击事件
///
/// 行点击事件
///
///
///
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 行绑定后事件
///
/// 行绑定后事件
///
///
///
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[14] = "colorRed";
}
}
}
}
}
}
}
#endregion
#region 查询
///
/// 查询
///
///
///
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));
}
///
/// 查询返回值
///
///
///
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
List 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
}
}