using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace LYFZ.Software.MainBusiness.FinancialManagement.OrdersReceivables
{
public partial class FrmSelectPayOpenSingle : LYFZ.Software.UI.FinancialManagement.OrdersReceivables.FrmSelectPayOpenSingle
{
public string Str1 = "";
public string Str2 = "";
public string Str3 = "";
DataTable departUserDt;
DataTable companyDt;
///
/// 是否显示离职人员
///
public bool IsShowResign;
public FrmSelectPayOpenSingle()
{
btn_Filter.Click += Btn_Filter_Click;
departUserDt = LYFZ.DAL.DAL_ErpUser.GetCompanyDepartmentDataTable;
companyDt = new BLL.BLL_UserRightsTable().GetUserRightsTableByUid(BLL.BLL_ErpUser.UsersModel.User_EmployeeID);
tb_Person.EventTextBoxEx_TextChanged += Tb_Person_EventTextBoxEx_TextChanged;
}
private void Tb_Person_EventTextBoxEx_TextChanged(object sender, EventArgs e)
{
Btn_Filter_Click(sender, e);
}
private void Btn_Filter_Click(object sender, EventArgs e)
{
this.treevOrdersPersonnel.Nodes.Clear();
if (!string.IsNullOrEmpty(tb_Person.Text))
{
List filterList = departUserDt.AsEnumerable().Where(p =>
p.Field("姓名").Contains(tb_Person.Text)
|| BLL.Common.BLL_Com_Data.GetSpellCode(p.Field("姓名")).Contains(tb_Person.Text.ToUpper())).ToList();
if (filterList.Count > 0)
{
DataTable filterUserList = filterList.CopyToDataTable();
BindOrderPersonnelCompanyDepartmentUser(
filterUserList,
companyDt.AsEnumerable().CopyToDataTable()
);
}
this.treevOrdersPersonnel.ExpandAll();
}
else
{
BindOrderPersonnelCompanyDepartmentUser(
departUserDt,
companyDt.AsEnumerable().CopyToDataTable()
);
}
}
private void BindOrderPersonnelCompanyDepartmentUser(DataTable dt, DataTable dataTable)
{
//dt = LYFZ.DAL.DAL_ErpUser.GetCompanyDepartmentDataTable;
//dataTable = new BLL.BLL_UserRightsTable().GetUserRightsTableByUid(BLL.BLL_ErpUser.UsersModel.User_EmployeeID);
Dictionary companyList = new Dictionary();
if (dataTable.Rows.Count > 0)
{
foreach (DataRow dr in dataTable.Rows)
{
companyList.Add(dr["Urt_SID"].ToString(), dr["Company_Name"].ToString());
}
}
else
{
//companyList.Add(BLL.BLL_ErpUser.UsersModel.User_DividedShop);
companyList.Add(BLL.BLL_ErpUser.UsersModel.User_DividedShop, BLL.BLL_ErpUser.UsersModel.User_DividedShop);
}
//List drList = dt.AsEnumerable().Where(p => companyList.Contains(p.Field("User_DividedShop"))).ToList();
if (companyList.Count > 0)
{
foreach (string key in companyList.Keys)
{
TreeNode root = null;
List drList = dt.AsEnumerable().Where(p => key.Contains(p.Field("User_DividedShop"))).ToList();
Dictionary departmentDic = new Dictionary();
root = new TreeNode(companyList[key]);
foreach (DataRow dr in drList)
{
if (!departmentDic.ContainsKey(dr["User_Department"].ToString_s()))
{
departmentDic.Add(dr["User_Department"].ToString_s(), dr["部门"].ToString_s());
}
}
foreach (string dpkey in departmentDic.Keys)
{
TreeNode trNode = new TreeNode(departmentDic[dpkey].ToString_s());
//root = new TreeNode(drList[i]["Dt_Name"].ToString());
this.CreateTreeViewDepartmentUser(trNode.Nodes, dpkey.ToString(), key, drList);
root.Nodes.Add(trNode);
}
this.treevOrdersPersonnel.Nodes.Add(root);
}
this.treevOrdersPersonnel.Nodes[0].Expand();
}
}
DataTable ustbl = new DataTable();
///
/// 绑定第二级人员
///
/// TreeView的节点集合
/// 数据源
///
private void CreateTreeViewDepartmentUser(TreeNodeCollection nodes, string ClassCode, string divShopID, List userDrList = null)
{
if (ClassCode != "")
{
if (userDrList == null)
{
if (ustbl.Rows.Count <= 0)
{ ustbl = LYFZ.Software.MainBusiness.DoorCityProcess.PublicGetVersionDataTable.GetUserTable(IsShowResign); }
DataRow[] dtRow = ustbl.Select("User_Department='" + ClassCode + "' and User_DividedShop='" + divShopID + "'");
if (dtRow.Length > 0)
{
TreeNode node;
for (int i = 0; i < dtRow.Length; i++)
{
node = new TreeNode();
node.Text = dtRow[i]["User_Name"].ToString();
node.Tag = dtRow[i]["User_EmployeeID"].ToString();
node.Name = dtRow[i]["User_Account"].ToString();
nodes.Add(node);
}
}
}
else
{
DataRow[] dtRow = userDrList.Where(p => p.Field("User_Department") == ClassCode).ToArray();
if (dtRow.Length > 0)
{
TreeNode node;
for (int i = 0; i < dtRow.Length; i++)
{
node = new TreeNode();
node.Text = dtRow[i]["姓名"].ToString();
node.Tag = dtRow[i]["User_EmployeeID"].ToString();
node.Name = dtRow[i]["用户帐号"].ToString();
nodes.Add(node);
}
}
}
}
}
#region 加载
protected override void FrmSelectPayOpenSingle_Shown(object sender, EventArgs e)
{
try
{
BindOrderPersonnelCompanyDepartmentUser(
departUserDt.AsEnumerable().CopyToDataTable(),
companyDt.AsEnumerable().CopyToDataTable()
);
//DataTable tbl = new BLL.BLL_ErpDepartment().GetAllList(filedOrder:"ID").Tables[0];
//if (tbl.Rows.Count > 0)
//{
// TreeNode root = null;
// for (int i = 0; i < tbl.Rows.Count; i++)
// {
// //if (i == 0)
// //{
// // root = new TreeNode(" ");
// // this.treevOrdersPersonnel.Nodes.Add(root);
// //}
// root = new TreeNode(tbl.Rows[i]["Dt_Name"].ToString());
// this.CreateTreeViewDepartmentUser(root.Nodes, tbl.Rows[i]["ID"].ToString());
// this.treevOrdersPersonnel.Nodes.Add(root);
// }
// this.treevOrdersPersonnel.Nodes[0].Expand();
//}
//if (this.txtPersonnel.Tag != null)
//{
// string[] Str_Key = this.txtPersonnel.Text.Trim().Split(',');
// string[] Str_Value = this.txtPersonnel.Tag.ToString().Trim().Split('|')[0].Trim().Split(',');
// string[] Str_Tag = this.txtPersonnel.Tag.ToString().Trim().Split('|')[1].Trim().Split(',');
// for (int i = 0; i < Str_Key.Length; i++)
// {
// DataGridViewRow dgvr = new DataGridViewRow();
// DataGridViewTextBoxCell cell = null;
// cell = new DataGridViewTextBoxCell();
// cell.Value = Str_Key[i].Trim();
// dgvr.Cells.Add(cell);
// cell = new DataGridViewTextBoxCell();
// cell.Value = Str_Value[i].Trim();
// dgvr.Cells.Add(cell);
// cell = new DataGridViewTextBoxCell();
// cell.Value = Str_Tag[i].Trim() == "1" ? this.rdoVStore.Text.Trim() : this.rdoMStore.Text.Trim();
// dgvr.Cells.Add(cell);
// this.dgvData.Rows.Add(dgvr);
// }
//}
}
catch (Exception ex)
{
MessageBoxCustom.Show(ex.Message);
}
}
#region 创建人员
private void CreateTreeViewDepartmentUser(TreeNodeCollection nodes, string ClassCode)
{
if (ClassCode != "")
{
LYFZ.BLL.BLL_ErpUser BLLerpuser = new BLL.BLL_ErpUser();
DataTable tbl = BLLerpuser.GetList(" User_Department='" + ClassCode + "' and id!='1' and User_Status='在职'").Tables[0];
if (tbl.Rows.Count > 0)
{
TreeNode node;
for (int i = 0; i < tbl.Rows.Count; i++)
{
node = new TreeNode();
node.Text = tbl.Rows[i]["User_Name"].ToString();
node.Tag = tbl.Rows[i]["User_EmployeeID"].ToString();
node.Name = tbl.Rows[i]["User_Account"].ToString();
nodes.Add(node);
}
}
}
}
#endregion
#endregion
#region 增加
protected override void btnRight_Click(object sender, EventArgs e)
{
try
{
if (dgvData.Rows.Count == 4)
{
MessageBoxCustom.Show("最多只能选择4个人员");
return;
}
if (this.treevOrdersPersonnel.Nodes.Count > 0)
{
if (this.treevOrdersPersonnel.SelectedNode.Nodes.Count == 0)//判断选中节点是否有子节点
{
if (this.treevOrdersPersonnel.SelectedNode.Level > 0)
{
bool bl = true;
for (int i = 0; i < this.dgvData.Rows.Count; i++)
{
if (this.dgvData.Rows[i].Cells["UserNumber"].Value == this.treevOrdersPersonnel.SelectedNode.Tag)
{ bl = false; break; }
}
if (bl == true)
{
#region
DataGridViewRow dgvr = new DataGridViewRow();
DataGridViewTextBoxCell cell = null;
cell = new DataGridViewTextBoxCell();
cell.Value = this.treevOrdersPersonnel.SelectedNode.Text.ToString();
dgvr.Cells.Add(cell);
cell = new DataGridViewTextBoxCell();
cell.Value = this.treevOrdersPersonnel.SelectedNode.Tag.ToString();
dgvr.Cells.Add(cell);
cell = new DataGridViewTextBoxCell();
if (dgvData.Rows.Count == 0)
{
cell.Value = "100";
}
else
{
cell.Value = "0";
}
dgvr.Cells.Add(cell);
this.dgvData.Rows.Add(dgvr);
#endregion
}
}
}
}
}
catch (Exception ex)
{
MessageBoxCustom.Show(ex.Message);
}
}
#endregion
#region 双击树增加
protected override void treevOrdersPersonnel_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
{
try
{
if (dgvData.Rows.Count > 8)
{
MessageBoxCustom.Show("最多只能选择8个人员");
return;
}
if (this.treevOrdersPersonnel.Nodes.Count > 0)
{
if (this.treevOrdersPersonnel.SelectedNode != null)
{
if (this.treevOrdersPersonnel.SelectedNode.Nodes.Count == 0)//判断选中节点是否有子节点
{
if (this.treevOrdersPersonnel.SelectedNode.Level > 0)
{
bool bl = true;
for (int i = 0; i < this.dgvData.Rows.Count; i++)
{
if (this.dgvData.Rows[i].Cells["UserNumber"].Value == this.treevOrdersPersonnel.SelectedNode.Tag)
{ bl = false; break; }
}
if (bl == true)
{
#region
DataGridViewRow dgvr = new DataGridViewRow();
DataGridViewTextBoxCell cell = null;
cell = new DataGridViewTextBoxCell();
cell.Value = this.treevOrdersPersonnel.SelectedNode.Text.ToString();
dgvr.Cells.Add(cell);
cell = new DataGridViewTextBoxCell();
cell.Value = this.treevOrdersPersonnel.SelectedNode.Tag.ToString();
dgvr.Cells.Add(cell);
cell = new DataGridViewTextBoxCell();
if (dgvData.Rows.Count == 0)
{
cell.Value = "100";
}
else
{
cell.Value = "0";
}
dgvr.Cells.Add(cell);
this.dgvData.Rows.Add(dgvr);
#endregion
}
}
}
}
}
}
catch (Exception ex)
{
MessageBoxCustom.Show(ex.Message);
}
}
#endregion
#region 移除
protected override void btnLeft_Click(object sender, EventArgs e)
{
try
{
if (this.dgvData.Rows.Count > 0)
{
if (this.dgvData.SelectedRows.Count > 0)
{ this.dgvData.Rows.RemoveAt(this.dgvData.CurrentRow.Index); }
}
}
catch (Exception ex)
{
MessageBoxCustom.Show(ex.Message);
}
}
#endregion
#region 取消
protected override void btnCancel_Click(object sender, EventArgs e)
{ this.Close(); }
#endregion
#region 确定
protected override void btnOK_Click(object sender, EventArgs e)
{
try
{
decimal SumTpc_CommissionPercentage = 0;
if (dgvData.Rows.Count == 0)
{
MessageBoxCustom.Show("请选择人员!");
return;
}
for (int i = 0; i < dgvData.Rows.Count; i++)
{
decimal Tpc_CommissionPercentage = Convert.ToDecimal(dgvData.Rows[i].Cells["Tpc_CommissionPercentage"].Value);
string UserName = dgvData.Rows[i].Cells["UserName"].Value.ToString();
string UserNumber = dgvData.Rows[i].Cells["UserNumber"].Value.ToString();
SumTpc_CommissionPercentage += Tpc_CommissionPercentage;
Str1 += UserName + ",";//"(" + Tpc_CommissionPercentage + "%)" + ",";
Str2 += UserNumber + ",";//+"|"+Tpc_CommissionPercentage+",";
Str3 += UserNumber+",";
}
//if (SumTpc_CommissionPercentage != 100)
//{
// //MessageBoxCustom.Show("提成百分比例必须等于100");
// Str1="";
// Str2="";
// Str3 = "";
// return;
//}
Str1 = Str1.TrimEnd(',');
Str2 = Str2.TrimEnd(',');
Str3= Str3.TrimEnd(',');
this.Close();
}
catch (Exception ex)
{
MessageBoxCustom.Show(ex.Message);
}
}
#endregion
#region 输入框限制
protected override void dgvData_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
try
{
if (dgvData.Rows.Count > 0)
{
if (dgvData.CurrentRow.Cells["Tpc_CommissionPercentage"].Value == null)
{
MessageBoxCustom.Show("提成比例不能为空!");
dgvData.CurrentRow.Cells["Tpc_CommissionPercentage"].Value = "0";
return;
}
if (Command.Command_Validate.IsNumeric(dgvData.CurrentRow.Cells["Tpc_CommissionPercentage"].Value.ToString()) == false)
{
MessageBoxCustom.Show("只能输入数字或者小数!");
dgvData.CurrentRow.Cells["Tpc_CommissionPercentage"].Value = "0";
return;
}
}
}
catch (Exception ex)
{
MessageBoxCustom.Show(ex.Message);
}
}
#endregion
}
}