Пример #1
0
        /// <summary>
        /// 保存表单(新增、修改)
        /// </summary>
        /// <param name="keyValue">主键值</param>
        /// <param name="entity">实体对象</param>
        /// <param name="entryList">子表</param>
        /// <returns></returns>
        public void SaveForm(string keyValue, OutbillEntity entity, List <OutbillitemEntity> entryList)
        {
            try
            {
                if (string.IsNullOrEmpty(keyValue))
                {
                    OutbillEntity old = this.GetEntity(entity.foutbillid);
                    if (old != null)
                    {
                        throw new Exception("编号需要唯一");
                    }
                }

                service.SaveForm(keyValue, entity, entryList);
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #2
0
        // [HandlerAuthorize(PermissionMode.Enforce)]
        public ActionResult SaveForm(string keyValue, OutbillEntity entity, string strChildEntitys)
        {
            List <OutbillitemEntity> childEntitys = strChildEntitys.ToList <OutbillitemEntity>();

            if (string.IsNullOrEmpty(keyValue))
            {
                var childs = from c in childEntitys group c by c.fgoodsid into g where g.Count() > 1 select g;
                if (childs != null && childs.ToList().Count() > 0)
                {
                    return(Error("不可以选择重复的物品"));
                }
            }

            #region 判断库存是否充足
            if (!string.IsNullOrEmpty(keyValue))
            {
                #region 修改时判断,要加上修改前数量
                string fgoodsid = "";
                if (childEntitys != null && childEntitys.Count > 0)
                {
                    foreach (OutbillitemEntity item in childEntitys)
                    {
                        fgoodsid += item.fgoodsid + ",";
                    }
                    if (!string.IsNullOrEmpty(fgoodsid))
                    {
                        fgoodsid = fgoodsid.Substring(0, fgoodsid.Length - 1);
                    }
                    //当前库存
                    GoodsinfoBLL bll_g = new GoodsinfoBLL();
                    var          data  = bll_g.GetLists(fgoodsid);
                    //修改前出库
                    OutbillitemBLL bll_o    = new OutbillitemBLL();
                    var            data_out = bll_o.GetListByFoutbillid(keyValue);
                    bool           bl       = true;
                    if (data != null)
                    {
                        foreach (OutbillitemEntity item in childEntitys)
                        {
                            double fcount     = 0;
                            var    data_out_s = data_out.Where(t => t.fgoodsid == item.fgoodsid);
                            if (data_out_s != null && data_out_s.Count() > 0)
                            {
                                fcount = data_out_s.First().fnumber.ToDouble();
                            }
                            var data_s = data.Where(t => t.fgoodsid == item.fgoodsid);
                            if (data_s != null && data_s.Count() > 0)
                            {
                                if ((data_s.First().fcount + fcount) < item.fnumber)
                                {
                                    bl = false;
                                    continue;
                                }
                            }
                            else
                            {
                                bl = false;
                                continue;
                            }
                        }
                    }
                    else
                    {
                        bl = false;
                    }

                    if (!bl)
                    {
                        return(Error("库存不足,请核实后重新填写!"));
                    }
                }

                #endregion
            }
            else
            {
                #region 新增时判断,直接判断
                string fgoodsid = "";
                if (childEntitys != null && childEntitys.Count > 0)
                {
                    foreach (OutbillitemEntity item in childEntitys)
                    {
                        fgoodsid += item.fgoodsid + ",";
                    }
                    if (!string.IsNullOrEmpty(fgoodsid))
                    {
                        fgoodsid = fgoodsid.Substring(0, fgoodsid.Length - 1);
                    }
                    GoodsinfoBLL bll_g = new GoodsinfoBLL();
                    var          data  = bll_g.GetLists(fgoodsid);
                    bool         bl    = true;
                    if (data != null)
                    {
                        foreach (OutbillitemEntity item in childEntitys)
                        {
                            var dataWhere = data.Where(t => t.fgoodsid == item.fgoodsid);
                            if (dataWhere != null)
                            {
                                if (dataWhere.First().fcount < item.fnumber)
                                {
                                    bl = false;
                                    continue;
                                }
                            }
                            else
                            {
                                bl = false;
                                continue;
                            }
                        }
                    }
                    else
                    {
                        bl = false;
                    }

                    if (!bl)
                    {
                        return(Error("库存不足,请核实后重新填写!"));
                    }
                }
                #endregion
            }
            #endregion

            outbillbll.SaveForm(keyValue, entity, childEntitys);
            return(Success("操作成功。"));
        }
Пример #3
0
        /// <summary>
        /// 保存表单(新增、修改)
        /// </summary>
        /// <param name="keyValue">主键值</param>
        /// <param name="entity">实体对象</param>
        /// <param name="entryList">子表</param>
        /// <returns></returns>
        public void SaveForm(string keyValue, OutbillEntity entity, List <OutbillitemEntity> entryList)
        {
            IEnumerable <OutbillitemEntity> list = null;

            if (!string.IsNullOrEmpty(keyValue))
            {
                //查询明细 先加库存再删除明细
                OutbillitemIService dal = new OutbillitemService();
                list = dal.GetListByFoutbillid(keyValue);
            }

            IRepository db = this.BaseRepository().BeginTrans();

            try
            {
                if (!string.IsNullOrEmpty(keyValue))
                {
                    //主表
                    db.Update(entity);

                    if (list != null && list.Count() > 0)
                    {
                        // 加库存
                        foreach (OutbillitemEntity item in list)
                        {
                            var strSqls = AddGoodsRepertorySql(item);

                            db.ExecuteBySql(strSqls.ToString());
                        }

                        //明细
                        string deletesql = " delete tb_wh_outbill_item where foutbillid='" + keyValue + "' ";
                        db.ExecuteBySql(deletesql);
                    }

                    for (int i = 0; i < entryList.Count; i++)
                    {
                        entryList[i].foutbillid = entity.foutbillid;
                        entryList[i].fitemid    = entity.foutbillid + "-" + Utils.SupplementZero((i + 1).ToString(), 3); //生成领用单物品信息编号

                        // 明细
                        db.Insert(entryList[i]);

                        //减库存
                        var strSql = RemoveGoodsRepertorySql(entryList[i]);
                        db.ExecuteBySql(strSql.ToString());
                    }
                }
                else
                {
                    //主表
                    entity.Create();
                    entity.finputdate = DateTime.Now;
                    entity.foutdate   = DateTime.Now;
                    int userid = 0;
                    int.TryParse(OperatorProvider.Provider.Current().OldSystemUserID, out userid);
                    entity.fuserid = userid;
                    db.Insert(entity);

                    //明细
                    for (int i = 0; i < entryList.Count; i++)
                    {
                        entryList[i].foutbillid = entity.foutbillid;
                        entryList[i].fitemid    = entity.foutbillid + "-" + Utils.SupplementZero((i + 1).ToString(), 3); //生成领用单物品信息编号

                        db.Insert(entryList[i]);

                        var strSql = RemoveGoodsRepertorySql(entryList[i]);

                        // 减库存
                        db.ExecuteBySql(strSql.ToString());
                    }
                }
                db.Commit();
            }
            catch (Exception)
            {
                db.Rollback();
                throw;
            }
        }