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.CameraControlBook.SuperSmallForm
{
public partial class SelectWorkPersonSuperSmallForm : LYFZ.Software.UI.CameraControlBook.SuperSmallForm.SelectWorkPersonSuperSmallForm
{
LYFZ.BLL.BLL_ErpOrder orbll = new BLL.BLL_ErpOrder();
LYFZ.BLL.BLL_ErpOrderAnPaiDepartmentRecord ordrbll = new BLL.BLL_ErpOrderAnPaiDepartmentRecord();
public SelectWorkPersonSuperSmallForm()
{
this.Load += SelectWorkPersonSuperSmallForm_Load;
this.Shown += SelectWorkPersonSuperSmallForm_Shown;
this.btnSaveed.Click += btnSaveed_Click;
this.btnCancel.Click += btnCancel_Click;
this.dgvData.MouseDoubleClick += dgvData_MouseDoubleClick;
this.cmbtreevDepartment.ComboBoxTree_NodeMouseClick += cmbtreevDepartment_ComboBoxTree_NodeMouseClick;
this.cmbtreevStoreName.ComboBoxTree_NodeMouseClick += cmbtreevStoreName_ComboBoxTree_NodeMouseClick;
}
///
/// 日期
///
public string StrTime = "";
///
/// 加载的类型
///
public LYFZ.EnumPublic.EnumWorkPersonType WorkPersonType;
///
/// 是否保存
///
public bool IsSaveed = false;
///
/// 选择的工作人员的编号
///
public string StrPersonNumber;
///
/// 选择的工作人员的姓名
///
public string StrPersonName;
///
/// 窗体加载事件
///
///
///
void SelectWorkPersonSuperSmallForm_Load(object sender, EventArgs e)
{
this.Text = "安排" + WorkPersonType.ToString().Trim() + "工作";
LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.BindComboBoxTreeView_StoreName(this.cmbtreevStoreName, IsFirstNodeName: "全部");
if (this.cmbtreevStoreName.Nodes.Count == 1)
{
this.cmbtreevStoreName.Visible = false;
this.labelEx2.Visible = false;
}
string StrAddName = "";
if (this.cmbtreevStoreName.Visible)
{
if (this.cmbtreevStoreName.Nodes.Count > 1)
{ StrAddName = ",所属分店"; }
}
string StrColumns = "员工编号,部门,员工姓名,已安排数" + StrAddName + ",是否休息";
this.dgvData.DataColumns(StrColumns, strHideField: "员工编号");
this.dgvData.Columns["已安排数"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
DataTable tbl = orbll.GetView_Custom("tb_ErpDepartment", StrWhere: "", ShowColumnName: "Dt_Name").Tables[0];
TreeNode root = null;
for (int i = 0; i < tbl.Rows.Count; i++)
{
if (i == 0)
{
root = new TreeNode();
root.Text = "全部";
root.Tag = "全部";
this.cmbtreevDepartment.Nodes.Add(root);
}
root = new TreeNode();
root.Text = tbl.Rows[i]["Dt_Name"].ToString().Trim();
root.Tag = tbl.Rows[i]["Dt_Name"].ToString().Trim();
this.cmbtreevDepartment.Nodes.Add(root);
}
this.cmbtreevDepartment.TextFindTag("全部");
if (!string.IsNullOrEmpty(StrTime))
{
switch (WorkPersonType)
{
case LYFZ.EnumPublic.EnumWorkPersonType.选礼服师:
tbl2 = orbll.GetView_Custom("tb_ErpOrderDigital", StrWhere: "Ordv_ReservationClothingName != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordv_ReservationClothingTime", StrTime, StrTime), ShowColumnName: "Ordv_ReservationClothingName AS 员工编号", GroupBy: "Ordv_ReservationClothingName,Ordv_ViceNumber").Tables[0];
break;
case LYFZ.EnumPublic.EnumWorkPersonType.摄影师:
tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationPhotographyName != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationPhotographyName AS 员工编号", GroupBy: "Ordpg_ReservationPhotographyName,Ordpg_ViceNumber").Tables[0];
break;
case LYFZ.EnumPublic.EnumWorkPersonType.摄影助理:
tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationPhotographyAssistant != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationPhotographyAssistant AS 员工编号", GroupBy: "Ordpg_ReservationPhotographyAssistant,Ordpg_ViceNumber").Tables[0];
break;
case LYFZ.EnumPublic.EnumWorkPersonType.化妆师:
tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationMakeupArtist != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationMakeupArtist AS 员工编号", GroupBy: "Ordpg_ReservationMakeupArtist,Ordpg_ViceNumber").Tables[0];
break;
case LYFZ.EnumPublic.EnumWorkPersonType.化妆助理:
tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationMakeupAssistant != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationMakeupAssistant AS 员工编号", GroupBy: "Ordpg_ReservationMakeupAssistant,Ordpg_ViceNumber").Tables[0];
break;
case LYFZ.EnumPublic.EnumWorkPersonType.引导师:
tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationBootDivision != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationBootDivision AS 员工编号", GroupBy: "Ordpg_ReservationBootDivision,Ordpg_ViceNumber").Tables[0];
break;
case LYFZ.EnumPublic.EnumWorkPersonType.引导助理:
tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationBootDivisionAssistant != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationBootDivisionAssistant AS 员工编号", GroupBy: "Ordpg_ReservationBootDivisionAssistant,Ordpg_ViceNumber").Tables[0];
break;
case LYFZ.EnumPublic.EnumWorkPersonType.选片师:
tbl2 = orbll.GetView_Custom("tb_ErpOrderDigital", StrWhere: "Ordv_ReservationFilmSelectionName != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordv_ReservationFilmSelectionTime", StrTime, StrTime), ShowColumnName: "Ordv_ReservationFilmSelectionName AS 员工编号", GroupBy: "Ordv_ReservationFilmSelectionName,Ordv_ViceNumber").Tables[0];
break;
case LYFZ.EnumPublic.EnumWorkPersonType.看设计师:
tbl2 = orbll.GetView_Custom("tb_ErpOrderDigital", StrWhere: "Ordv_ReservationLookDesignName != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordv_ReservationLookDesignTime", StrTime, StrTime), ShowColumnName: "Ordv_ReservationLookDesignName AS 员工编号", GroupBy: "Ordv_ReservationLookDesignName,Ordv_ViceNumber").Tables[0];
break;
case LYFZ.EnumPublic.EnumWorkPersonType.取件师:
tbl2 = orbll.GetView_Custom("tb_ErpOrderProductList", StrWhere: "OPlist_ReservationTakeName != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("OPlist_ReservationTakeTime", StrTime, StrTime), ShowColumnName: "OPlist_ReservationTakeName AS 员工编号", GroupBy: "OPlist_ReservationTakeName,OPlist_ViceNumber").Tables[0];
break;
case LYFZ.EnumPublic.EnumWorkPersonType.服务师1:
case LYFZ.EnumPublic.EnumWorkPersonType.服务师2:
tbl2 = orbll.GetView_Custom("(select Ws_Serviceman1,Ws_Number,Ws_WeddingDate from tb_ErpWeddingService where Ws_Serviceman1 != '' group by Ws_Serviceman1,Ws_Number,Ws_WeddingDate UNION ALL select Ws_Serviceman2,Ws_Number,Ws_WeddingDate from tb_ErpWeddingService where Ws_Serviceman2 != '' group by Ws_Serviceman2,Ws_Number,Ws_WeddingDate) AS tb", StrWhere: LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("tb.Ws_WeddingDate", StrTime, StrTime, ConnectWord: ""), ShowColumnName: "Ws_Serviceman1 AS 员工编号").Tables[0];
break;
}
}
}
///
/// 窗体加载事件
///
///
///
void SelectWorkPersonSuperSmallForm_Shown(object sender, EventArgs e)
{
DataTable dt = orbll.GetView_Custom("tb_ErpOrderAnPaiDepartmentRecord", StrWhere: "Ordor_DividedShop = '" + LYFZ.Software.MainBusiness.CommonLogical.SuccessfulLogin.GetLocalCompanyInfoID() + "' And Ordor_OperatingType = '" + WorkPersonType.ToString().Trim() + "'", ShowColumnName: "Ordor_Department").Tables[0];
if (dt.Rows.Count > 0)
{ this.cmbtreevDepartment.TextFindTag(dt.Rows[0]["Ordor_Department"].ToString().Trim()); }
this.GetWorkPerson();
}
DataTable tbl;
DataTable tbl2 = new DataTable();
///
/// 获取工作人员
///
///
void GetWorkPerson()
{
this.dgvData.Rows.Clear();
string strWhere = "";
if (!string.IsNullOrEmpty(this.cmbtreevDepartment.Text.Trim()) && this.cmbtreevDepartment.Text.Trim() != "全部")
{ strWhere = " And Dt_Name = '" + this.cmbtreevDepartment.Text.Trim() + "'"; }
string StrAddName = "";
if (this.cmbtreevStoreName.Visible)
{
if (this.dgvData.Columns.Contains("所属分店"))
{ StrAddName = ",Company_Name AS 所属分店"; }
if (!string.IsNullOrEmpty(this.cmbtreevStoreName.Text.Trim()) && this.cmbtreevStoreName.Text.Trim() != "全部")
{ strWhere += " And User_DividedShop = '" + this.cmbtreevStoreName.Tag.ToString().Trim() + "'"; }
}
tbl = orbll.GetView_Custom("tb_ErpUser left join tb_ErpDepartment on User_Department = tb_ErpDepartment.ID Left Join tb_ErpCompanyInfo on Company_DividedShop = User_DividedShop", StrWhere: "User_Status = '在职'" + strWhere, ShowColumnName: "User_EmployeeID AS 员工编号,Dt_Name AS 部门, User_Name AS 员工姓名,'' AS 已安排数" + StrAddName + ",'' AS 是否休息", filedOrder: "tb_ErpDepartment.ID").Tables[0];
DataGridViewRow dgvr = new DataGridViewRow();
DataGridViewCell cell = null;
cell = new DataGridViewTextBoxCell();
cell.Value = "";
dgvr.Cells.Add(cell);
cell = new DataGridViewTextBoxCell();
cell.Value = "";
dgvr.Cells.Add(cell);
cell = new DataGridViewTextBoxCell();
cell.Value = "";
dgvr.Cells.Add(cell);
cell = new DataGridViewTextBoxCell();
cell.Value = "";
dgvr.Cells.Add(cell);
if (this.dgvData.Columns.Contains("所属分店"))
{
cell = new DataGridViewTextBoxCell();
cell.Value = "";
dgvr.Cells.Add(cell);
}
cell = new DataGridViewTextBoxCell();
cell.Value = "";
dgvr.Cells.Add(cell);
this.dgvData.Rows.Add(dgvr);
foreach(DataRow dr in tbl.Rows)
{
if (this.dgvData.Rows.Count > 0 && tbl2.Rows.Count > 0)
{
DataRow[] dtRow = tbl2.Select("员工编号 = '" + dr["员工编号"].ToString().Trim() + "'");
if (dtRow.Length > 0)
{
dr["已安排数"] = dtRow.Length.ToString().Trim();
}
}
}
foreach (DataRow dr in tbl.Rows)
{
if (!string.IsNullOrEmpty(StrTime))
{
DataTable dt = LYFZ.Software.MainBusiness.CameraControlBook.PublicClass.GetRestPerson(this.StrTime.Trim());
DataRow[] dtRow = dt.Select(" User_ID = '" + dr["员工编号"] + "' ");
if(dtRow.Length>0)
{
dr["是否休息"] = "休息";
}
}
}
this.dgvData.DataSource(tbl, IsBindColumns: false, IsClearRows: false);
}
//void UserVirtual()
//{
// if (tbl == null /*|| dataTable.Rows.Count == 0*/)
// return;
// // 清空之前的列和行;
// this.dgvData.Rows.Clear();
// dicList.Clear();
// // 开启虚拟模式;
// this.dgvData.VirtualMode = true;
// // 设置总行数;
// this.dgvData.RowCount = tbl.Rows.Count;
// this.dgvData.CellValueNeeded -= DgvData_CellValueNeeded;
// this.dgvData.CellValueNeeded += DgvData_CellValueNeeded;
//}
//Dictionary dicList = new Dictionary();
//private void DgvData_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
//{
// if (tbl == null ||
// tbl.Rows.Count == 0 ||
// tbl.Rows.Count == e.RowIndex ||
// e.RowIndex > tbl.Rows.Count)
// return;
// if(dicList.ContainsKey(e.RowIndex+"-"+e.ColumnIndex))
// {
// //return;
// }
// else
// {
// dicList.Add(e.RowIndex + "-" + e.ColumnIndex, true);
// DataGridViewRow dgrCurrent = this.dgvData.Rows[e.RowIndex];
// if (dgrCurrent.DefaultCellStyle.BackColor.IsEmpty)
// dgrCurrent.DefaultCellStyle.BackColor = (e.RowIndex % 2 == 0) ? System.Drawing.Color.PapayaWhip : System.Drawing.Color.PowderBlue;
// }
// // 当前行;
// // StrIsAddColumnsNull不是_dataTable中的列,是手动加进去的(何意义??);
// if (this.dgvData.Columns[e.ColumnIndex].Name.Trim() != "StrIsAddColumnsNull")
// e.Value = tbl.Rows[e.RowIndex][tbl.Columns[e.ColumnIndex].ToString().Trim()].ToString();
// if (tbl.Columns.Count > 0 && this.dgvData.Columns[e.ColumnIndex].Name.Equals("已安排数"))
// {
// if (this.dgvData.Rows.Count > 0 && tbl2.Rows.Count > 0)
// {
// DataRow[] dtRow = tbl2.Select("员工编号 = '" + tbl.Rows[e.RowIndex]["员工编号"].ToString().Trim() + "'");
// if (dtRow.Length > 0)
// {
// //this.dgvData.Rows[i].Cells["已安排数"].Tag = dtRow.Length.ToString().Trim();
// //this.dgvData.Rows[i].Cells["已安排数"].Value = "";
// e.Value = dtRow.Length.ToString().Trim();
// }
// }
// }
// if (tbl.Columns.Count > 0 && dgvData.Columns[e.ColumnIndex].Name.Equals("是否休息"))
// {
// if (!string.IsNullOrEmpty(StrTime))
// {
// DataTable dt = LYFZ.Software.MainBusiness.CameraControlBook.PublicClass.GetRestPerson(this.StrTime.Trim());
// for (int i = 0; i < dt.Rows.Count; i++)
// {
// if (tbl.Rows[e.RowIndex]["员工编号"].ToString().Trim() == dt.Rows[i]["User_ID"].ToString().Trim())
// { e.Value = "休息"; break; }
// }
// }
// }
//}
///
/// 确定
///
///
///
void btnSaveed_Click(object sender, EventArgs e)
{
if (this.dgvData.Rows.Count > 0)
{
if (this.dgvData.CurrentCell.RowIndex >= 0 && this.dgvData.CurrentRow.Index >= 0)
{
this.StrPersonNumber = this.dgvData.CurrentRow.Cells["员工编号"].Value.ToString().Trim();
this.StrPersonName = this.dgvData.CurrentRow.Cells["员工姓名"].Value.ToString().Trim();
if (!string.IsNullOrEmpty(this.dgvData.CurrentRow.Cells["是否休息"].Value.ToString().Trim()))
{ MessageBoxCustom.Show(StrPersonName + " '" + this.StrTime.Trim() + "'休息,不能安排工作!"); return; }
this.IsSaveed = true;
string StrStoreName = "";
if (this.cmbtreevStoreName.Text.Trim() != "全部")
{ StrStoreName = this.cmbtreevStoreName.Tag.ToString().Trim(); }
else
{ StrStoreName = LYFZ.Software.MainBusiness.CommonLogical.SuccessfulLogin.GetLocalCompanyInfoID(); }
LYFZ.Model.Model_ErpOrderAnPaiDepartmentRecord model = null;
DataTable dt = orbll.GetView_Custom("tb_ErpOrderAnPaiDepartmentRecord", StrWhere: "Ordor_DividedShop = '" + StrStoreName + "' And Ordor_OperatingType = '" + this.WorkPersonType.ToString().Trim() + "'", ShowColumnName: "*").Tables[0];
if (dt.Rows.Count > 0)
{
model = ordrbll.DataRowToModel(dt.Select()[0]);
model.Ordor_Department = this.dgvData.CurrentRow.Cells["部门"].Value.ToString().Trim();
ordrbll.Update(model);
}
else
{
model = new Model.Model_ErpOrderAnPaiDepartmentRecord();
model.Ordor_DividedShop = StrStoreName;
model.Ordor_OperatingType = this.WorkPersonType.ToString().Trim();
model.Ordor_Department = this.dgvData.CurrentRow.Cells["部门"].Value.ToString().Trim();
ordrbll.Add(model);
}
this.Close();
}
}
}
///
/// 取消
///
///
///
void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
///
/// 列表双击选择事件
///
///
///
void dgvData_MouseDoubleClick(object sender, MouseEventArgs e)
{
this.btnSaveed_Click(this, null);
}
///
/// 部门选择事件
///
///
///
void cmbtreevDepartment_ComboBoxTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
this.GetWorkPerson();
}
///
/// 选择分店人员
///
///
///
void cmbtreevStoreName_ComboBoxTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
this.SelectWorkPersonSuperSmallForm_Shown(this, null);
}
}
}