Example #1
0
 public int SaveSaleReturn(TSaleReturn obj)
 {
     if (obj.Content.ID != null && obj.Content.ID > 0)
     {
         MMS_SaleReturnContent content = dao.GetInfo(obj.Content.ID);
         if (content.AuditFlag == true)
         {
             throw new Exception("该单据已经审核" + content.SaleBillCode);
         }
     }
     return(dao.SaveSaleReturn(obj));
 }
Example #2
0
 public bool AuditSaleReturn(int id, bool isAudit, string operatorCode)
 {
     using (TransactionScope ts = new TransactionScope()) //开启DTC事务
     {
         TSaleReturn           tsale   = dao.GetSaleReturn(id);
         MMS_SaleReturnContent content = tsale.Content;
         if (content.AuditFlag == true) //??存在缓存
         {
             throw new Exception("该单据已经审核" + content.SaleBillCode);
         }
         foreach (TSaleReturnDetail tSaleDetail in tsale.Detail)
         {
             MMS_Store storeParam = new MMS_Store();
             storeParam.Warehouse   = content.WareHouse;
             storeParam.ProductCode = tSaleDetail.DetDetail.ProductCode;
             MMS_Store sto = null;
             sto = daoStore.GetStore(storeParam);
             if (sto == null) //库存中没有该商品
             {
                 sto             = new MMS_Store();
                 sto.Warehouse   = tsale.Content.WareHouse;
                 sto.ProductCode = tSaleDetail.DetDetail.ProductCode;
                 sto.Quantity    = tSaleDetail.DetDetail.Quantity;
                 sto.Price       = tSaleDetail.DetDetail.Price;
                 sto.Amount      = sto.Quantity * sto.Price;
                 sto.Memo        = "";
                 daoStore.InsertInfo(sto);
             }
             else
             {
                 sto.Quantity += tSaleDetail.DetDetail.Quantity;
                 sto.Amount   += tSaleDetail.DetDetail.Quantity * sto.Price; //* tSaleDetail.DetDetail.Price;
                 if (sto.Quantity > 0)
                 {
                     sto.Price = sto.Amount / sto.Quantity;
                 }
                 daoStore.UpdateInfo(sto);
             }
             //更新销售退回成本价
             MMS_SaleReturnDetail saleRetDet = tSaleDetail.DetDetail;
             saleRetDet.Cost = sto.Price;
             dao.UpdateSaleReturnDetail(saleRetDet);
         }
         content.AuditFlag   = isAudit;
         content.Operator    = operatorCode;
         content.OperateDate = DateTime.Now;
         dao.UpdateInfo(content);
         ts.Complete();
     }
     return(true);
 }
Example #3
0
        /// <summary>
        ///   获得组合实体
        /// </summary>
        /// <param name="id"> 实体id号 </param>
        /// <returns> 自定义组合实体 </returns>
        public TSaleReturn GetSaleReturn(int id)
        {
            TSaleReturn resu = new TSaleReturn();

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

            List <MMS_SaleReturnDetail> tempList =
                dc.MMS_SaleReturnDetail.Where(itm => itm.SaleBillCode == resu.Content.SaleBillCode).ToList();

            foreach (MMS_SaleReturnDetail item in tempList)
            {
                TSaleReturnDetail TDetail = new TSaleReturnDetail();
                TDetail.OprType   = OperateType.otNone;
                TDetail.DetDetail = item;
                resu.Detail.Add(TDetail);
            }
            return(resu);
        }
Example #4
0
        /// <summary>
        ///   保存组合实体
        /// </summary>
        /// <param name="obj"> 实体id号 </param>
        /// <returns> 自定义组合实体 </returns>
        public int SaveSaleReturn(TSaleReturn obj)
        {
            if (obj.OprType == OperateType.otInsert)
            {
                dc.MMS_SaleReturnContent.InsertOnSubmit(obj.Content);
            }
            else if (obj.OprType == OperateType.otUpdate)
            {
                var query = from item in dc.MMS_SaleReturnContent
                            where item.ID == obj.Content.ID
                            select item;
                BatchEvaluate.Eval(obj.Content, query.First());
            }
            else if (obj.OprType == OperateType.otDelete)
            {
                dc.MMS_SaleReturnContent.DeleteOnSubmit(obj.Content);
            }

            foreach (TSaleReturnDetail item in obj.Detail)
            {
                if (item.OprType == OperateType.otInsert)
                {
                    dc.MMS_SaleReturnDetail.InsertOnSubmit(item.DetDetail);
                }
                else if (item.OprType == OperateType.otUpdate)
                {
                    var query = from itm in dc.MMS_SaleReturnContent
                                where itm.ID == item.DetDetail.ID
                                select itm;
                    BatchEvaluate.Eval(item.DetDetail, query.First());
                }
                else if (item.OprType == OperateType.otDelete)
                {
                    dc.MMS_SaleReturnDetail.DeleteOnSubmit(item.DetDetail);
                }
            }
            dc.SubmitChanges();
            return(obj.Content.ID);
        }