2024-05-08 10:17:02 +08:00
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 显示红色
2024-12-13 15:56:19 +08:00
//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";
// }
//}
2024-05-08 10:17:02 +08:00
//如果(合同过期日-今天)/(合同生效总天数)<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 )
{
2024-12-13 15:56:19 +08:00
e . CellCssClasses [ 14 ] = "colorRed" ;
2024-05-08 10:17:02 +08:00
}
}
}
}
}
}
}
#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
}
}