namespace QDZXBBCL.ZXBZ
{
class ZHFactorBCL : ISuwfBus
{
private pageMode _mode;
private decimal? _userID = null;
private string _rs_id = null;
private RecordConfig _rc = null;
#region ISuwfBus 成员
private SlnSuwfPage _page;
public void Initial(SlnSuwfPage page)
{
_page = page;
_rs_id = _page.GetValueByName("RS_ID");
if (string.IsNullOrEmpty(_rs_id))
{
_rs_id = "-9999";
}
_rc = new RecordConfig("ZHFACTOR_VALUE", page);
_rc.GroupID = _rs_id;
_page.Load += new EventHandler(_page_Load);
string strIsNew = _page.GetValueByName("isnew");
if (string.IsNullOrEmpty(strIsNew))
{
_page.afterFillGrid += onAfterFillGrid;
}
}
void onAfterFillGrid()
{
int count = _page.GridData.Rows.Count;
List<decimal> rf = null;
rf = ZHFactorSL.GetChoseRationZHFactorForRationSet(decimal.Parse(_rs_id));
for (int i = 0; i < count; i++)
{
DataRow dr = _page.GridData.Rows[i];
string odr = _page.GetRowDataByKey(i, "ZHFACTOR_VALUE_ID");
if (rf.Contains(decimal.Parse(odr)))
{
_page.SetGridRowSelected(i, true);
}
}
string s = "true";
string script = string.Format(@"var _openwin = {0};var mode='{1}';", s, _mode);
_page.ClientScript.RegisterClientScriptBlock(script.GetType(), "openwin", script, true);
}
void _page_Load(object sender, EventArgs e)
{
_mode = clsGridConfig.getPageModeByString(_page.GetValueByName("mode"));
string userid = _page.GetValueByName("sys_userid");
decimal useridtmp = 0;
if (decimal.TryParse(userid, out useridtmp))
{
_userID = useridtmp;
}
Button btn = _page.FindControl("btnSaveZHF") as Button;
if (btn != null)
{
btn.Click += new EventHandler(btnSaveZHF);
}
btn = _page.FindControl("btnSaveZHFNew") as Button;
if (btn != null)
{
btn.Click += new EventHandler(btnSaveZHFNew);
}
btn = _page.FindControl("btnSaveZHFNewN") as Button;
if (btn != null)
{
btn.Click += new EventHandler(btnSaveZHFNewN);
}
btn = _page.FindControl("btnDefined") as Button;
if (btn != null)
{
btn.Click += new EventHandler(btnDefined_Click);
}
btn = _page.FindControl("btnACJQ") as Button;
if (btn != null)
{
btn.Click += new EventHandler(btnACJQ_Click);
}
}
#endregion
void setDataRowValue(DataRow dr, string key, int index)
{
TextBox tb = _page.GetTextBoxInGridCell(index, key);
if (tb != null)
{
if (string.IsNullOrEmpty(tb.Text))
{
dr[key] = DBNull.Value;
}
else
{
dr[key] = tb.Text;
}
}
}
void btnSaveZHF(object sender, EventArgs e)
{
string strMsg = "";
string showMsg = "新增:";
DataTable dt = _page.GridData;
int count = dt.Rows.Count;
decimal rs_id = decimal.Parse(_page.GetValueByName("RS_ID"));
string pk = _page.GetRowDataPrimaryKeys();
if (string.IsNullOrEmpty(pk))
{
showMsg = "全部撤销:";
}
_page.btnSave_Click(null, null);//先保存数据
List<DataRow> zhvIds = _rc.CreateDataRowListWithDataTableOfGrid(dt, delegate(DataRow dr, int index)
{
if (_page.GridRowIsSelected(index))
{
return true;
}
return false;
});
strMsg = ZHFactorValueSL.UpdateZHFactorValuesWithRationSet(rs_id, zhvIds, (decimal)_mode, _userID);
if (!string.IsNullOrEmpty(strMsg))
{
_page.ShowMessage(strMsg);
return;
}
string strJS = "<script type='text/javascript'>"
+ "pWindow = window.parent.parent.parent;"
+ "fr=pWindow.gridframe;"
+ "btn= fr.document.all.btnQuery;"
+ "if(btn != null)"
+ "{btn.click();}"
+ " </script>";
_page.Response.Write(strJS);
// string strJS = "<script type='text/javascript'>"
// + "var pwin=window.parent.parent.gridframe; "
// + " if(pwin!=null){"
//+ "$(\"#btnQuery\",pwin.document).click();}"
// + "</script>";
_page.ShowMessage(showMsg + "执行成功");
_page.btnQuery_Click(sender, e);
}
void btnSaveZHFNew(object sender, EventArgs e)
{
string strMsg = "";
string showMsg = "新增:";
DataTable dt = _page.GridData;
int count = dt.Rows.Count;
decimal rs_id = decimal.Parse(_page.GetValueByName("RS_ID"));
string pk = _page.GetRowDataPrimaryKeys();
if (string.IsNullOrEmpty(pk))
{
showMsg = "全部撤销:";
}
#region
for (int i = 0; i < _page.MainGrid.Rows.Count; i++)
{
string temp = _page.GetRowDataByKey(i, "ZHFACTOR_TYPE");
if (string.IsNullOrEmpty(temp) || temp == "1")
{
_page.GetTextBoxInGridCell(i, "BASEPRICE_TYPE").Text = "";
_page.GetTextBoxInGridCell(i, "BASE_RATE").Text = "";
}
else if (temp == "2")
{
temp = _page.GetRowDataByKey(i, "BASEPRICE_TYPE");
if (string.IsNullOrEmpty(temp))
{
strMsg = strMsg + i + ",基数类型不能为空;";
continue;
}
decimal dRG = 0;
decimal dCL = 0;
decimal dJX = 0;
temp = _page.GetRowDataByKey(i, "RG");
if (!string.IsNullOrEmpty(temp))
{
decimal.TryParse(temp, out dRG);
}
temp = _page.GetRowDataByKey(i, "CL");
if (!string.IsNullOrEmpty(temp))
{
decimal.TryParse(temp, out dCL);
}
temp = _page.GetRowDataByKey(i, "JX");
if (!string.IsNullOrEmpty(temp))
{
decimal.TryParse(temp, out dJX);
}
if (dRG + dCL + dJX != 100)
{
strMsg = strMsg + i + ",数据不正确;";
continue;
}
}
}
if (!string.IsNullOrEmpty(strMsg))
{
_page.ShowMessage(strMsg);
return;
}
#endregion
List<RowCheck> listState = new List<RowCheck>();
for (int i = 0; i < _page.MainGrid.Rows.Count; i++)
{
bool isChecked = false;
Control ckb = _page.MainGrid.Rows[i].FindControl("chkMC");
if (ckb != null && (ckb as CheckBox).Checked)
{
isChecked = true;
}
listState.Add(new RowCheck(i, isChecked));
}
_page.btnSave_Click(null, null);//先保存数据
//onAfterFillGrid();
foreach (RowCheck item in listState)
{
_page.SetGridRowSelected(item.RowIdx, item.Checked);
}
List<DataRow> zhvIds = _rc.CreateDataRowListWithDataTableOfGrid(dt, delegate(DataRow dr, int index)
{
//if (_page.GridRowIsSelected(index))
//{
// return true;
//}
//return false;
bool isSelected = false;
Control ckb = _page.MainGrid.Rows[index].FindControl("chkMC");
if (ckb != null && (ckb as CheckBox).Checked)
{
isSelected = true;
}
return isSelected;
});
strMsg = ZHFactorValueSL.UpdateZHFactorValuesWithRationSet(rs_id, zhvIds, (decimal)_mode, _userID);
if (!string.IsNullOrEmpty(strMsg))
{
_page.ShowMessage(strMsg);
return;
}
string strJS = "<script type='text/javascript'>"
+ "pWindow = window.parent.parent.parent;"
+ "fr=pWindow.gridframe;"
+ "btn= fr.document.all.btnQuery;"
+ "if(btn != null)"
+ "{btn.click();}"
+ " </script>";
_page.Response.Write(strJS);
// string strJS = "<script type='text/javascript'>"
// + "var pwin=window.parent.parent.gridframe; "
// + " if(pwin!=null){"
//+ "$(\"#btnQuery\",pwin.document).click();}"
// + "</script>";
// _page.ClientScript.RegisterClientScriptBlock(typeof(string), "close", strJS, false);
_page.ShowMessage(showMsg + "执行成功");
_page.btnQuery_Click(sender, e);
}
void btnSaveZHFNewN(object sender, EventArgs e)
{
string strMsg = "";
string showMsg = "新增:";
DataTable dt = _page.GridData;
int count = dt.Rows.Count;
decimal rs_id = decimal.Parse(_page.GetValueByName("RS_ID"));
string pk = _page.GetRowDataPrimaryKeys();
if (string.IsNullOrEmpty(pk))
{
showMsg = "全部撤销:";
}
#region
for (int i = 0; i < _page.MainGrid.Rows.Count; i++)
{
string temp = _page.GetRowDataByKey(i, "ZHFACTOR_TYPE");
if (string.IsNullOrEmpty(temp) || temp == "1")
{
_page.GetTextBoxInGridCell(i, "BASEPRICE_TYPE").Text = "";
_page.GetTextBoxInGridCell(i, "BASE_RATE").Text = "";
}
else if (temp == "2")
{
temp = _page.GetRowDataByKey(i, "BASEPRICE_TYPE");
if (string.IsNullOrEmpty(temp))
{
strMsg = strMsg + i + ",基数类型不能为空;";
continue;
}
decimal dRG = 0;
decimal dCL = 0;
decimal dJX = 0;
temp = _page.GetRowDataByKey(i, "RG");
if (!string.IsNullOrEmpty(temp))
{
decimal.TryParse(temp, out dRG);
}
temp = _page.GetRowDataByKey(i, "CL");
if (!string.IsNullOrEmpty(temp))
{
decimal.TryParse(temp, out dCL);
}
temp = _page.GetRowDataByKey(i, "JX");
if (!string.IsNullOrEmpty(temp))
{
decimal.TryParse(temp, out dJX);
}
if (dRG + dCL + dJX != 1)
{
strMsg = strMsg + i + ",分摊比例数据不正确;";
continue;
}
}
}
if (!string.IsNullOrEmpty(strMsg))
{
_page.ShowMessage(strMsg);
return;
}
#endregion
_page.btnSave_Click(null, null);//先保存数据
ZHFactorValueSL.UpdateRSByZHFactorValue(decimal.Parse(_page.GetValueByName("preset")),
_userID, (decimal)_mode);
string str_preset_id = _page.GetValueByName("preset");
if (!string.IsNullOrEmpty(str_preset_id) && !string.IsNullOrEmpty(pk))
{
strMsg = ZHFactorValueSL.DeleteRSByZHFactorValues(str_preset_id, pk);
}
if (!string.IsNullOrEmpty(strMsg))
{
_page.ShowMessage(strMsg);
return;
}
string strJS = "<script type='text/javascript'>"
+ "pWindow = window.parent.parent.parent;"
+ "fr=pWindow.gridframe;"
+ "btn= fr.document.all.btnQuery;"
+ "if(btn != null)"
+ "{btn.click();}"
+ " </script>";
_page.Response.Write(strJS);
_page.ShowMessage("执行成功");
_page.btnQuery_Click(sender, e);
}
void btnACJQ_Click(object sender, EventArgs e)
{
string strZHV_id = _page.GetRowDataPrimaryKey();
if (string.IsNullOrEmpty(strZHV_id))
{
_page.ShowMessage("未选中任何数据");
return;
}
string strPreset_id = _page.GetRowDataByKey("preset_id");
string strMsg = ZHFactorValueSL.UpdateUpdateZHFactorValues(decimal.Parse(strZHV_id),
decimal.Parse(strPreset_id), _userID, (decimal)_mode);
string strJS = "<script type='text/javascript'>"
+ "pWindow = window.parent.parent.parent;"
+ "fr=pWindow.gridframe;"
+ "btn= fr.document.all.btnQuery;"
+ "if(btn != null)"
+ "{btn.click();}"
+ " </script>";
_page.Response.Write(strJS);
_page.btnQuery_Click(null, null);
if (string.IsNullOrEmpty(strMsg))
{
_page.ShowMessage("执行成功!");
}
else
{
_page.ShowMessage(strMsg);
}
}
/// <summary>
/// 页面加载时
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void _page_load_choose()
{
if (string.IsNullOrEmpty(_page.GetValueByName("RS_ID")))
{
return;
}
decimal rsID = decimal.Parse(_page.GetValueByName("RS_ID"));
List<decimal> rf = null;
rf = ZHFactorSL.GetChoseRationZHFactorForRationSet(rsID);
string pk;
for (int i = 0; i < _page.GridData.Rows.Count; i++)
{
pk = _page.GetRowDataByKey(i, "ZHFACTOR_VALUE_ID");
if (!string.IsNullOrEmpty(pk) && rf.Contains(decimal.Parse(pk)))
{
_page.SetGridRowSelected(i, true);
}
TextBox name = _page.GetTextBoxInGridCell(i, "ADD_NAME");
TextBox fm = _page.GetTextBoxInGridCell(i, "FORMULA");
TextBox rg = _page.GetTextBoxInGridCell(i, "RG");
TextBox cl = _page.GetTextBoxInGridCell(i, "CL");
TextBox jx = _page.GetTextBoxInGridCell(i, "JX");
string pid = _page.GetRowDataByKey(i, "preset_id");
if (string.IsNullOrEmpty(pid))
{
name.ReadOnly = true;
fm.ReadOnly = true;
rg.ReadOnly = true;
cl.ReadOnly = true;
jx.Enabled = false;
}
}
}
//void onAfterFillGrid()
//{
// DataTable dtRecordState = null;
// clsGridConfig.buildOptions(_baseOptions, _configOptions, _mode, _page.Unit.ProgUnit);
// if (_mode != pageMode.Common)
// {
// string strOrders = "-99999";
// for (int i = 0; i < _page.GridData.Rows.Count; i++)
// {
// string id = _page.GetRowDataByKey(i, "ZHFACTOR_VALUE_ID");
// strOrders += "," + id;
// }
// dtRecordState = clsGridConfig.getRecordStateByOptionsAndTargets(_baseOptions, strOrders, _rs_id);
// }
// int count = _page.GridData.Rows.Count;
// List<decimal> rf = null;
// rf = ZHFactorSL.GetChoseRationZHFactorForRationSet(decimal.Parse(_rs_id));
// for (int i = 0; i < count; i++)
// {
// DataRow dr = _page.GridData.Rows[i];
// string odr = _page.GetRowDataByKey(i, "ZHFACTOR_VALUE_ID");
// clsGridConfig.setGridTextBoxState(_baseOptions, _page.MainGrid.Rows[i], dtRecordState, odr, _rs_id);
// if (rf.Contains(decimal.Parse(odr)))
// {
// _page.SetGridRowSelected(i, true);
// }
// string iscustom = _page.GetRowDataByKey(i, "ISCUSTOM");
// if (string.IsNullOrEmpty(iscustom) || iscustom == "0")
// {
// clsGridConfig.removeTextBox("ADD_NAME", _page.MainGrid.Rows[i], _baseOptions);
// clsGridConfig.removeTextBox("FORMULA", _page.MainGrid.Rows[i], _baseOptions);
// clsGridConfig.removeTextBox("RG", _page.MainGrid.Rows[i], _baseOptions);
// clsGridConfig.removeTextBox("CL", _page.MainGrid.Rows[i], _baseOptions);
// clsGridConfig.removeTextBox("JX", _page.MainGrid.Rows[i], _baseOptions);
// }
// }
// string s = "true";
// if (_baseOptions.ContainsKey("openwin") && !_baseOptions["openwin"].editable)
// {
// s = "false";
// }
// string script = string.Format(@"var _openwin = {0};var mode='{1}';", s, _mode);
// _page.ClientScript.RegisterClientScriptBlock(script.GetType(), "openwin", script, true);
//}
/// <summary>
/// 撤销增加费
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void btnDelRation_Click(object sender, EventArgs e)
{
string strRs = _page.GetValueByName("RS_ID");
if (string.IsNullOrEmpty(strRs))
{
_page.ShowMessage("没有定额预算ID,请尝试重新打开页面!");
return;
}
decimal rsID = decimal.Parse(strRs);
string msg = ZHFactorValueSL.RepealZHFactorlWithRationSet(rsID);
if (string.IsNullOrEmpty(msg))
{
_page.ShowMessage("撤销成功!");
string strJS = "<script type='text/javascript'>"
+ "var pwin=window.parent.parent.gridframe; "
+ " if(pwin!=null){"
+ "$(\"#btnQuery\",pwin.document).click();}"
+ "</script>";
_page.ClientScript.RegisterClientScriptBlock(typeof(string), "update", strJS, false);
}
else
{
_page.ShowMessage(msg);
}
}
/// <summary>
/// 增加自定义系数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void btnDefined_Click(object sender, EventArgs e)
{
string strPreset = _page.GetValueByName("preset");
if (string.IsNullOrEmpty(strPreset))
{
_page.ShowMessage("没有获取到预算书ID");
return;
}
string msg = ZHFactorSL.CreateUserDefinedZHFctorByPreset(decimal.Parse(strPreset), (decimal)_mode, _userID);
if (string.IsNullOrEmpty(msg))
{
_page.ShowMessage("成功增加一条自定义系数");
_page.btnQuery_Click(null, null);
}
else
{
_page.ShowMessage(msg);
}
}
}
public class RowCheck
{
public RowCheck(int rowIdx, bool ischecked)
{
_rowIdx = rowIdx;
_checked = ischecked;
}
private int _rowIdx;
public int RowIdx
{
get { return _rowIdx; }
set { _rowIdx = value; }
}
private bool _checked;
public bool Checked
{
get { return _checked; }
set { _checked = value; }
}
}
}