You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

684 lines
26 KiB

using CK.SCP.Controller;
using CK.SCP.Models;
using CK.SCP.Models.AppBoxEntity;
using CK.SCP.Models.ScpEntity;
using FineUI;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace SCP.Views.BasicData
{
public partial class SCP_VenderUser : PageBase
{
List<TA_VENDER> lsVenders = new List<TA_VENDER>();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindUser();
BindFactory();
BindUserType();
}
}
private void BindVenderList(string p_site)
{
var Domain = SCP_TB_VENDER_CONTROLLER.GetFactory(p_site);
if (Domain != null)
{
var lsVender = SCP_TB_VENDER_CONTROLLER.Getlist1(Domain.ErpDomain);
lsVender.ForEach(p =>
{
p.VendName = string.Format("{0}({1})", p.VendName, p.VendId);
});
ddl_Vender.DataSource = lsVender;
ddl_Vender.DataTextField = "VendName";
ddl_Vender.DataValueField = "VendId";
ddl_Vender.DataBind();
}
//}
}
private void BindVender(List<string> lsFacID)
{
var _list = SCP_TB_VENDER_CONTROLLER.Getlist();
if (lsFacID != null && lsFacID.Count > 0)
{
_list = _list.Where(p => lsFacID.Contains(p.Site)).ToList();
if (_list.Count() > 0)
{
var factorylist = DB.TA_FACTORY.ToList();
foreach (var item in _list)
{
if ((item.Site == "BJBMPT") && (!string.IsNullOrEmpty(item.SubSite)))
{
item.FactoryNameForView = factorylist.FirstOrDefault(a => a.ErpDomain == item.Site && a.ErpSite == item.SubSite).FactoryName;
}
else
{
item.FactoryNameForView = factorylist.FirstOrDefault(a => a.ErpDomain == item.Site).FactoryName;
}
}
}
}
lsVenders = _list;
//var list = Sort<TA_VENDER>(_list.AsQueryable(), Grid_Vender);
//Grid_Vender.DataSource = list;
//Grid_Vender.RecordCount = list.Count();
//Grid_Vender.DataBind();
}
private void BindVender(List<string> lsFacID, string s)
{
var _list = SCP_TB_VENDER_CONTROLLER.Getlist();
if (lsFacID != null && lsFacID.Count > 0)
{
_list = _list.Where(p => lsFacID.Contains(p.Site)).ToList();
}
lsVenders = _list;
var list = Sort<TA_VENDER>(_list.AsQueryable(), Grid_Vender);
Grid_Vender.DataSource = list;
Grid_Vender.RecordCount = list.Count();
Grid_Vender.DataBind();
}
private void BindFactory()
{
var _ls = ScpCache.FactoryList;
_ls.Insert(0, new TB_FACTORY() { FactoryId = "", FactoryName = "" });
factoryList.DataSource = _ls;
factoryList.DataBind();
}
private void BindUser()
{
BindVenderList(factoryList.SelectedValue);
if (factoryList.Items.Count > 1)
{
int _index=factoryList.SelectedIndex;
}
PublicDataController.Get_UserList(TextBox_Users.Text,roleList.SelectedText,roleList.SelectedValue, factoryList.SelectedValue,(rs) =>
{
if (rs.State == ReturnStatus.Succeed)
{
var q = rs.Result;
Grid_User.RecordCount = q.Count();
Grid_User.DataSource = q;
Grid_User.DataBind();
}
}
);
}
private void BindUserType()
{
IQueryable<Role> q = DB.Roles;
List<Role> lsRole = q.ToList().Where(p => p.Name == "计划人员" || p.Name == "采购人员" || p.Name=="供应商"||p.Name=="供应商分配").ToList();
this.roleList.DataSource = lsRole;
this.roleList.DataTextField = "Name";
this.roleList.DataValueField = "ID";
this.roleList.DataBind();
this.roleList.Items.Insert(0, new FineUI.ListItem("--所有用户--", ""));
}
protected void Grid_TB_CONTRACT_PageIndexChange(object sender, GridPageEventArgs e)
{
BindUser();
}
protected void Grid_User_RowSelect(object sender, FineUI.GridRowSelectEventArgs e)
{
if (e.RowIndex != -1)
{
string strUserId = Grid_User.Rows[e.RowIndex].DataKeys[0].ToString();
int iUserId;
if (int.TryParse(strUserId, out iUserId))
{
}
else
{
Alert.Show("用户数据不正确");
return;
}
//获取用户的地区列表
User user = DB.Users.FirstOrDefault(p => p.ID == iUserId);
List<string> lsfac = new List<string>();
if (user != null)
{
lsfac = user.TA_FACTORY.Select(p => p.FactoryId).ToList();
}
var _VenderUsers = DB.VenderUsers.Where(p => p.UserId == iUserId).ToList();
BindVender(lsfac);
List<TA_VENDER> finalVenders = new List<TA_VENDER>();
List<TA_VENDER> checkedVenders = new List<TA_VENDER>();
List<TA_VENDER> uncheckedVenders = new List<TA_VENDER>();
string tempVender = "";
string[] szVenders = new string[] { };
List<string> lsCheckVenderID = new List<string>();
var venlist = _VenderUsers.Select(q => q.VenderId).ToList();
lsCheckVenderID = lsVenders.Where(q => venlist.Contains(q.VendId)).Select(q => q.VendId).Distinct().ToList();
//foreach (VenderUsers vu in _VenderUsers)
//{
// for (int i = 0; i < Grid_Vender.Rows.Count; i++)
// {
// if (vu.VenderId == Grid_Vender.Rows[i].DataKeys[1].ToString())
// {
// lsCheckVenderID.Add(Grid_Vender.Rows[i].DataKeys[1].ToString());
// }
// }
//}
if (lsCheckVenderID.Count == 0)
{
uncheckedVenders = lsVenders.OrderBy(p=>p.VendId).ToList();
}
else
{
checkedVenders = lsVenders.Where(q => lsCheckVenderID.Contains(q.VendId)).ToList();
uncheckedVenders = lsVenders.Where(q => !lsCheckVenderID.Contains(q.VendId)).OrderBy(p => p.VendId).ToList();
}
//uncheckedVenders = uncheckedVenders.OrderBy(p => p.VendId).ToList();
finalVenders = checkedVenders.Union(uncheckedVenders).ToList();
Grid_Vender.DataSource = finalVenders;
Grid_Vender.RecordCount = finalVenders.Count();
Grid_Vender.DataBind();
foreach (VenderUsers vu in _VenderUsers)
{
for (int i = 0; i < Grid_Vender.Rows.Count; i++)
{
if (vu.VenderId == Grid_Vender.Rows[i].DataKeys[1].ToString())
{
if (string.IsNullOrEmpty(tempVender))
{
tempVender = Grid_Vender.Rows[i].RowID;
}
else
{
tempVender = tempVender + "," + Grid_Vender.Rows[i].RowID;
}
}
}
}
szVenders = tempVender.Split(',');
Grid_Vender.SelectedRowIDArray = szVenders;
}
}
private void BindVender()
{
if (Grid_User.SelectedRowIndex>0)
{
string strUserId = Grid_User.Rows[Grid_User.SelectedRowIndex].DataKeys[0].ToString();
int iUserId;
if (int.TryParse(strUserId, out iUserId))
{
}
else
{
Alert.Show("用户数据不正确");
return;
}
//获取用户的地区列表
User user = DB.Users.FirstOrDefault(p => p.ID == iUserId);
List<string> lsfac = new List<string>();
if (user != null)
{
lsfac = user.TA_FACTORY.Select(p => p.FactoryId).ToList();
}
var _VenderUsers = DB.VenderUsers.Where(p => p.UserId == iUserId).ToList();
BindVender(lsfac);
List<TA_VENDER> finalVenders = new List<TA_VENDER>();
List<TA_VENDER> checkedVenders = new List<TA_VENDER>();
List<TA_VENDER> uncheckedVenders = new List<TA_VENDER>();
string tempVender = "";
string[] szVenders = new string[] { };
List<string> lsCheckVenderID = new List<string>();
var venlist = _VenderUsers.Select(q => q.VenderId).ToList();
lsCheckVenderID = lsVenders.Where(q => venlist.Contains(q.VendId)).Select(q => q.VendId).Distinct().ToList();
//foreach (VenderUsers vu in _VenderUsers)
//{
// for (int i = 0; i < Grid_Vender.Rows.Count; i++)
// {
// if (vu.VenderId == Grid_Vender.Rows[i].DataKeys[1].ToString())
// {
// lsCheckVenderID.Add(Grid_Vender.Rows[i].DataKeys[1].ToString());
// }
// }
//}
if (lsCheckVenderID.Count == 0)
{
uncheckedVenders = lsVenders.OrderBy(p => p.VendId).ToList();
}
else
{
checkedVenders = lsVenders.Where(q => lsCheckVenderID.Contains(q.VendId)).ToList();
uncheckedVenders = lsVenders.Where(q => !lsCheckVenderID.Contains(q.VendId)).OrderBy(p => p.VendId).ToList();
}
//foreach (TA_VENDER vender in lsVenders)
//{
// if (lsCheckVenderID.Count == 0)
// {
// uncheckedVenders.Add(vender);
// }
// else
// {
// foreach (string venderid in lsCheckVenderID)
// {
// if (vender.VendId == venderid)
// {
// checkedVenders.Add(vender);
// }
// else
// {
// uncheckedVenders.Add(vender);
// }
// }
// }
//}
//uncheckedVenders = uncheckedVenders.OrderBy(p => p.VendId).ToList();
finalVenders = checkedVenders.Union(uncheckedVenders).ToList();
Grid_Vender.DataSource = finalVenders;
Grid_Vender.RecordCount = finalVenders.Count();
Grid_Vender.DataBind();
foreach (VenderUsers vu in _VenderUsers)
{
for (int i = 0; i < Grid_Vender.Rows.Count; i++)
{
if (vu.VenderId == Grid_Vender.Rows[i].DataKeys[1].ToString())
{
if (string.IsNullOrEmpty(tempVender))
{
tempVender = Grid_Vender.Rows[i].RowID;
}
else
{
tempVender = tempVender + "," + Grid_Vender.Rows[i].RowID;
}
}
}
}
szVenders = tempVender.Split(',');
Grid_Vender.SelectedRowIDArray = szVenders;
}
}
protected void btnSearchUser_Click(object sender, EventArgs e)
{
BindUser();
}
protected void roleList_SelectedIndexChanged(object sender, EventArgs e)
{
if (roleList.SelectedValue != null)
{
if (string.IsNullOrEmpty(roleList.SelectedValue))
{
IQueryable<User> q = DB.Users;
if (GetIdentityName() != "admin")
{
q = q.Where(u => u.Name != "admin");
}
Grid_User.RecordCount = q.Count();
Grid_User.DataSource = q;
Grid_User.DataBind();
}
else
{
int roleid = int.Parse(roleList.SelectedValue);
IQueryable<User> q = DB.Users.Where(p => p.Roles.Select(itm => itm.ID).Contains(roleid));
if (GetIdentityName() != "admin")
{
q = q.Where(u => u.Name != "admin");
}
Grid_User.RecordCount = q.Count();
Grid_User.DataSource = q;
Grid_User.DataBind();
}
}
}
protected void btnSaveClose_Click(object sender, EventArgs e)
{
if (Grid_User.SelectedRow != null)
{
try
{
string strUserId = Grid_User.SelectedRow.DataKeys[0].ToString();
int iUserId;
if (int.TryParse(strUserId, out iUserId))
{
}
else
{
Alert.Show("用户数据不正确");
return;
}
var _VenderUsers = DB.VenderUsers.Where(p => p.UserId == iUserId).ToList();
if (_VenderUsers != null && _VenderUsers.Count > 0)
{
DB.VenderUsers.RemoveRange(_VenderUsers);
}
List<VenderUsers> _vList = new List<VenderUsers>();
int[] selections = Grid_Vender.SelectedRowIndexArray;
if (selections != null)
{
foreach (int rowIndex in selections)
{
string venderid = Grid_Vender.Rows[rowIndex].DataKeys[1].ToString();
string site = Grid_Vender.Rows[rowIndex].DataKeys[3].ToString();
VenderUsers _vus = new VenderUsers();
_vus.UserId = iUserId;
_vus.VenderId = venderid;
_vList.Add(_vus);
}
}
if (_vList.Count > 0)
{
var list = _vList.Where(itm => itm.UserId > 0 && !string.IsNullOrEmpty(itm.VenderId));
DB.VenderUsers.BulkInsert(list.ToArray());
}
DB.BulkSaveChanges();
Alert.Show("保存成功!");
BindVender();
}
catch (Exception ex)
{
Alert.Show("保存失败!原因:"+ ex.Message);
}
}
}
protected void btnSearch_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(ddl_Vender.SelectedValue))
{
Alert.Show("请填写供应商名称!");
return;
}
if (Grid_User.SelectedRow == null)
{
Alert.Show("请选择用户!");
return;
}
string strUserId = Grid_User.SelectedRow.DataKeys[0].ToString();
int iUserId;
if (int.TryParse(strUserId, out iUserId))
{
}
else
{
Alert.Show("用户数据不正确");
return;
}
//获取用户的地区列表
User user = DB.Users.FirstOrDefault(p => p.ID == iUserId);
List<string> lsfac = new List<string>();
if (user != null)
{
lsfac = user.TA_FACTORY.Select(p => p.FactoryId).ToList();
}
var _VenderUsers = DB.VenderUsers.Where(p => p.UserId == iUserId).ToList();
//BindVender(lsfac);
var _list = SCP_TB_VENDER_CONTROLLER.Getlist();
if (lsfac != null && lsfac.Count > 0)
{
_list = _list.Where(p => lsfac.Contains(p.Site)).ToList();
}
lsVenders = _list;
List<TA_VENDER> finalVenders = new List<TA_VENDER>();
List<TA_VENDER> checkedVenders = new List<TA_VENDER>();
List<TA_VENDER> uncheckedVenders = new List<TA_VENDER>();
string tempVender = "";
string[] szVenders = new string[] { };
List<string> lsCheckVenderID = new List<string>();
foreach (VenderUsers vu in _VenderUsers)
{
for (int i = 0; i < Grid_Vender.Rows.Count; i++)
{
if (vu.VenderId == Grid_Vender.Rows[i].DataKeys[1].ToString())
{
lsCheckVenderID.Add(Grid_Vender.Rows[i].DataKeys[1].ToString());
}
}
}
lsVenders = lsVenders.Where(p => p.VendId.Contains(ddl_Vender.SelectedValue)).ToList();
foreach (var item in lsVenders)
{
if ((item.Site == "BJBMPT") && (!string.IsNullOrEmpty(item.SubSite)))
{
item.FactoryNameForView = DB.TA_FACTORY.FirstOrDefault(a => a.ErpDomain == item.Site && a.ErpSite == item.SubSite).FactoryName;
}
else
{
item.FactoryNameForView = DB.TA_FACTORY.FirstOrDefault(a => a.ErpDomain == item.Site).FactoryName;
}
}
if (lsVenders.Count == 0)
{
Alert.Show("未查到符合条件供应商!");
return;
}
foreach (TA_VENDER vender in lsVenders)
{
if (lsCheckVenderID.Contains(vender.VendId))
{
checkedVenders.Add(vender);
}
else
{
uncheckedVenders.Add(vender);
}
}
finalVenders = checkedVenders.Union(uncheckedVenders).ToList();
if (finalVenders.Count > 0)
{
Grid_Vender.DataSource = finalVenders;
Grid_Vender.RecordCount = finalVenders.Count();
Grid_Vender.DataBind();
foreach (VenderUsers vu in _VenderUsers)
{
for (int i = 0; i < Grid_Vender.Rows.Count; i++)
{
if (vu.VenderId == Grid_Vender.Rows[i].DataKeys[1].ToString())
{
if (string.IsNullOrEmpty(tempVender))
{
tempVender = Grid_Vender.Rows[i].RowID;
}
else
{
tempVender = tempVender + "," + Grid_Vender.Rows[i].RowID;
}
}
}
}
szVenders = tempVender.Split(',');
Grid_Vender.SelectedRowIDArray = szVenders;
}
else
{
Alert.Show("未找到供应商!");
return;
}
}
protected void factoryList_SelectedIndexChanged(object sender, EventArgs e)
{
BindUser();
}
protected void btnReset_Click(object sender, EventArgs e)
{
BindVender();
}
protected void btnAddSave_Click(object sender, EventArgs e)
{
if (Grid_User.SelectedRow != null)
{
try
{
string strUserId = Grid_User.SelectedRow.DataKeys[0].ToString();
int iUserId;
if (int.TryParse(strUserId, out iUserId))
{
}
else
{
Alert.Show("用户数据不正确");
return;
}
var _VenderUsers = DB.VenderUsers.Where(p => p.UserId == iUserId).ToList();
if (_VenderUsers != null && _VenderUsers.Count > 0)
{
List<VenderUsers> _vList = new List<VenderUsers>();
//int selectedCount = Grid_Vender.SelectedRowIndexArray.Length;
int[] selections = Grid_Vender.SelectedRowIndexArray;
if (selections != null)
{
foreach (int rowIndex in selections)
{
string venderid = Grid_Vender.Rows[rowIndex].DataKeys[1].ToString();
string site = Grid_Vender.Rows[rowIndex].DataKeys[3].ToString();
VenderUsers _vus = new VenderUsers();
_vus.UserId = iUserId;
_vus.VenderId = venderid;
int _count = _VenderUsers.Count(p => p.UserId == _vus.UserId && p.VenderId == _vus.VenderId);
if (_count == 0)
{
_vList.Add(_vus);
}
}
}
//if (selectedCount > 0)
//{
// for (int i = 0; i < selectedCount; i++)
// {
// int rowIndex = Grid_Vender.SelectedRowIndexArray[i];
// string venderid = Grid_Vender.Rows[rowIndex].DataKeys[1].ToString();
// string site = Grid_Vender.Rows[rowIndex].DataKeys[3].ToString();
// VenderUsers _vus = new VenderUsers();
// _vus.UserId = iUserId;
// _vus.VenderId = venderid;
// int _count = _VenderUsers.Count(p => p.UserId == _vus.UserId && p.VenderId == _vus.VenderId);
// if (_count == 0)
// {
// _vList.Add(_vus);
// }
// }
//}
if (_vList.Count > 0)
{
var list = _vList.Where(itm => itm.UserId > 0 && !string.IsNullOrEmpty(itm.VenderId));
DB.VenderUsers.BulkInsert(list.ToArray());
}
DB.BulkSaveChanges();
Alert.Show("保存成功!");
BindVender();
}
else
{
if (_VenderUsers != null && _VenderUsers.Count == 0)
{
List<VenderUsers> _vList = new List<VenderUsers>();
//int selectedCount = Grid_Vender.SelectedRowIndexArray.Length;
int[] selections = Grid_Vender.SelectedRowIndexArray;
if (selections != null)
{
foreach (int rowIndex in selections)
{
string venderid = Grid_Vender.Rows[rowIndex].DataKeys[1].ToString();
string site = Grid_Vender.Rows[rowIndex].DataKeys[3].ToString();
VenderUsers _vus = new VenderUsers();
_vus.UserId = iUserId;
_vus.VenderId = venderid;
int _count = _VenderUsers.Count(p => p.UserId == _vus.UserId && p.VenderId == _vus.VenderId);
if (_count == 0)
{
_vList.Add(_vus);
}
}
}
if (_vList.Count > 0)
{
var list = _vList.Where(itm => itm.UserId > 0 && !string.IsNullOrEmpty(itm.VenderId));
DB.VenderUsers.BulkInsert(list.ToArray());
}
DB.BulkSaveChanges();
Alert.Show("保存成功!");
BindVender();
}
}
}
catch (Exception ex)
{
Alert.Show("保存失败!原因:" + ex.Message);
}
}
}
}
}