/// <summary> /// 关联到货通知新增收货明细。 /// </summary> /// <param name="ctx">上下文对象。</param> /// <param name="data">收货明细关联到货通知数据实体。</param> /// <returns>返回新建保存事务结果。</returns>s public IOperationResult CreateNewBillFromInNoticeEntry(Context ctx, InDetailLinkInNoticeDto.InDetailEntryLinkInNotice data) { return(this.CreateNewBillsFromInNoticeEntities(ctx, new InDetailLinkInNoticeDto.InDetailEntryLinkInNotice[] { data })); }
public ServiceResult ExecuteService(string data) { ServiceResult result = new ServiceResult(); if (data.IsNullOrEmptyOrWhiteSpace()) { return(result); } String EnableCapacity; var ctx = this.KDContext.Session.AppContext; // 检查传入字符串数据 if (this.IsContextExpired(result)) { return(result); } // 检查传入参数 if (string.IsNullOrWhiteSpace(data)) { result.Code = (int)ResultCode.Fail; result.Message = "传入表单数据不能为空!"; return(result); } try { //序列化 JavaScriptSerializer Serializer = new JavaScriptSerializer(); //List<InputData> input = JsonConvert.DeserializeObject<List<InputData>>(data); List <FinalInputData> FinalInput = new List <FinalInputData>(); List <InputData> Input = Serializer.Deserialize <List <InputData> >(data); FinalInput = Input.GroupBy(x => x.FCONTACTID).Select(x => new FinalInputData { FCONTACTID = x.Key, FinalInputDataGroupByContactId = x.ToList() }).ToList(); foreach (var items in FinalInput) { var formId = "BAH_WMS_InNotice"; var metadata = FormMetaDataCache.GetCachedFormMetaData(ctx, formId); var billView = metadata.CreateBillView(ctx); var billService = billView.AsDynamicFormViewService(); billView.AddNew(); billService.SetItemValueByNumber("FBillTypeId", "DHTZ04_PHMX", -1); billService.SetItemValueByID("FBatchWHId", items.FinalInputDataGroupByContactId.FirstOrDefault().FWHID, -1); billService.SetItemValueByID("FBatchOwnerId", items.FinalInputDataGroupByContactId.FirstOrDefault().FOWNERID, -1); billService.SetItemValueByID("FContactId", items.FCONTACTID, -1); billService.SetItemValueByID("FPHMXTargetFormId", "SP_ReturnMtrl", -1); // billService.SetItemValueByNumber("FPHMXConvertRuleId", "BAH_PI_InNoticeToReturnMtrl", -1); billService.SetItemValueByNumber("FPHMXProduceId", items.FinalInputDataGroupByContactId.FirstOrDefault().FPHMXProduceId, -1); billView.Model.BatchCreateNewEntryRow("FEntity", items.FinalInputDataGroupByContactId.Count()); for (int i = 0; i < items.FinalInputDataGroupByContactId.Count(); i++) { JSONObject datas = new JSONObject(); billView.Model.SetItemValueByID("FMaterialId", items.FinalInputDataGroupByContactId[i].FMaterialId, i); billView.Model.SetItemValueByID("FLocId", items.FinalInputDataGroupByContactId[i].FLocId, i); billView.Model.SetItemValueByID("FTrackNo", items.FinalInputDataGroupByContactId[i].FTrackNo, i); DynamicObject FMaterialId = billView.Model.GetValue("FMaterialId", i) as DynamicObject; DynamicObjectCollection WarehouseSub = FMaterialId["WarehouseSub"] as DynamicObjectCollection; EnableCapacity = WarehouseSub.FirstOrDefault()["EnableCapacity"].ToString(); billView.Model.SetItemValueByID("FPackageId", items.FinalInputDataGroupByContactId[i].FPackageId, i); //billView.Model.SetValue("FDirectionForQty", input[i].FDirectionForQty, i); if (EnableCapacity == "False") { billView.Model.SetValue("FQty", items.FinalInputDataGroupByContactId[i].FQty, i); billView.Model.SetItemValueByID("FUnitId", items.FinalInputDataGroupByContactId[i].FUnitId, i); } else { if (items.FinalInputDataGroupByContactId[i].FAvgCty == 0) { billView.Model.SetValue("FAvgCty", items.FinalInputDataGroupByContactId[i].FAvgCty, i); billView.Model.SetValue("FCty", items.FinalInputDataGroupByContactId[i].FCty, i); } else { billView.Model.SetValue("FAvgCty", items.FinalInputDataGroupByContactId[i].FAvgCty, i); billView.Model.SetValue("FQty", items.FinalInputDataGroupByContactId[i].FQty, i); billView.Model.SetItemValueByID("FUnitId", items.FinalInputDataGroupByContactId[i].FUnitId, i); } } } // billView.Model.ClearNoDataRow(); //var op = billView.Model.DataObject.DoNothing(ctx, billView.BillBusinessInfo, "Upload"); bool op = billView.InvokeFormOperation("Save"); bool op1 = billView.InvokeFormOperation("Submit"); bool op2 = billView.InvokeFormOperation("Audit"); List <InDetailLinkInNoticeDto.InDetailEntryLinkInNotice> pushdatas = new List <InDetailLinkInNoticeDto.InDetailEntryLinkInNotice>(); for (int i = 0; i < items.FinalInputDataGroupByContactId.Count(); i++) { InDetailLinkInNoticeDto.InDetailEntryLinkInNotice pushdata = new InDetailLinkInNoticeDto.InDetailEntryLinkInNotice(); pushdata.SourceEntryId = (long)billView.Model.GetEntryPKValue("FEntity", i); pushdata.SourceBillId = (long)billView.Model.GetPKValue(); pushdata.PHMXWgt = items.FinalInputDataGroupByContactId[i].FPHMXWgt; pushdatas.Add(pushdata); } var back = CreateNewBillsFromInNoticeEntities(ctx, pushdatas); //foreach (var entry in billView.Model.) //{ //} result.Code = op2 == true ? 1 : 0; result.Message = op2 == true ? "成功生成" : "生成失败"; billView.Close(); } } catch (Exception ex) { result.Code = (int)ResultCode.Fail; result.Message = ex.Message; Logger.Error(this.GetType().AssemblyQualifiedName, ex.Message, ex); } return(result); }