/// <summary> /// 生成领用信息(领用单号和领用详情) /// </summary> /// <param name="goodsDtos">操作数据</param> /// <returns></returns> public bool InsertFetchOrderInfo(List <GoodsDto> goodsDtos, GoodsChageAttribute goodsChageAttribute, string surgeryOrderCode, out string goodsChangeBusinessOrderCode) { goodsChangeBusinessOrderCode = null; if (goodsDtos.Count <= 0) { return(false); } //修改商品里的数据为有单领用 goodsDtos.ForEach(it => { if (it.exception_flag == (int)ExceptionFlag.正常 && it.fetch_type == (int)RequisitionAttribute.无单领用) { it.fetch_type = (int)RequisitionAttribute.单领用; } }); List <GoodsDto> goodsDtosNotEx = goodsDtos.Where(it => it.exception_flag == (int)ExceptionFlag.正常).ToList(); if (goodsDtosNotEx.Count <= 0) { return(false); } //生成领用单的业务单号,根据实际情况 string business_order_code; switch (goodsChageAttribute.RequisitionType) { case RequisitionType.一般领用: business_order_code = "-"; break; case RequisitionType.无单手术领用: business_order_code = ""; break; case RequisitionType.单手术领用: business_order_code = surgeryOrderCode; break; default: business_order_code = ""; break; } //事务防止多插入产生脏数据 var result = Db.Ado.UseTran(() => { //领用单id FetchOrder fetchOrder = Db.Insertable(new FetchOrder { //用uuid当作新生成的领用单单号 code = Guid.NewGuid().ToString("N"), create_time = DateTime.Now, operator_id = 1, type = (int)goodsChageAttribute.RequisitionType, status = (int)goodsChageAttribute.RequisitionStatus, business_order_code = business_order_code }).ExecuteReturnEntity(); List <FetchOrderdtl> fetchOrderdtls = goodsDtosNotEx.MapToListIgnoreId <GoodsDto, FetchOrderdtl>(); fetchOrderdtls.ForEach(it => { it.is_add = 0; it.related_order_id = fetchOrder.id; it.status = (int)goodsChageAttribute.ConsumablesStatus; }); Db.Insertable(fetchOrderdtls).ExecuteCommand(); return(fetchOrder); }); //返回用于生成库存变化单的业务单号 if (result.IsSuccess) { goodsChangeBusinessOrderCode = result.Data.code; } return(result.IsSuccess); }
private void VisitOrderBy(MethodCallExpression m) { // visit the source this.Visit(m.Arguments[0]); // BUG: Check that order attribute is on primary (non-linked/joined) entity FetchOrder order = new FetchOrder((((m.Arguments[1] as UnaryExpression).Operand as LambdaExpression).Body as MemberExpression).Member.Name); stmt.Entity.Orders.Add(order); }