コード例 #1
0
 public int SaveAdjust(TAdjust obj)
 {
     if (obj.Content.ID != null && obj.Content.ID > 0)
     {
         MMS_AdjustContent content = dao.GetInfo(obj.Content.ID);
         if (content.AuditFlag == true)
         {
             throw new Exception("该单据已经审核" + content.AdjustBillCode);
         }
     }
     return(dao.SaveAdjust(obj));
 }
コード例 #2
0
ファイル: AdjustDao.cs プロジェクト: gdoujkzz/JiangChuanMMS
        /// <summary>
        ///   获得组合实体
        /// </summary>
        /// <param name="id"> 实体id号 </param>
        /// <returns> 自定义组合实体 </returns>
        public TAdjust GetAdjust(int id)
        {
            TAdjust resu = new TAdjust();

            resu.OprType = OperateType.otNone;
            resu.Content = dc.MMS_AdjustContent.Where(itm => itm.ID == id).First();

            List <MMS_AdjustDetail> tempList =
                dc.MMS_AdjustDetail.Where(itm => itm.AdjustBillCode == resu.Content.AdjustBillCode).ToList();

            foreach (MMS_AdjustDetail item in tempList)
            {
                TAdjustDetail TDetail = new TAdjustDetail();
                TDetail.OprType   = OperateType.otNone;
                TDetail.DetDetail = item;
                resu.Detail.Add(TDetail);
            }
            return(resu);
        }
コード例 #3
0
ファイル: AdjustDao.cs プロジェクト: gdoujkzz/JiangChuanMMS
        /// <summary>
        ///   保存组合实体
        /// </summary>
        /// <param name="obj"> 实体id号 </param>
        /// <returns> 自定义组合实体 </returns>
        public int SaveAdjust(TAdjust obj)
        {
            if (obj.OprType == OperateType.otInsert)
            {
                dc.MMS_AdjustContent.InsertOnSubmit(obj.Content);
            }
            else if (obj.OprType == OperateType.otUpdate)
            {
                var query = from item in dc.MMS_AdjustContent
                            where item.ID == obj.Content.ID
                            select item;
                BatchEvaluate.Eval(obj.Content, query.First());
            }
            else if (obj.OprType == OperateType.otDelete)
            {
                dc.MMS_AdjustContent.DeleteOnSubmit(obj.Content);
            }

            foreach (TAdjustDetail item in obj.Detail)
            {
                if (item.OprType == OperateType.otInsert)
                {
                    dc.MMS_AdjustDetail.InsertOnSubmit(item.DetDetail);
                }
                else if (item.OprType == OperateType.otUpdate)
                {
                    var query = from itm in dc.MMS_AdjustDetail
                                where itm.ID == item.DetDetail.ID
                                select itm;
                    BatchEvaluate.Eval(item.DetDetail, query.First());
                }
                else if (item.OprType == OperateType.otDelete)
                {
                    dc.MMS_AdjustDetail.DeleteOnSubmit(item.DetDetail);
                }
            }
            dc.SubmitChanges();
            return(obj.Content.ID);
        }
コード例 #4
0
        /// <summary>
        ///   打印调拨单时调用
        /// </summary>
        /// <param name="id"> </param>
        /// <param name="isAudit"> </param>
        /// <param name="operatorCode"> </param>
        /// <returns> </returns>
        public bool AuditAdjust(int id, bool isAudit, string operatorCode)
        {
            using (TransactionScope ts = new TransactionScope())
            {
                TAdjust           tad       = dao.GetAdjust(id);
                MMS_AdjustContent adContent = tad.Content;

                foreach (TAdjustDetail adDetail in tad.Detail)
                {
                    string productCode = adDetail.DetDetail.ProductCode;
                    int    qty         = adDetail.DetDetail.Quantity;
                    double price       = adDetail.DetDetail.Price;
                    if (qty != 0)
                    {
                        MMS_Store Param1 = new MMS_Store();
                        Param1.Warehouse   = adContent.SourceWareHouse;
                        Param1.ProductCode = productCode;
                        MMS_Store sourceStore = daoStore.GetStore(Param1);
                        if (sourceStore == null)
                        {
                            throw new Exception("货品在源仓库不存在");
                        }
                        if (qty > sourceStore.Quantity)
                        {
                            throw new Exception("源仓库货品数量不足");
                        }
                        sourceStore.Quantity -= qty;
                        sourceStore.Amount   -= qty * price;
                        if (sourceStore.Quantity != 0)
                        {
                            sourceStore.Price = sourceStore.Amount / sourceStore.Quantity;
                        }
                        daoStore.UpdateInfo(sourceStore);

                        MMS_Store Param2 = new MMS_Store();
                        Param2.Warehouse   = adContent.TargetWareHouse;
                        Param2.ProductCode = productCode;
                        MMS_Store targetStore = daoStore.GetStore(Param2);
                        if (targetStore != null)
                        {
                            targetStore.Quantity += qty;
                            targetStore.Amount   += qty * price;
                            if (targetStore.Quantity != 0)
                            {
                                targetStore.Price = targetStore.Amount / targetStore.Quantity;
                            }
                            daoStore.UpdateInfo(targetStore);
                        }
                        else
                        {
                            MMS_Store newTarSto = new MMS_Store();
                            newTarSto.Warehouse   = adContent.TargetWareHouse;
                            newTarSto.ProductCode = productCode;
                            newTarSto.Quantity    = qty;
                            newTarSto.Price       = price;
                            newTarSto.Amount      = qty * price;
                            daoStore.InsertInfo(newTarSto);
                        }
                    }
                }
                adContent.AuditFlag = true;
                dao.UpdateInfo(adContent);
                ts.Complete();
            }
            return(true);
        }