Пример #1
0
        public static long CreateWorkShopPackJson(string json)
        {
            var dto = JsonConvert.DeserializeObject <WorkShopDto>(json);

            using (var session = Dmo.NewSession())
            {
                var bl  = BIFactory.Create <IWorkShopPackBillBL>(session);
                var dmo = new WorkShopPackBill();
//              dmo.MiddleWorkBillID = dto.MiddleWorkBillID;
                dmo.Domain_ID         = DomainContext.Current.ID;
                dmo.AccountingUnit_ID = dto.AccountingUnit_ID;
                dmo.Department_ID     = dto.Department_ID;
                dmo.Date          = dto.Time;
                dmo.Store_ID      = dto.Store_ID;
                dmo.ChaCarBarCode = dto.Code;

                foreach (var dtodetail in dto.Details)
                {
                    var detail = new WorkShopRecord();
                    detail.Goods_ID        = dtodetail.Goods_ID ?? 0;
                    detail.Goods_Name      = dtodetail.Goods_Name;
                    detail.Remark          = dtodetail.CalculateSpec_Name;
                    detail.Number          = dtodetail.Number;
                    detail.SecondNumber    = dtodetail.SecondNumber;
                    detail.SecondNumber2   = dtodetail.SecondNumber2;
                    detail.ChaCarBoardCode = dtodetail.ChaCarBarCode;
                    detail.BarCode         = dtodetail.Code;


                    var id = GetProductIdByName(session, dtodetail.PlanNumber);
                    if (id == null)
                    {
                        //throw new Exception("生产计划中不存在" + dtodetail.PlanNumber + "计划号");
                    }
                    detail.PlanNumber_ID = id;
                    //if (detail.Goods_ID == 0)
                    //{
                    //    var goodsid = GetGoodsIdByName(session, detail.Goods_Name);
                    //    if (goodsid == null || goodsid == 0)
                    //    {
                    //        throw new Exception("没有找到计数名称:" + detail.Goods_Name + " 对应的存货");
                    //    }
                    //    detail.Goods_ID = goodsid.Value;
                    //}
                    dmo.Details.Add(detail);
                }

                bl.Insert(dmo);
                bl.Check(dmo);
                session.Commit();
                return(dmo.ID);
            }
        }
Пример #2
0
        public static long InertAndCheck(string json)
        {
            //static JavaScriptSerializer serializer = new JavaScriptSerializer();
            //var list = serializer.Deserialize<List<CTuple<long, string, string>>>(result);


            //反序列化读取数据
            WorkShopPackBill jsonDom = JsonConvert.DeserializeObject <WorkShopPackBill>(json);

            long returnid;

            using (new SpecialDomainUserBLScope(jsonDom.CreateUser_Name))
            {
                //判断是否有权限
                if (!BLContext.User.IsInRole("B3Butchery.车间包装.新建"))
                {
                    throw new Exception("没有新建权限");
                }

                //事务
                using (var session = Dmo.NewSession())
                {
                    var dmo = GetBillByChaCarBarCode(session, jsonDom.ChaCarBarCode);

                    //dmo.Domain_ID = DomainContext.Current.ID

                    var bl = BIFactory.Create <IWorkShopPackBillBL>(session);

                    if (dmo == null)
                    {
                        foreach (WorkShopRecord record in jsonDom.Details)
                        {
                            //已知record.PlanNumber_Name
                            //record.ProductLine_ID = "select ProductPlan.ID   from   ProductPlan   where  ProductPlan.PlanNumber_Name=ProductPlan.PlanNumber_Name";

                            record.PlanNumber_ID = GetPlanIDByName(session, record.PlanNumber_Name);
                        }
                        bl.InitNewDmo(jsonDom);
                        //插入单据
                        bl.Insert(jsonDom);
                        //审核
                        bl.Check(jsonDom);
                        returnid = jsonDom.ID;
                    }
                    else
                    {
                        if (dmo.BillState == 单据状态.已审核)
                        {
                            bl.UnCheck(dmo);
                        }

                        foreach (WorkShopRecord item in jsonDom.Details)
                        {
                            item.PlanNumber_ID = GetPlanIDByName(session, item.PlanNumber_Name);
                            dmo.Details.Add(item);
                        }
                        bl.Update(dmo);
                        bl.Check(dmo);
                        returnid = dmo.ID;
                    }
                    //提交事务
                    session.Commit();
                }
            }
            return(returnid);
        }