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.
 
 
 
 
 

667 lines
24 KiB

using CK.SCP.Models.ExchangeCenterTables;
using CK.SCP.Controller;
using CK.SCP.Models;
using CK.SCP.Models.Enums;
using CK.SCP.Models.ScpEntity;
using CK.SCP.Models.ScpEntity.ExcelExportEnttity;
using CK.SCP.Utils;
using FineUI;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using static System.Net.WebRequestMethods;
namespace SCP.BasicData
{
public partial class PriceUpdate : PageBase
{
private List<TB_PRICE> _list;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (CurrentUser.ID != 0)
{
//读取 所有菜单列表
var mlist = GetMenus(CurrentUser.ID);
if (mlist.Count > 0 && mlist.Contains("价格单修改"))
{
CheckRolesMenu();
//DDL_IMPORT.DataSource = DB.Users.Where(p => p.Roles.Select(q => q.Name).Contains("采购人员")).Select(p=>p.Name);
//DDL_IMPORT.DataBind();
BindData();
BindFactory();
}
else
{
Response.Write("当前用户没有操作该页面权限");
Response.End();
return;
}
}
else
{
Response.Write("当前用户没有操作该页面权限");
Response.End();
return;
}
}
}
private void CheckRolesMenu()
{
if (CurrentUser.RoleList.Contains("供应商"))
{
FileUpload1.Hidden = true;
Button3.Hidden = true;
Button4.Hidden = true;
}
//if (CurrentUser.RoleList.Contains("财务审核"))
//{
//BtnSave.Hidden = true;
//btnConfirm.Hidden = false;
Grid1.EnableCheckBoxSelect = true;
Grid1.AllowCellEditing = false;
//BtnEdit.Hidden = false;
DDL_State.SelectedValue = ((int)PriceState.FConfirm).ToString();
}
public void BindData()
{
highlightRows.Text = "";
SearchV_TB_PRICEData((result) =>
{
Grid1.RecordCount = result.Count();
var list = SortAndPage<V_TB_PRICE>(result, Grid1);
Grid1.DataSource = list;
Grid1.DataBind();
});
}
//查询
protected void btnSearch_OnClick(object sender, EventArgs e)
{
BindData();
}
public void SearchV_TB_PRICEData(Action<IQueryable<V_TB_PRICE>> p_action)
{
V_TB_PRICE _entity = new V_TB_PRICE();
if (!string.IsNullOrEmpty(textVendId.Text))
{
_entity.VendId = textVendId.Text;
}
if (!string.IsNullOrEmpty(textPartCode.Text))
{
_entity.PartCode = textPartCode.Text;
}
if (!string.IsNullOrEmpty(textVendName.Text))
{
_entity.Extend3 = textVendName.Text;
}
if (!string.IsNullOrEmpty(textPartName.Text))
{
_entity.PartName = textPartName.Text;
}
if (!string.IsNullOrEmpty(textCreator.Text))
{
_entity.Creator = textCreator.Text;
}
if (DP_StartDate.SelectedDate != null)
{
_entity.StartTime = DP_StartDate.SelectedDate;
}
if (Date_EndDate.SelectedDate != null)
{
_entity.EndTime = Date_EndDate.SelectedDate;
}
if (DP_StartDate.SelectedDate != null && Date_EndDate.SelectedDate == null)
{
_entity.EndTime = DateTime.Now;
}
if (DP_StartDate.SelectedDate == null && Date_EndDate.SelectedDate != null)
{
_entity.StartTime = DateTime.Now;
}
if (!string.IsNullOrEmpty(DDL_State.SelectedValue))
{
_entity.State = int.Parse(DDL_State.SelectedValue);
}
_entity.Extend2 = !string.IsNullOrEmpty(DDL_Extend2.SelectedValue) ? DDL_Extend2.SelectedValue : string.Empty;
if (!string.IsNullOrEmpty(NB_Amt.Text))
{
_entity.Amt = decimal.Parse(NB_Amt.Text);
}
if (!string.IsNullOrEmpty(NB_TemporaryPrice.Text))
{
_entity.TemporaryPrice = int.Parse(NB_TemporaryPrice.Text);
}
if (!string.IsNullOrEmpty(NB_SharingPrice.Text))
{
_entity.SharingPrice = decimal.Parse(NB_SharingPrice.Text);
}
if (!string.IsNullOrEmpty(factoryList.SelectedValue))
{
_entity.SubSite= factoryList.SelectedValue;
}
_entity.UserInAddress = CurrentUser.FactoryList;
_entity.UserInVendIds = CurrentUser.VenderList;
_entity.UserInSubSite = CurrentUser.SubSiteList;
if (CurrentUser.RoleList.Contains("供应商") && CurrentUser.VenderList.Count == 0)
{
return;
}
SCP_TB_PRICE_CONTROLLER.Get_TB_PRICE_List(ckb_Priec.Checked, _entity, (_ret) =>
{
if (_ret.State == ReturnStatus.Succeed)
{
p_action(_ret.Result);
}
});
}
private void BindFactory()
{
var _ls = ScpCache.FactoryList;
_ls.Insert(0, new TB_FACTORY() { FactoryId = "", FactoryName = "" });
factoryList.DataSource = _ls;
factoryList.DataBind();
}
protected void btnInput_Click1(object sender, EventArgs e)
{
string _fileName = FileUpload1.FileName;
if (string.IsNullOrEmpty(_fileName))
{
Alert.Show("选择文件为空!");
return;
}
string _lx = _fileName.Split('.')[1];
Stream _stream = FileUpload1.PostedFile.InputStream;
DataTable _dt = new DataTable();
if (_lx == "xls")
{
_dt = ExcelHelper.GetDataTable(_stream);
}
else
{
_dt = ExcelHelper.GetDataTableOfXlsx(_stream);
}
var list = ConvertHelper.ToList<SCP_PRICE_EXPORT>(ExcelHelper.RemoveEmpty(_dt)).ToList();
List<string> partCodeList = list.Select(a => a..Trim()).ToList();
if (partCodeList.Count == 0)
{
Alert.Show("未填写零件编码!");
return;
}
List<string> list1 = new List<string>();
list1 = CheckPartCode(partCodeList);
if (list1.Count()>0)
{
Alert.Show(string.Format("导入文件中有不存在的零件,如{0}", list1.FirstOrDefault()));
return;
}
var ret = SCP_PO_CONTROLLER.EXCEL_PRICE_MOD1(list, CurrentUser.Name, CurrentUser.RoleList);
if (ret.State == ReturnStatus.Succeed && ret.Result == true)
{
BindData();
Alert.Show("导入成功!");
return;
}
else
{
Alert.Show(string.Join("<br>", ret.MessageList));
FileUpload1.Reset();
return;
}
}
/// 价格导出
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void BtnOutPut_OnClick(object sender, EventArgs e)
{
// _list = SCP_TB_PRICE_CONTROLLER.Getlist();
SearchV_TB_PRICEData((result) =>
{
var list = result.ToList();
Dictionary<string, string> cellheader = new Dictionary<string, string>();
string[] values = ckb1.SelectedValueArray;
if (values.Contains("14"))
{
cellheader.Add("Extend1", "状态");
}
if (values.Contains("1"))
{
cellheader.Add("VendId", "供应商编号");
}
if (values.Contains("2"))
{
cellheader.Add("Extend3", "供应商名称");
}
if (values.Contains("3"))
{
cellheader.Add("PartCode", "零件编号");
}
if (values.Contains("4"))
{
cellheader.Add("PartName", "零件名称");
}
if (values.Contains("5"))
{
cellheader.Add("SubSite", "地点");
}
if (values.Contains("6"))
{
cellheader.Add("StartTime", "开始时间");
}
if (values.Contains("7"))
{
cellheader.Add("EndTime", "结束时间");
}
if (values.Contains("8"))
{
cellheader.Add("Curr", "币种");
}
if (values.Contains("9"))
{
cellheader.Add("Unit", "单位");
}
if (values.Contains("10"))
{
cellheader.Add("Amt", "零件基础价格");
}
if (values.Contains("11"))
{
cellheader.Add("Extend2", "是否临时价格");
}
if (values.Contains("12"))
{
cellheader.Add("Remark", "备注");
}
if (values.Contains("13"))
{
cellheader.Add("SharingPrice", "零件分摊单价");
}
if (values.Contains("15"))
{
cellheader.Add("Creator", "导入者");
}
string url = EntityListToExcel2003(cellheader, list, "价格信息");
});
// var list = Sort<TB_PRICE>(_list.AsQueryable(), Grid1).ToList();
// 2.设置单元格抬头
// key:实体对象属性名称,可通过反射获取值
// value:Excel列的名称
}
protected void btnShowGP_OnClick(object sender, EventArgs e)
{
gp2.Hidden = false;
}
protected void btnShowALL_OnClick(object sender, EventArgs e)
{
V_TB_PRICE _entity = new V_TB_PRICE();
if (!string.IsNullOrEmpty(textVendId.Text))
{
_entity.VendId = textVendId.Text;
}
if (!string.IsNullOrEmpty(textPartCode.Text))
{
_entity.PartCode = textPartCode.Text;
}
if (!string.IsNullOrEmpty(textVendName.Text))
{
_entity.Extend3 = textVendName.Text;
}
if (!string.IsNullOrEmpty(textPartName.Text))
{
_entity.PartName = textPartName.Text;
}
if (!string.IsNullOrEmpty(textCreator.Text))
{
_entity.Creator = textCreator.Text;
}
if (DP_StartDate.SelectedDate != null)
{
_entity.StartTime = DP_StartDate.SelectedDate;
}
if (Date_EndDate.SelectedDate != null)
{
_entity.EndTime = Date_EndDate.SelectedDate;
}
if (DP_StartDate.SelectedDate != null && Date_EndDate.SelectedDate == null)
{
_entity.EndTime = DateTime.Now;
}
if (DP_StartDate.SelectedDate == null && Date_EndDate.SelectedDate != null)
{
_entity.StartTime = DateTime.Now;
}
if (!string.IsNullOrEmpty(DDL_State.SelectedValue))
{
_entity.State = int.Parse(DDL_State.SelectedValue);
}
_entity.Extend2 = !string.IsNullOrEmpty(DDL_Extend2.SelectedValue) ? DDL_Extend2.SelectedValue : string.Empty;
if (!string.IsNullOrEmpty(NB_Amt.Text))
{
_entity.Amt = decimal.Parse(NB_Amt.Text);
}
if (!string.IsNullOrEmpty(NB_TemporaryPrice.Text))
{
_entity.TemporaryPrice = int.Parse(NB_TemporaryPrice.Text);
}
if (!string.IsNullOrEmpty(NB_SharingPrice.Text))
{
_entity.SharingPrice = decimal.Parse(NB_SharingPrice.Text);
}
if (!string.IsNullOrEmpty(factoryList.SelectedValue))
{
_entity.SubSite = factoryList.SelectedValue;
}
_entity.UserInAddress = CurrentUser.FactoryList;
_entity.UserInVendIds = CurrentUser.VenderList;
_entity.UserInSubSite = CurrentUser.SubSiteList;
if (CurrentUser.RoleList.Contains("供应商") && CurrentUser.VenderList.Count == 0)
{
return;
}
SCP_TB_PRICE_CONTROLLER.Get_TB_PRICE_List(ckb_Priec.Checked, _entity, (_ret) =>
{
if (_ret.State == ReturnStatus.Succeed)
{
Dictionary<string, string> cellheader = new Dictionary<string, string>
{
{ "UID","标识"},
{ "PartCode" ,"零件编码" },
{"VendId" ,"供应商编号" },
{ "Curr","币种"},
{ "Remarks","备注"},
{ "Unit","单位"},
{ "Site","域"},
{"SubSite" ,"地点"},
{"TemporaryPrice" ,"是否临时价格"},
{"StartTime" ,"开始时间" },
{"EndTime" ,"结束时间" },
{"Amt" ,"零件基础价格" },
{"NewPrice" ,"零件最新价格" },
{"NewStartTime" ,"最新开始时间" },
{"NewEndTime" ,"最新结束时间" }
};
string url = EntityListToExcel2003(cellheader, _ret.Result.ToList(), "价格单信息");
}
});
}
protected void btnShowGP_OnClick1(object sender, EventArgs e)
{
V_TB_PRICE _entity = new V_TB_PRICE();
List<string> _ls = new List<string>();
for (int i = 0, count = Grid1.Rows.Count; i < count; i++)
{
if (Grid1.SelectedRowIndexArray.Contains(i))
{
object[] rowDataKeys = Grid1.DataKeys[i];
_ls.Add(rowDataKeys[0].ToString());
}
}
if (_ls.Count == 0)
{
Alert.Show("请选择导出记录!");
return;
}
else
{
_entity.UIDList = new List<long>();
_ls.ForEach(p =>
{
if (!string.IsNullOrEmpty(p))
{
_entity.UIDList.Add(long.Parse(p));
}
});
}
SCP_TB_PRICE_CONTROLLER.Get_TB_PRICEDC_List( _entity, (_ret) =>
{
if (_ret.State == ReturnStatus.Succeed)
{
Dictionary<string, string> cellheader = new Dictionary<string, string>
{
{ "UID","标识"},
{ "PartCode" ,"零件编码" },
{"VendId" ,"供应商编号" },
{ "Curr","币种"},
{ "Remarks","备注"},
{ "Unit","单位"},
{ "Site","域"},
{"SubSite" ,"地点"},
{"TemporaryPrice" ,"是否临时价格"},
{"StartTime" ,"开始时间" },
{"EndTime" ,"结束时间" },
{"Amt" ,"零件基础价格" },
{"NewPrice" ,"零件最新价格" },
{"NewStartTime" ,"最新开始时间" },
{"NewEndTime" ,"最新结束时间" }
};
string url = EntityListToExcel2003(cellheader, _ret.Result.ToList(), "价格单信息");
}
});
}
protected void btnShow_OnClick(object sender, EventArgs e)
{
gp1.Hidden = false;
}
//关闭
protected void btnClose_OnClick(object sender, EventArgs e)
{
gp1.Hidden = true;
}
protected void btnCloseCheck_OnClick(object sender, EventArgs e)
{
gp2.Hidden = true;
}
protected void Grid1_OnPageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindData();
}
protected void ddlGridPageSize_OnSelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlGridPageSize.SelectedValue);
BindData();
}
protected void Grid1_OnSort(object sender, GridSortEventArgs e)
{
BindData();
}
protected void Grid_V_TB_PRICE_PageIndexChange(object sender, GridPageEventArgs e)
{
BindData();
}
protected void btnConfirm1_Click(object sender, EventArgs e)
{
}
protected void DDL_State_SelectedIndexChanged(object sender, EventArgs e)
{
BindData();
}
protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
int rowID = Convert.ToInt32(Grid1.DataKeys[e.RowIndex][0]);
List<long> _UidList = new List<long>();
_UidList.Add(long.Parse(rowID.ToString()));
var t1 = Grid1.DataKeys[e.RowIndex][12];
if (t1==null)
{
Alert.Show("当前价格导入者为空!");
return;
}
if (CurrentUser.Name.Trim().ToUpper() != t1.ToString().ToUpper())
{
Alert.Show("删除价格导入者不是当前登录人!");
return;
}
var ret = SCP_TB_PRICE_CONTROLLER.Save_TB_PRICE_STATE(_UidList, CurrentUser.Name, (int)PriceState.Reject);
if (ret.State == ReturnStatus.Succeed)
{
BindData();
Alert.Show("删除成功!");
return;
}
else
{
if (ret.MessageList.Count > 0)
{
Alert.Show(string.Join("<br>", ret.MessageList));
return;
}
else
{
Alert.Show(ret.Message);
}
}
}
if(e.CommandName=="Info")
{
object[] rowDataKeys = Grid1.DataKeys[e.RowIndex];
string VendID = rowDataKeys[1] as string;
string PartCode = rowDataKeys[11] as string;
string Site = rowDataKeys[13] as string;
string SubSite = rowDataKeys[14] as string;
PageContext.RegisterStartupScript(Window1.GetShowReference(string.Format("../BasicData/SCP_PRICE_DETAIL.aspx?VendId={0}&&PartCode={1}&&Site={2}&&SubSite={3}", VendID, PartCode, Site, SubSite)));
}
}
/// <summary>
/// 价格报废
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnReject_Click(object sender, EventArgs e)
{
int[] _selections = Grid1.SelectedRowIndexArray;
if (_selections.Count() == 0)
{
Alert.Show("请选择数据!");
return;
}
List<long> _UidList = new List<long>();
int ConfirmState = (int)PriceState.New;
for (int i = 0, count = Grid1.Rows.Count; i < count; i++)
{
if (_selections.Contains(i))
{
object[] rowDataKeys = Grid1.DataKeys[i];
if (!string.IsNullOrEmpty(rowDataKeys[0].ToString()) && Int32.Parse(rowDataKeys[2].ToString()) == ConfirmState)
{
_UidList.Add(long.Parse(rowDataKeys[0].ToString()));
}
}
}
if (_UidList.Count != _selections.Count())
{
Alert.Show("选择的记录中包含不可报废数据,请从新选择!");
return;
}
var ret = SCP_TB_PRICE_CONTROLLER.Save_TB_PRICE_STATE(_UidList, CurrentUser.Name, (int)PriceState.Reject);
if (ret.State == ReturnStatus.Succeed)
{
BindData();
Alert.Show("报废成功!");
return;
}
else
{
if (ret.MessageList.Count > 0)
{
Alert.Show(string.Join("<br>", ret.MessageList));
return;
}
else
{
Alert.Show(ret.Message);
}
}
}
protected void BtnDelete_Click(object sender, EventArgs e)
{
//CurrentUser.Name
//int[] _selections = Grid1.SelectedRowIndexArray;
//if (_selections.Count() == 0)
//{
// Alert.Show("请选择数据!");
// return;
//}
//List<long> _UidList = new List<long>();
//int ConfirmState = (int)PriceState.New;
//for (int i = 0, count = Grid1.Rows.Count; i < count; i++)
//{
// if (_selections.Contains(i))
// {
// object[] rowDataKeys = Grid1.DataKeys[i];
// if (!string.IsNullOrEmpty(rowDataKeys[0].ToString()) && Int32.Parse(rowDataKeys[2].ToString()) == ConfirmState)
// {
// _UidList.Add(long.Parse(rowDataKeys[0].ToString()));
// }
// }
//}
//if (_UidList.Count != _selections.Count())
//{
// Alert.Show("选择的记录中包含不可报废数据,请从新选择!");
// return;
//}
//var ret = SCP_TB_PRICE_CONTROLLER.Save_TB_PRICE_STATE(_UidList, CurrentUser.Name, (int)PriceState.Reject);
//if (ret.State == ReturnStatus.Succeed)
//{
// BindData();
// Alert.Show("报废成功!");
// return;
//}
//else
//{
// if (ret.MessageList.Count > 0)
// {
// Alert.Show(string.Join("<br>", ret.MessageList));
// return;
// }
// else
// {
// Alert.Show(ret.Message);
// }
//}
}
protected void factoryList_SelectedIndexChanged(object sender, EventArgs e)
{
}
protected void Grid_V_TB_PRICE_RowDataBound(object sender, GridRowEventArgs e)
{
var itm = e.DataItem as V_TB_PRICE;
if (itm.Flag == "1" && itm.State == (int)PriceState.FConfirm)//1未完成得
{
highlightRows.Text += e.RowIndex.ToString() + ",";
}
}
}
}