chengsc
2 天以前 7cdde15ff2ac8ad11c5ec70de9518e3957459229
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -119,6 +119,7 @@
                     Status = tb1.Status,
                     AsnType = tb2.Type,
                     AsnStatus = tb2.Status,
                     IsPasteCode = tb5.IsPasteCode,
                     Lot1 = tb1.Lot1,
                     Lot2 = tb1.Lot2,
                     UDF1 = tb1.UDF1,
@@ -148,8 +149,15 @@
                }
                var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty + (m.SamplingQty == null? 0: m.SamplingQty));
                if (labelQty == null)
                {
                    labelQty = 0;
                }
                var qty = detail.Qty - labelQty;
                if (qty<0)
                {
                    qty = 0;
                }
                return qty.ToString();
            }
            catch (Exception e)
@@ -249,11 +257,11 @@
            string strMessage = "";
            /** model.type (单据类型)
            * 成品入库     0
            * 成品入库   0
            * 采购入库    1
            * 中间品不贴   2
            * 退货入库      3
            * 退货入库   3
            * 余料退回入库   4
            * 生产退料入库   8
            */
            var TypeLot = "1, 5, 6, 7";         //批次可为空单据类型
@@ -293,6 +301,8 @@
                    };
                    List<BllArrivalNoticeDetail> details = new List<BllArrivalNoticeDetail>();
                    var skuList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList();
                    foreach (ArrivalNoticeDetailVm detailModel in model.AsnDetail)
                    {
                        if (string.IsNullOrEmpty(detailModel.SkuNo))
@@ -310,8 +320,8 @@
                            strMessage = "-1:数量必须大于0;";
                            continue;
                        }
                        if (model.Type == "1" || model.Type == "5" || model.Type == "6" || model.Type == "7")
                        if ( model.Type == "5" || model.Type == "6" || model.Type == "7")
                        {
                            if (!string.IsNullOrWhiteSpace(detailModel.LotNo))
                            {
@@ -343,7 +353,7 @@
                                detailModel.LotNo = maxLotNo;
                            }
                        }
                        if (model.Type == "0" || model.Type == "2" || model.Type == "3" || model.Type == "4")
                        if (model.Type == "0" || model.Type == "1" || model.Type == "2" || model.Type == "3" || model.Type == "4" && model.Type == "8")
                        {
                            if (string.IsNullOrWhiteSpace(detailModel.LotNo))
                            {
@@ -367,6 +377,33 @@
                        {
                            detailModel.Price = 0;
                        }
                        var sku = skuList.FirstOrDefault(m => m.SkuNo == detailModel.SkuNo);
                        if (sku == null)
                        {
                            throw new Exception("未查询出物料信息!");
                        }
                        string lot1 = detailModel.Lot1;
                        string lot2 = detailModel.Lot2;
                        if (sku.IsPasteCode == "0")
                        {
                            //不贴标物料 生产日期、有效期不能为空
                            DateTime lot12;
                            DateTime lot22;
                            if (!DateTime.TryParse(detailModel.Lot1, out lot12))
                            {
                                throw new Exception("非贴标物料生产日期转换失败");
                            }
                            if (!DateTime.TryParse(detailModel.Lot2, out lot22))
                            {
                                throw new Exception("非贴标物料过期日期转换失败");
                            }
                            lot1 = lot12.ToString();
                            lot2 = lot22.ToString();
                        }
                        if (string.IsNullOrWhiteSpace(detailModel.PackagNo))
                        {
                            throw new Exception("包装不能为空");
                        }
                        // 计算出总金额
                        detailModel.Money = detailModel.Price * detailModel.Qty;
                        BllArrivalNoticeDetail detail = new BllArrivalNoticeDetail()
@@ -389,6 +426,8 @@
                            Status = "0",
                            IsSampling = "0",
                            InspectStatus = "0",
                            Lot1 = lot1, //生产日期
                            Lot2 = lot2, // 过期日期
                            UDF1 = detailModel.UDF1,
                            UDF2 = detailModel.UDF2,
                            UDF3 = detailModel.UDF3,
@@ -446,12 +485,12 @@
                lock (AsnLock)
                {
                    //判断是否为采购入库单据或车间余料退回入库
                    // 0:成品入库 1:采购入库 2:中间品入库 3:退货入库 4:车间余料退回入库 5:其它入库 6:代储入库 7:寄存入库
                    // 0:成品入库 1:采购入库 2:中间品入库 3:退货入库 4:车间余料退回入库 5:其它入库 6:代储入库 7:寄存入库 8 生产退料入库
                    //0、2、3、4 批次不能为空
                    //1、添加必须为空、编辑不可为空,不能更改
                    //5、6 批次可为空可不为空
                    //7 必须为空
                    var TypeLot = "1, 5, 6, 7"; //批次为生成批次单据类型
                    var TypeLot = " 5, 6, 7"; //批次为生成批次单据类型
                    
                    var asnInfo = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == model.ASNNo && m.IsDel == "0");
                    if (asnInfo == null) 
@@ -577,11 +616,11 @@
                        if (detailModel.Id == 0 || detailModel.Id == null)
                        {
                            if (model.Type == "1")
                            {
                                strMessage = "-1:采购入库不可更改明细,只可编辑数量;";
                                return strMessage;
                            }
                            //if (model.Type == "1")
                            //{
                            //    strMessage = "-1:采购入库不可更改明细,只可编辑数量;";
                            //    return strMessage;
                            //}
                            // 计算出总金额
                            detailModel.Money = detailModel.Price * detailModel.Qty;
@@ -603,6 +642,8 @@
                                IsBelt = detailModel.IsBelt,
                                SupplierLot = detailModel.SupplierLot,
                                Status = "0",
                                IsSampling = "0",
                                InspectStatus = "0",
                                Lot1 = detailModel.Lot1,
                                Lot2 = detailModel.Lot2,
                                UDF1 = detailModel.UDF1,
@@ -787,7 +828,7 @@
                    return "-1:入库单状态已变更,不可删除!";
                }
                if (asnModel.Origin != "录入" && asnModel.Origin != "采购单")
                if (asnModel.Origin != "录入" )//&& asnModel.Origin != "采购单"
                {
                    return "-1:上游系统下发的单据,不可删除;";
@@ -818,10 +859,17 @@
                asnDetail.UpdateTime = editDateTime;
                asnDetail.UpdateUser = model.CreateUser;
                //生成的标签
                var boxList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == asnDetail.Id && m.Origin == "WMS生成").ToList();
                Db.Ado.BeginTran();
                int rowCount = Db.Updateable(asnModel).ExecuteCommand();
                rowCount += Db.Updateable(asnDetail).ExecuteCommand();
                if (boxList.Count>0)
                {
                    rowCount += Db.Deleteable(boxList).ExecuteCommand();
                }
                if (rowCount < 2)
                {
                    Db.RollbackTran();