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.
 
 
 
 
 

419 lines
16 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CK.SCP.Models.ScpEntity;
using CK.SCP.Utils;
using CK.SCP.Controller;
using FineUI;
using System.IO;
using System.Data;
using CK.SCP.Models.ScpEntity.ExcelImportEntity;
using CK.SCP.Models.Enums;
using CK.SCP.Common;
using System.Text;
using CK.SCP.Models.ScpEntity.ExcelExportEnttity;
using CK.SCP.Models.ExchangeCenterTables;
namespace SCP.PlanData
{
public partial class SCP_PO : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadData();
}
}
public void LoadData()
{
if (CurrentUser.FactoryList
== null || CurrentUser.FactoryList.Count == 0)
{
Alert.Show("当前用户未选择地点");
return;
}
CheckRolesMenu();
BindOrder();
}
private void CheckRolesMenu()
{
if (CurrentUser.RoleList.Contains("采购人员") && CurrentUser.SubSiteList.Contains("BJ01"))
{
FileUp.Hidden = false;
btnInput_Contract.Hidden = false;
btnInput_Non_Contract.Hidden = false;
linkbutton.Hidden = false;
}
if (CurrentUser.RoleList.Contains("采购人员") && CurrentUser.SubSiteList.Contains("BJ02"))
{
FileUp.Hidden = false;
btnInput_Contract.Hidden = false;
btnInput_Non_Contract.Hidden = false;
linkbutton.Hidden = false;
}
if (CurrentUser.RoleList.Contains("采购人员") && CurrentUser.SubSiteList.Contains("HF01"))
{
FileUp.Hidden = false;
btnInput_Contract.Hidden = false;
btnInput_Non_Contract.Hidden = false;
linkbutton.Hidden = false;
}
}
public void BindOrder()
{
SearchV_TB_PO((result) => {
Grid_V_TB_PO.RecordCount = result.Count();
var list = SortAndPage<V_TB_PO>(result, Grid_V_TB_PO);
Grid_V_TB_PO.DataSource = list;
Grid_V_TB_PO.DataBind();
});
}
public void SearchV_TB_PO(Action<IQueryable<V_TB_PO>> p_action)
{
V_TB_PO _entity = new V_TB_PO();
_entity.IsDeleted = false;
if (this.DP_StartDate.SelectedDate != null)
{
_entity.BeginTime = DP_StartDate.SelectedDate;
}
if (DP_EndDate.SelectedDate != null)
{
_entity.EndTime = DP_EndDate.SelectedDate;
}
if (!string.IsNullOrEmpty(DDL_State.SelectedValue))
{
_entity.State = int.Parse(DDL_State.SelectedValue);
}
_entity.Buyer = TXT_Buyer.Text;
_entity.BuyerPhone = TXT_BuyerPhone.Text;
_entity.VendId = TXT_Vendid.Text;
_entity.PoBillNum = TXT_BillNo.Text;
_entity.VendName = TXT_VendName.Text;
if (!string.IsNullOrEmpty(rblist.SelectedValue))
{
_entity.ModType = ConvertHelper.To<int>(rblist.SelectedValue);
}
_entity.Site_Desc = TXT_Site_Desc.Text;
_entity.IsDeleted = false;
_entity.UserInAddress = CurrentUser.FactoryList;
_entity.UserInVendIds = CurrentUser.VenderList;
_entity.UserInSubSite = CurrentUser.SubSiteList;
_entity.PartCode = TXT_PartCode.Text;
_entity.SubSite = CurrentUser.UserdSite;
SCP_PO_CONTROLLER.Get_V_TB_PO_List(_entity, (_ret) =>
{
if (_ret.State == ReturnStatus.Succeed)
{
p_action(_ret.Result);
}
});
}
protected void Grid_V_TB_PO_RowDoubleClick(object sender, FineUI.GridRowClickEventArgs e)
{
object[] rowDataKeys = Grid_V_TB_PO.DataKeys[e.RowIndex];
string PoBillNum = rowDataKeys[1] as string;
string VendID = rowDataKeys[3] as string;
PageContext.RegisterStartupScript(Window1.GetShowReference(string.Format("../PlanData/SCP_PO_DETAIL.aspx?PoBillNum={0}", PoBillNum)));
}
protected void Grid_V_TB_PO_PageIndexChange(object sender, FineUI.GridPageEventArgs e)
{
BindOrder();
}
protected void Grid_V_TB_PO_Sort(object sender, FineUI.GridSortEventArgs e)
{
}
protected void btnOutput_Click(object sender, EventArgs e)
{
List<string> _ls = new List<string>();
for (int i = 0, count = Grid_V_TB_PO.Rows.Count; i < count; i++)
{
object[] rowDataKeys = Grid_V_TB_PO.DataKeys[i];
_ls.Add(rowDataKeys[1] as string);
}
DataSet ds = SCP_EXCEL_CONTROLLER.GET_PO_EXECEL(_ls);
PageBase.DataSetToExcel(ds, "采购订单");
}
protected void btnDetail_Click(object sender, EventArgs e)
{
if (Grid_V_TB_PO.SelectedRowIndexArray.Count() == 0)
{
PageContext.RegisterStartupScript(Alert.GetShowInTopReference("没有选择数据!"));
return;
}
object[] rowDataKeys = Grid_V_TB_PO.DataKeys[Grid_V_TB_PO.SelectedRowIndex];
if (rowDataKeys != null)
{
string PoBillNum = rowDataKeys[1] as string;
string VendID = rowDataKeys[3] as string;
PageContext.RegisterStartupScript(Window1.GetShowReference(string.Format("../PlanData/SCP_PO_DETAIL.aspx?PoBillNum={0}", PoBillNum)));
}
}
protected void btnShow_Click(object sender, EventArgs e)
{
gp1.Hidden = false;
}
protected void BtnClose_Click(object sender, EventArgs e)
{
gp1.Hidden = true;
}
protected void BtnSearch_Click(object sender, EventArgs e)
{
BindOrder();
}
protected void ddlGridPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid_V_TB_PO.PageSize = Convert.ToInt32(ddlGridPageSize.SelectedValue);
BindOrder();
}
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
BindOrder();
}
/// <summary>
/// 日程单导入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnInput_Click_Contract(object sender, EventArgs e)
{
Excel_Input(BillModType.Contract);
}
/// <summary>
/// 离散单导入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnInput_Click_Non_Contract(object sender, EventArgs e)
{
Excel_Input(BillModType.Non_Contract);
}
protected void Excel_Input(BillModType p_modtype)
{
ResultObject<bool> saveret = new ResultObject<bool>();
string _fileName = FileUp.FileName;
if (string.IsNullOrEmpty(_fileName))
{
Alert.Show("选择文件为空!");
FileUp.Reset();
return;
}
string _lx = _fileName.Split('.')[1];
Stream _stream = FileUp.PostedFile.InputStream;
DataTable _dt = new DataTable();
if (_lx == "xls")
{
_dt = ExcelHelper.GetDataTable(_stream);
}
else
{
_dt = ExcelHelper.GetDataTableOfXlsx(_stream);
}
var list = ConvertHelper.ToList<SCP_PO_EXPORT_IMPORT_MODEL>(ExcelHelper.RemoveEmpty(_dt)).ToList();
List<string> partCodeList = list.Select(a => a..Trim()).ToList();
if (partCodeList.Count == 0)
{
Alert.Show("未填写零件编码!");
FileUp.Reset();
return;
}
List<string> list1 = new List<string>();
try
{
list1 = CheckPartCode(partCodeList);
if (list1.Count() > 0)
{
Alert.Show(string.Format("导入文件中有不存在的零件,如{0}", list1.FirstOrDefault()));
FileUp.Reset();
return;
}
if (partCodeList.Distinct().Count() != list.Count())
{
Alert.Show("零件号不允许重复!");
FileUp.Reset();
return;
}
if (p_modtype == BillModType.Contract)
{
// 行号去重
List<string> polineList = list.Select(a => a..Trim()).Distinct().ToList();
if (polineList.Count() != list.Count())
{
Alert.Show("行号不允许重复!");
FileUp.Reset();
return;
}
}
var checkret = SCP_PO_CONTROLLER.Check_EXCEL_PO_MOD(list, p_modtype, CurrentUser.FactoryList[0], CurrentUser.SubSiteList[0]);
if (checkret.State == ReturnStatus.Failed && checkret.Result == false)
{
Alert.Show(string.Join("<br>", checkret.MessageList));
FileUp.Reset();
return;
}
if (CurrentUser.ConfigList.ContainsKey("数据中心接口"))
{
saveret = SCP_DC_UNI_CONTROLLER.WritePo(list, CurrentUser.FactoryList[0], CurrentUser.Name, DateTime.Now, p_modtype, CurrentUser.SubSiteList[0], CurrentUser.ChineseName, CurrentUser.CellPhone);
}
else
{
saveret = SCP_PO_CONTROLLER.Save_EXCEL_PO_MOD(list, CurrentUser.FactoryList[0], CurrentUser.Name, DateTime.Now, p_modtype, CurrentUser.SubSiteList[0], CurrentUser.ChineseName, CurrentUser.CellPhone);
}
if (saveret.State == ReturnStatus.Succeed && saveret.Result == true)
{
BindOrder();
FileUp.Reset();
Alert.Show("订单编号" + saveret.Message + "导入成功!");
return;
}
else
{
//Alert.Show(string.Join("<br>", saveret.MessageList));
Alert.Show(saveret.Message);
FileUp.Reset();
return;
}
}
catch(Exception ex)
{
Alert.Show(ex.Message);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(TEA_TASK_SUB), "InsterPo", ex.Message);
FileUp.Reset();
return;
}
//if (CurrentUser.ConfigList.ContainsKey("数据中心接口"))
//{
// var apiret = SCP_DC_UNI_CONTROLLER.InsterPo(list, CurrentUser.FactoryList[0], CurrentUser.Name, DateTime.Now, p_modtype, CurrentUser.SubSiteList[0]);
// if (apiret.State == ReturnStatus.Failed && apiret.Result == false)
// {
// Alert.Show(apiret.Message);
// return;
// }
//}
//var saveret = SCP_PO_CONTROLLER.Save_EXCEL_PO_MOD(list, CurrentUser.FactoryList[0], CurrentUser.Name, DateTime.Now, p_modtype, CurrentUser.SubSiteList[0], CurrentUser.ChineseName, CurrentUser.CellPhone);
}
protected void BTN_CREATE_Click(object sender, EventArgs e)
{
if (Grid_V_TB_PO.SelectedRowIndexArray.Count() == 0)
{
PageContext.RegisterStartupScript(Alert.GetShowInTopReference("没有选择数据!"));
return;
}
object[] rowDataKeys = Grid_V_TB_PO.DataKeys[Grid_V_TB_PO.SelectedRowIndex];
if (ConvertHelper.To<int>(rowDataKeys[9]) == 0)
{
PageContext.RegisterStartupScript(Alert.GetShowInTopReference("当前订单处于关闭状态,不能创建要货看板!"));
return;
}
if (rowDataKeys != null)
{
string PoBillNum = rowDataKeys[1] as string;
string VendID = rowDataKeys[3] as string;
PageContext.RegisterStartupScript(Window1.GetShowReference(string.Format("../PlanData/SCP_PO_CREATE_ASK.aspx?PoBillNum={0}", PoBillNum)));
}
}
protected void btnClosed_Click(object sender, EventArgs e)
{
int[] _selections = Grid_V_TB_PO.SelectedRowIndexArray;
List<string> _PoList = new List<string>();
for (int i = 0, count = Grid_V_TB_PO.Rows.Count; i < count; i++)
{
if (_selections.Contains(i))
{
object[] rowDataKeys = Grid_V_TB_PO.DataKeys[i];
if (!string.IsNullOrEmpty(rowDataKeys[2].ToString()))
{
_PoList.Add(rowDataKeys[2].ToString());
}
}
}
var checkret = SCP_PO_CONTROLLER.Check_PO_ASK(_PoList);
if (checkret.State == ReturnStatus.Failed && checkret.Result == false)
{
Alert.Show(string.Join("<br>", checkret.MessageList));
return;
}
if (CurrentUser.ConfigList.ContainsKey("数据中心接口"))
{
var apiret = SCP_DC_UNI_CONTROLLER.UpdatePo(_PoList, CurrentUser.FactoryList[0], CurrentUser.Name, DateTime.Now, CurrentUser.SubSiteList[0]);
if (apiret.State == ReturnStatus.Failed && apiret.Result == false)
{
Alert.Show("同步数据交换中心失败!");
return;
}
}
var ret = SCP_PO_CONTROLLER.Save_TB_PO_STATE(_PoList, PoState.Close);
if (ret.State == ReturnStatus.Succeed)
{
BindOrder();
Alert.Show("订单关闭成功!");
return;
}
else
{
Alert.Show(ret.Message);
}
}
protected void BtnSearchDetail_Click(object sender, EventArgs e)
{
string PoBillNum = TXT_BillNo.Text;
string VendName = TXT_VendName.Text;
string State = DDL_State.SelectedValue;
string PartCode = TXT_PartCode.Text;
PageContext.RegisterStartupScript(Window1.GetShowReference(string.Format("../PlanData/SCP_PO_DETAIL.aspx?PoBillNum={0}&&VendName={1}&&State={2}&&PartCode={3}", PoBillNum, VendName, State, PartCode)));
}
protected void btnModeType1_Click(object sender, EventArgs e)
{
rblist.SelectedValue = "1";
BindOrder();
}
protected void btnModeType2_Click(object sender, EventArgs e)
{
rblist.SelectedValue = "2";
BindOrder();
}
protected void LinkButton_Click(object sender, EventArgs e)
{
Alert.Show($"<a href=\'/uploadfiles/{".xlsx"}\'>{".xlsx"}</a>", "请点击文件名下载", MessageBoxIcon.Information);
}
protected void btnCloseAsk_Click(object sender, EventArgs e)
{
int[] _selections = Grid_V_TB_PO.SelectedRowIndexArray;
List<string> _PoList = new List<string>();
for (int i = 0, count = Grid_V_TB_PO.Rows.Count; i < count; i++)
{
if (_selections.Contains(i))
{
object[] rowDataKeys = Grid_V_TB_PO.DataKeys[i];
if (!string.IsNullOrEmpty(rowDataKeys[2].ToString()))
{
_PoList.Add(rowDataKeys[2].ToString());
}
}
}
}
}
}