public virtual ActionResult Editar(int id)
        {
            var reserva = TReservation.Load(id);

            ViewBag.Client = TClient.ListAll().ToSelectList(x => x.Id, x => x.Name);
            ViewBag.Iten   = TMovie.ListAll().ToSelectList(x => x.Id, x => x.Name);
            ViewBag.Sale   = TSale.ListAll().ToSelectList(x => x.Id, x => x.EnumStatusSale);
            return(View(reserva));
        }
Example #2
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));
 }
Example #3
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);
 }
Example #4
0
        /// <summary>
        ///   根据主键值获取销售单组合实体
        /// </summary>
        /// <param name="id"> </param>
        /// <returns> </returns>
        public TSale GetSale(int id)
        {
            TSale resu = new TSale();

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

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

            foreach (MMS_SaleDetail item in tempList)
            {
                TSaleDetail TDetail = new TSaleDetail();
                TDetail.OprType   = OperateType.otNone;
                TDetail.DetDetail = item;
                resu.Detail.Add(TDetail);
            }
            return(resu);
        }
Example #5
0
        /// <summary>
        ///   保存销售单
        /// </summary>
        /// <param name="obj"> 自定义销售单实体 </param>
        /// <returns> 销售单ID号 </returns>
        public int SaveSale(TSale obj)
        {
            if (obj.OprType == OperateType.otInsert)            //传入的是插入操作标志
            {
                dc.MMS_SaleContent.InsertOnSubmit(obj.Content); //执行插入操作
            }
            else if (obj.OprType == OperateType.otUpdate)       //传入的是修改操作标志
            {
                var query = from item in dc.MMS_SaleContent
                            where item.ID == obj.Content.ID
                            select item;
                BatchEvaluate.Eval(obj.Content, query.First()); //调用Eval方法进行实体间赋值
            }
            else if (obj.OprType == OperateType.otDelete)       //传入的是删除操作标志
            {
                dc.MMS_SaleContent.DeleteOnSubmit(obj.Content); //执行删除操作
            }

            foreach (TSaleDetail item in obj.Detail)                  //遍历采购计划货品明细
            {
                if (item.OprType == OperateType.otInsert)             //传入的是插入操作标志
                {
                    dc.MMS_SaleDetail.InsertOnSubmit(item.DetDetail); //执行插入操作
                }
                else if (item.OprType == OperateType.otUpdate)        //传入的是修改操作标志
                {
                    var query = from itm in dc.MMS_SaleDetail
                                where itm.ID == item.DetDetail.ID
                                select itm;
                    BatchEvaluate.Eval(item.DetDetail, query.First()); //执行修改操作
                }
                else if (item.OprType == OperateType.otDelete)         //传入的是删除操作标志
                {
                    dc.MMS_SaleDetail.DeleteOnSubmit(item.DetDetail);  //执行删除操作
                }
            }
            dc.SubmitChanges(); //最后提交操作
            return(obj.Content.ID);
        }