using FineUIPro;
|
using iWareCommon.Common.Entity;
|
using iWareDataCore.BASE.Entity;
|
using iWareDataCore.BASE.EnumType;
|
using iWareDataCore.BASE.Service;
|
using iWareExcel.EXCEL.Service;
|
using iWareWms.Code.Excel.Service;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Collections.ObjectModel;
|
|
namespace iWareWms.View.InOut
|
{
|
public partial class CreateInOut : PageBase
|
{
|
protected void Page_Load(object sender, EventArgs e)
|
{
|
tbListNo.Text = DateTime.Now.ToFileTime().ToString();
|
|
}
|
|
protected override Grid GetGrid()
|
{
|
return InOutMaterialGrid;
|
}
|
|
protected override DropDownList GetPageSizeDropDownList()
|
{
|
return ddlPageSize;
|
}
|
|
protected void btCreatCode_Click(object sender, EventArgs e)
|
{
|
tbListNo.Text = DateTime.Now.ToFileTime().ToString();
|
}
|
|
|
|
protected override Window GetWindow()
|
{
|
return Window2;
|
}
|
|
|
protected override List<object> GetDataSource(int pageIndex, int pageSize, out string msg, out int totalNum, out int currentPage)
|
{
|
var materials = InputMaterialService.GetInstance().QueryByParam(new QueryParam
|
{
|
Filter = new Dictionary<string,object> { { "Status", "未生成" } },
|
PageIndex = pageIndex,
|
PageSize = pageSize
|
}, out msg, out totalNum, out currentPage);
|
var material = new List<object>();
|
materials.ForEach(x => material.Add(x));
|
return material;
|
}
|
|
protected override FineUIPro.Timer GetTimer()
|
{
|
return timer1;
|
}
|
|
protected void FileUpload1_FileSelected(object sender, EventArgs e)
|
{
|
string msg;
|
if (!FileUpload1.HasFile)
|
{
|
Alert.ShowInTop("请选择上传文件!");
|
return;
|
}
|
var dt = DateTime.Now;
|
string path = string.Format(@"c:\importExcel\{0}\{1}\{2}\{3}\", dt.Year, dt.Month, dt.Day, (long)(dt - Convert.ToDateTime("1970-01-01 08:00:00")).TotalMilliseconds); ;
|
path += FileUpload1.FileName;
|
FileUpload1.SaveAs(path);
|
var workBooks = WorkBookService.GetInstance().QueryByParam(new QueryParam { Filter = new Dictionary<string, object> { { "Name", "生成出入库单" } } }, out msg);
|
InputMaterialService.GetInstance().DeleteAll();
|
InOutListDetailViewService.GetInstance().ImportExcel(path, workBooks[0], out msg);
|
Alert.ShowInTop(string.IsNullOrEmpty(msg) ? "导入成功" : msg);
|
btCreatCode_Click(sender, e);
|
Query(1);
|
AddBtn.Enabled = true;
|
}
|
|
/// <summary>
|
/// 生成出入库单(确认是入库还是出库,入库的话确认不在库存中,且不在主任务中,出库的话也应该是必须在库中,而且两者都必须不在刚生成的未完成的出入库单明细中)
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
protected void AddBtn_Click(object sender, EventArgs e)
|
{
|
string msg;
|
string typeName = ddlTypeName.SelectedValue;
|
var inputmaterials = InputMaterialService.GetInstance().QueryByParam(new QueryParam { Filter = new Dictionary<string, object> { { "Status", "未生成" } } }, out msg);
|
if (inputmaterials != null && inputmaterials.Count > 0)
|
{
|
var placeMaterial = PlaceMaterialViewService.GetInstance().QueryByParam(new QueryParam { }, out msg);
|
var inoutdetails = InOutListDetailViewService.GetInstance().QueryByParam(new QueryParam { }, out msg);
|
List<string> codes = new List<string>();
|
inputmaterials.ForEach(x => codes.Add(x.Code));
|
List<int> ids = new List<int>();
|
var materials = InputMaterialService.GetInstance().GetIds(codes);
|
List<InOutListDetailEntity> detail = new List<InOutListDetailEntity>();
|
for (int i = 0; i < materials.Count; i++)
|
{
|
if (typeName == "入库")
|
{
|
|
if (placeMaterial.Select(x => x.MaterialId).Contains(materials[i].id))
|
{
|
msg = materials[i].code + "已存在立库中,不能添加到入库单明细中!";
|
break;
|
}
|
if (inoutdetails.Select(x => x.MaterialId).Contains(materials[i].id))
|
{
|
msg = materials[i].code + "已存在之前的入库单明细中,不能添加到当前入库单明细中!";
|
break;
|
}
|
|
}
|
else
|
{
|
if (!placeMaterial.Select(x => x.MaterialId).Contains(materials[i].id))
|
{
|
msg = materials[i].code + "不在立库中,不能添加到出库单明细中!";
|
break;
|
}
|
if (inoutdetails.Select(x => x.MaterialId).Contains(materials[i].id))
|
{
|
var inoutdeta=inoutdetails.FirstOrDefault(x=>x.MaterialId==materials[i].id);
|
if (inoutdeta.TypeName=="出库")
|
{
|
msg = materials[i].name + "已存在之前的出库单明细中,不能添加到当前出库单明细中!";
|
break;
|
}
|
}
|
}
|
InOutListDetailEntity inoutdetail = new InOutListDetailEntity()
|
{
|
MaterialId = materials[i].id,
|
IsFinish = 0
|
};
|
detail.Add(inoutdetail);
|
}
|
if (!string.IsNullOrEmpty(msg))
|
{
|
Alert.Show(msg);
|
return;
|
}
|
InOutListService.GetInstance().CreateListAndDetial(
|
new InOutListEntity
|
{
|
ListNo = tbListNo.Text,
|
CreateTime = DateTime.Now,
|
TypeName = ddlTypeName.SelectedText,
|
Status = 0,
|
Remark = "",
|
InOutListDetail = detail
|
}, out msg);
|
Alert.ShowInTop("生成" + ddlTypeName.SelectedText + "单成功");
|
InOutMaterialGrid.DataSource = null;
|
InOutMaterialGrid.DataBind();
|
InputMaterialService.GetInstance().DeleteAll();
|
}
|
else
|
{
|
Alert.ShowInTop("请先确保出入库单物料明细不为空!");
|
}
|
|
}
|
|
protected override void GridRowCommand(object sender, GridCommandEventArgs e)
|
{
|
|
var grid = InOutMaterialGrid;
|
//删除出入库单号
|
if (e.CommandName == "Delete")
|
{
|
int id = Convert.ToInt32(grid.Rows[e.RowIndex].DataKeys[0].ToString());
|
string msg;
|
int count = InputMaterialService.GetInstance().Delete(id, out msg);
|
if (count >= 0)
|
{
|
Alert.ShowInTop("删除成功!");
|
Query(1);
|
}
|
}
|
}
|
|
}
|
}
|