Beispiel #1
0
        /// <summary>
        ///   修改入库单
        /// </summary>
        /// <param name="info"> </param>
        /// <returns> </returns>
        public bool UpdateInfo(MMS_PurchaseContent info)
        {
            var query = from item in dc.MMS_PurchaseContent
                        where item.ID == info.ID
                        select item;

            BatchEvaluate.Eval(info, query.First());
            dc.SubmitChanges();
            return(true);
        }
 /// <summary>
 ///   保存入库单
 /// </summary>
 /// <param name="obj"> 自定义入库单实体 </param>
 /// <returns> 入库单主表ID号 </returns>
 public int SavePurchase(TPurchase obj)
 {
     if (obj.Content.ID.ToString() != null && obj.Content.ID > 0)
     {
         MMS_PurchaseContent content = dao.GetInfo(obj.Content.ID);
         if (content.AuditFlag == true)
         {
             throw new Exception("该单据已经审核" + content.PurchaseBillCode);
         }
     }
     return(dao.SavePurchase(obj));
 }
Beispiel #3
0
        /// <summary>
        ///   验证记录中是否有重复值
        /// </summary>
        /// <param name="info"> 实体 </param>
        /// <returns> 如果不重复返回"" </returns>
        public string ValidateRepeat(MMS_PurchaseContent info)
        {
            int cnt1 =
                dc.MMS_PurchaseContent.Where(itm => itm.PurchaseBillCode == info.PurchaseBillCode && itm.ID != info.ID).
                Count();

            if (cnt1 > 0)
            {
                return("入库单据号重复");
            }
            return("");
        }
        /// <summary>
        ///   插入入库单
        /// </summary>
        /// <param name="info"> </param>
        /// <returns> </returns>
        public int InsertInfo(MMS_PurchaseContent info)
        {
            string msg = dao.ValidateRepeat(info);

            if (msg == "")
            {
                return(dao.InsertInfo(info));
            }
            else
            {
                throw new Exception(msg);
            }
        }
 /// <summary>
 ///   入库单审核确认
 /// </summary>
 /// <param name="id"> </param>
 /// <param name="isAudit"> </param>
 /// <param name="operatorCode"> </param>
 /// <returns> </returns>
 public bool AuditPurchase(int id, bool isAudit, string operatorCode)
 {
     using (TransactionScope ts = new TransactionScope())   //开启DTC事务
     {
         TPurchase           tPur    = dao.GetPurchase(id); //取入库单组合实体
         MMS_PurchaseContent content = tPur.Content;        //取入库单主内容实体
         if (content.AuditFlag == true)                     //如果入库单已审核
         {
             throw new Exception("该单据已经审核" + content.PurchaseBillCode);
         }
         foreach (TPurchaseDetail tPurDetail in tPur.Detail) //遍历入库单货品
         {
             MMS_Store storeParam = new MMS_Store();
             storeParam.Warehouse   = tPur.Content.WareHouse;
             storeParam.ProductCode = tPurDetail.DetDetail.ProductCode;
             MMS_Store sto = null;
             //根据仓库、货品代码取库存表中该货品信息
             sto = daoStore.GetStore(storeParam);
             if (sto == null)                       //库存中没有该货品
             {
                 sto             = new MMS_Store(); //创建库存表实例
                 sto.Warehouse   = tPur.Content.WareHouse;
                 sto.ProductCode = tPurDetail.DetDetail.ProductCode;
                 sto.Quantity    = tPurDetail.DetDetail.Quantity;
                 sto.Price       = tPurDetail.DetDetail.Price;
                 sto.Amount      = sto.Quantity * sto.Price;
                 daoStore.InsertInfo(sto); //将该货品信息插入到库存表
                 sto.Memo = "";
             }
             else //库存中有该货品
             {
                 sto.Quantity += tPurDetail.DetDetail.Quantity; //累加货品数量
                 //累加计算货品金额
                 sto.Amount += tPurDetail.DetDetail.Quantity * tPurDetail.DetDetail.Price;
                 if (sto.Quantity > 0)
                 {
                     sto.Price = sto.Amount / sto.Quantity; //根据金额、数量计算单价
                 }
                 daoStore.UpdateInfo(sto);                  //更新库存表
             }
         }
         content.AuditFlag   = isAudit; //入库审核标志
         content.Operator    = operatorCode;
         content.OperateDate = DateTime.Now;
         dao.UpdateInfo(content); //更新入库单的审核标志
         ts.Complete();           //提交事务
     }
     return(true);
 }
 /// <summary>
 ///   修改入库单
 /// </summary>
 /// <param name="info"> </param>
 /// <returns> </returns>
 public bool UpdateInfo(MMS_PurchaseContent info)
 {
     return(dao.UpdateInfo(info));
 }
Beispiel #7
0
 /// <summary>
 ///   插入入库单
 /// </summary>
 /// <param name="info"> </param>
 /// <returns> </returns>
 public int InsertInfo(MMS_PurchaseContent info)
 {
     dc.MMS_PurchaseContent.InsertOnSubmit(info);
     dc.SubmitChanges();
     return(info.ID);
 }