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); } }
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); }