public ActionResult SaveModify(MaterialReceiptExViewModel model) { MethodReturnResult result = new MethodReturnResult(); using (MaterialReceiptServiceClient client = new MaterialReceiptServiceClient()) { MaterialReceipt MaterialReceipt = new MaterialReceipt() { Key = model.ReceiptNo, ReceiptDate = model.ReceiptDate, OrderNumber = model.OrderNumber, Description = model.Description, LineStore = model.LineStore, Creator = model.Creator, Editor = User.Identity.Name }; result = client.ModifyMaterialReceipt(MaterialReceipt); if (result.Code == 0) { result.Message = string.Format(LSMResources.StringResource.MaterialReceipt_Save_Success, model.ReceiptNo); } } return(Json(result)); }
public ActionResult Save(MaterialReceiptExViewModel model) { MethodReturnResult result = new MethodReturnResult(); try { using (MaterialReceiptServiceClient client = new MaterialReceiptServiceClient()) { MethodReturnResult <MaterialReceipt> resultOfAddMaterial = new MethodReturnResult <MaterialReceipt>(); MaterialReceipt materialReceipt = new MaterialReceipt() { Key = model.ReceiptNo, ReceiptDate = model.ReceiptDate, Description = model.Description, OrderNumber = model.OrderNumber, LineStore = model.LineStore, Editor = User.Identity.Name, Creator = User.Identity.Name, }; resultOfAddMaterial = client.AddMaterialReceipt(materialReceipt); if (resultOfAddMaterial.Code == 0) { result.Message = string.Format(LSMResources.StringResource.MaterialReceipt_Save_Success , resultOfAddMaterial.Data.Key); result.Detail = resultOfAddMaterial.Data.Key; } else { result.Code = resultOfAddMaterial.Code; result.Message = resultOfAddMaterial.Message; } } } catch (Exception ex) { result.Code = 1000; result.Message = ex.Message; result.Detail = ex.ToString(); } return(Json(result)); }
public async Task <ActionResult> ExportToExcel(MaterialReceiptDetailQueryViewModel model) { IList <MaterialReceiptDetail> lst = new List <MaterialReceiptDetail>(); using (MaterialReceiptServiceClient client = new MaterialReceiptServiceClient()) { await Task.Run(() => { PagingConfig cfg = new PagingConfig() { IsPaging = false, OrderBy = "CreateTime Desc,Key.ReceiptNo,Key.ItemNo", Where = GetWhereCondition(model) }; MethodReturnResult <IList <MaterialReceiptDetail> > result = client.GetDetail(ref cfg); if (result.Code == 0) { lst = result.Data; } }); } //创建工作薄。 IWorkbook wb = new HSSFWorkbook(); //设置EXCEL格式 ICellStyle style = wb.CreateCellStyle(); style.FillForegroundColor = 10; //有边框 style.BorderBottom = BorderStyle.THIN; style.BorderLeft = BorderStyle.THIN; style.BorderRight = BorderStyle.THIN; style.BorderTop = BorderStyle.THIN; IFont font = wb.CreateFont(); font.Boldweight = 10; style.SetFont(font); ICell cell = null; IRow row = null; ISheet ws = null; for (int j = 0; j < lst.Count; j++) { if (j % 65535 == 0) { ws = wb.CreateSheet(); row = ws.CreateRow(0); #region //列名 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(LSMResources.StringResource.MaterialReceiptViewModel_ReceiptNo); //领料号 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(LSMResources.StringResource.MaterialReceiptViewModel_OrderNumber); //工单号 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(LSMResources.StringResource.MaterialReceiptViewModel_ReceiptDate); //领料日期 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(LSMResources.StringResource.MaterialReceiptDetailViewModel_ItemNo); //项目号 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(LSMResources.StringResource.MaterialReceiptDetailViewModel_LineStoreName); //线别仓 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(LSMResources.StringResource.MaterialReceiptDetailViewModel_MaterialCode); //物料编码 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue("物料名称"); //物料名称 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(LSMResources.StringResource.MaterialReceiptDetailViewModel_MaterialLot); //物料批号 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(LSMResources.StringResource.MaterialReceiptDetailViewModel_Qty); //数量 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(LSMResources.StringResource.MaterialReceiptDetailViewModel_SupplierMaterialLot); //供应商批号 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(LSMResources.StringResource.MaterialReceiptDetailViewModel_SupplierCode); //供应商编码 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue("供应商名称"); //供应商名称 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue("描述"); //描述 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue("编辑人"); //编辑人 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue("编辑时间"); //编辑时间 #endregion font.Boldweight = 5; } MaterialReceiptDetail obj = lst[j]; MaterialReceipt mrObj = model.GetMaterialReceipt(obj.Key.ReceiptNo); Material m = model.GetMaterial(obj.MaterialCode); Supplier s = model.GetSupplier(obj.SupplierCode); row = ws.CreateRow(j + 1); #region //数据 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(obj.Key.ReceiptNo); //领料号 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(mrObj == null ? string.Empty : mrObj.OrderNumber); //工单号 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(mrObj == null ? string.Empty : string.Format("{0:yyyy-MM-dd}", mrObj.ReceiptDate)); //领料日期 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(obj.Key.ItemNo); //项目号 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(obj.LineStoreName); //线别仓 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(obj.MaterialCode); //物料编码 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(m == null ? string.Empty : m.Name); //物料名称 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(obj.MaterialLot); //物料批号 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(obj.Qty); //数量 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(obj.SupplierMaterialLot); //供应商批号 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(obj.SupplierCode); //供应商编码 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(s == null ? string.Empty : s.Name); //供应商名称 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(obj.Description); //描述 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(obj.Editor); //编辑人 cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(string.Format("{0:yyyy-MM-dd HH:mm:ss}", obj.EditTime)); //编辑时间 #endregion } MemoryStream ms = new MemoryStream(); wb.Write(ms); ms.Flush(); ms.Position = 0; return(File(ms, "application/vnd.ms-excel", "MaterialReceiptData.xls")); }
public async Task <ActionResult> Save(MaterialReceiptViewModel model) { MethodReturnResult rst = new MethodReturnResult(); try { using (MaterialReceiptServiceClient client = new MaterialReceiptServiceClient()) { MaterialReceipt obj = new MaterialReceipt() { Key = model.ReceiptNo.ToUpper(), OrderNumber = model.OrderNumber.ToUpper(), ReceiptDate = model.ReceiptDate, Description = model.Description, Editor = User.Identity.Name, Creator = User.Identity.Name }; char splitChar = ','; var ItemNos = Request["ItemNo"].Split(splitChar); var LineStoreNames = Request["LineStoreName"].Split(splitChar); var MaterialCodes = Request["MaterialCode"].Split(splitChar); var MaterialLots = Request["MaterialLot"].Split(splitChar); var Qtys = Request["Qty"].Split(splitChar); var SupplierMaterialLots = Request["SupplierMaterialLot"].Split(splitChar); var SupplierCodes = Request["SupplierCode"].Split(splitChar); //var Descriptions = Request["DetailDescription"].Split(splitChar); //var attr1s = Request["Attr1"].Split(splitChar); List <MaterialReceiptDetail> lst = new List <MaterialReceiptDetail>(); for (int i = 0; i < ItemNos.Length; i++) { string materialCode = MaterialCodes[i].ToUpper(); string materialLot = MaterialLots[i].ToUpper(); string lineStoreName = LineStoreNames[i].ToUpper(); //根据物料批号获取当前线别仓中的物料 using (LineStoreMaterialServiceClient client1 = new LineStoreMaterialServiceClient()) { PagingConfig cfg = new PagingConfig() { PageNo = 0, PageSize = 1, Where = string.Format("Key.MaterialLot='{0}' AND Key.OrderNumber='{1}' AND Key.LineStoreName='{2}'" , materialLot , obj.OrderNumber , lineStoreName) }; MethodReturnResult <IList <LineStoreMaterialDetail> > rst1 = client1.GetDetail(ref cfg); if (rst1.Code > 0) { return(Json(rst1)); } if (rst1.Data != null && rst1.Data.Count > 0 && rst1.Data[0].Key.MaterialCode != materialCode) { rst.Code = 2002; rst.Message = string.Format("项目号[{0}]的物料批号({1})已经由物料({2})领料使用,请更换新的物料批号。" , i + 1 , materialLot , rst1.Data[0].Key.MaterialCode); return(Json(rst)); } } //判断物料批号在本次领料中是否重复。 int count = MaterialLots.Count(m => m == materialLot); if (count > 1) { int lastedIndex = MaterialLots.ToList().LastIndexOf(materialLot); rst.Code = 2003; rst.Message = string.Format("项目号[{0}]物料批号({1})与项目号[{2}]的物料批号重复,如是相同物料料号请在同一个项目号中领取。" , i + 1 , materialLot , lastedIndex + 1); return(Json(rst)); } lst.Add(new MaterialReceiptDetail() { Key = new MaterialReceiptDetailKey() { ReceiptNo = model.ReceiptNo.ToUpper(), ItemNo = i + 1 }, LineStoreName = lineStoreName, MaterialCode = materialCode, MaterialLot = materialLot, Qty = Convert.ToDouble(Qtys[i]), SupplierMaterialLot = SupplierMaterialLots[i].ToUpper(), SupplierCode = SupplierCodes[i].ToUpper(), //Description = Descriptions[i], //Attr1 = attr1, Editor = User.Identity.Name, Creator = User.Identity.Name }); } rst = await client.AddAsync(obj, lst); if (rst.Code == 0) { rst.Message = string.Format(LSMResources.StringResource.MaterialReceipt_Save_Success , obj.Key); } } } catch (Exception ex) { rst.Code = 1000; rst.Message = ex.Message; rst.Detail = ex.ToString(); } return(Json(rst)); }
public void UpdateStock(MaterialReceipt materialReceipt) { if (materialReceipt.State == MaterialReceiptState.Confirmed) { foreach (MaterialReceiptItem item in materialReceipt.Items) { StockIn(materialReceipt.DepartmentID, item.ProductSkuInfo.SkuID, item.Quantity, item.Weight, item.PositionID, item.ProductNumber); } } }