示例#1
0
        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));
        }
示例#2
0
        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));
        }
示例#3
0
        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"));
        }
示例#4
0
        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));
        }
示例#5
0
 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);
         }
     }
 }