示例#1
0
        /// <summary>
        ///   修改销售单
        /// </summary>
        /// <param name="info"> </param>
        /// <returns> </returns>
        public bool UpdateInfo(MMS_SaleContent info)
        {
            var query = from item in dc.MMS_SaleContent
                        where item.ID == info.ID
                        select item;

            BatchEvaluate.Eval(info, query.First());
            dc.SubmitChanges();
            return(true);
        }
示例#2
0
        /// <summary>
        ///   验证记录中是否有重复值
        /// </summary>
        /// <param name="info"> 实体 </param>
        /// <returns> 如果不重复返回"" </returns>
        public string ValidateRepeat(MMS_SaleContent info)
        {
            int cnt1 = dc.MMS_SaleContent.Where(itm => itm.SaleBillCode == info.SaleBillCode && itm.ID != info.ID).Count();

            if (cnt1 > 0)
            {
                return("代码重复");
            }
            return("");
        }
示例#3
0
 /// <summary>
 ///   保存销售单
 /// </summary>
 /// <param name="obj"> 自定义销售单实体 </param>
 /// <returns> 销售单ID号 </returns>
 public int SaveSale(TSale obj)
 {
     if (obj.Content.ID != null && obj.Content.ID > 0)
     {
         MMS_SaleContent content = dao.GetInfo(obj.Content.ID);
         if (content.AuditFlag == true)
         {
             throw new Exception("该单据已经审核" + content.SaleBillCode);
         }
     }
     return(dao.SaveSale(obj));
 }
示例#4
0
        /// <summary>
        ///   插入销售单
        /// </summary>
        /// <param name="info"> </param>
        /// <returns> </returns>
        public int InsertInfo(MMS_SaleContent info)
        {
            string msg = dao.ValidateRepeat(info);

            if (msg == "")
            {
                return(dao.InsertInfo(info));
            }
            else
            {
                throw new Exception(msg);
            }
        }
示例#5
0
 /// <summary>
 ///   打印销售单
 /// </summary>
 /// <param name="id"> </param>
 /// <param name="isAudit"> </param>
 /// <param name="operatorCode"> </param>
 /// <returns> </returns>
 public bool AuditSale(int id, bool isAudit, string operatorCode)
 {
     using (TransactionScope ts = new TransactionScope()) //开启DTC事务
     {
         TSale           tsale   = dao.GetSale(id);       //取销售单组合实体
         MMS_SaleContent content = tsale.Content;         //取入销售主内容实体
         if (content.AuditFlag == true)                   //如果销售单已审核
         {
             throw new Exception("该单据已经审核" + content.SaleBillCode);
         }
         foreach (TSaleDetail 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) //库存中没有该商品
             {
                 throw new Exception("库存中没有该商品,不能销售" + tSaleDetail.DetDetail.ProductCode);
             }
             else
             {
                 if (tSaleDetail.DetDetail.Quantity > sto.Quantity) //如果销售数量大于库存数量
                 {
                     throw new Exception("库存数据不足,不能销售" + tSaleDetail.DetDetail.ProductCode);
                 }
                 sto.Quantity -= tSaleDetail.DetDetail.Quantity;             //销售冲减数量
                 sto.Amount   -= tSaleDetail.DetDetail.Quantity * sto.Price; //销售冲减金额
                 if (sto.Quantity > 0)
                 {
                     sto.Price = sto.Amount / sto.Quantity; //生新计算单价
                 }
                 daoStore.UpdateInfo(sto);                  //更新库存表
             }
             //更新成本价
             MMS_SaleDetail saleDet = tSaleDetail.DetDetail;
             saleDet.Cost = sto.Price;
             dao.UpdateSaleDetail(saleDet);
         }
         content.AuditFlag   = isAudit; //设销售单已审核
         content.Operator    = operatorCode;
         content.OperateDate = DateTime.Now;
         dao.UpdateInfo(content);
         ts.Complete(); //提交事务
     }
     return(true);
 }
示例#6
0
 /// <summary>
 ///   插入销售单
 /// </summary>
 /// <param name="info"> </param>
 /// <returns> </returns>
 public int InsertInfo(MMS_SaleContent info)
 {
     dc.MMS_SaleContent.InsertOnSubmit(info);
     dc.SubmitChanges();
     return(info.ID);
 }
示例#7
0
 /// <summary>
 ///   修改销售单
 /// </summary>
 /// <param name="info"> </param>
 /// <returns> </returns>
 public bool UpdateInfo(MMS_SaleContent info)
 {
     return(dao.UpdateInfo(info));
 }