public DynamicObject GetSimpleExtensionByNumber(String number) { FormMetadata meta = MetaDataServiceHelper.Load(context, Constant.FormID.WJ_Extension) as FormMetadata; // 构建查询参数,设置过滤条件 QueryBuilderParemeter queryParam = new QueryBuilderParemeter { FormId = Constant.FormID.WJ_Extension, BusinessInfo = meta.BusinessInfo, FilterClauseWihtKey = string.Format(" {0} = '{1}' ", meta.BusinessInfo.GetForm().NumberFieldKey, number) }; var bdObjs = BusinessDataServiceHelper.Load(context, meta.BusinessInfo.GetDynamicObjectType(), queryParam); if (bdObjs.Length == 1) { return(bdObjs.FirstOrDefault()); } else if (bdObjs.Length == 0) { return(null); } else { throw new Exception("编码 " + number + " formId " + Constant.FormID.WJ_Extension + "找到多个数据"); } }
private bool Check(CheckPara para, string formKey, string formCaption, string tableName, string entryFormKey, out string errInfor) { errInfor = ""; QueryBuilderParemeter qbPara = GetQBPara(para, formKey, tableName, entryFormKey); try { DynamicObjectCollection datas = QueryServiceHelper.GetDynamicObjectCollection(para.ctx, qbPara); if (datas != null && datas.Count > 0) { errInfor = string.Format("{4} 单号 {1} 物料编码 {2} 物料名称 {3} 单位酶活量{0} ", datas[0]["FJNUnitEnzymes"], datas[0]["FBillNo"], datas[0]["FMatNumber"], datas[0]["FMatName"], formCaption); return(true); } } catch (Exception ex) { return(false); } return(false); }
/// <summary> /// 根据编码获取客户信息 /// </summary> /// <param name="ctx"></param> /// <param name="fNumber"></param> /// <returns></returns> private K3CustomerInfo GetCustomerByNo(Context ctx, string fNumber) { if (GetCustomerByNo(fNumber) != null) { return(GetCustomerByNo(fNumber)); } QueryBuilderParemeter para = new QueryBuilderParemeter(); para.FormId = "BD_Customer"; para.SelectItems = SelectorItemInfo.CreateItems("FCreateOrgId,FUseOrgId,FNumber,FShortName,FName,FCOUNTRY,FAddress,FZIP,FTEL,FSELLER,FSALDEPTID,FCustTypeId,FTRADINGCURRID,FTaxType,FTaxRate,FPriority,FIsTrade,F_HS_CustomerRegisteredMail,F_HS_Grade,F_HS_SpecialDemand,F_HS_TaxNum,FPRICELISTID,F_HS_CustomerPurchaseMail"); if (!string.IsNullOrEmpty(fNumber)) { para.FilterClauseWihtKey = " FNumber ='" + fNumber + "' and FUseOrgId = 1"; var k3Data = Kingdee.BOS.App.ServiceHelper.GetService <IQueryService>().GetDynamicObjectCollection(ctx, para); if (k3Data != null && k3Data.Count > 0) { List <K3CustomerInfo> custs = BuildSynObjByCollection(ctx, k3Data); if (custs != null && custs.Count > 0) { return(custs[0]); } } } return(null); }
private string GetMultiOrgnNameValues(string orgIdStrings) { List <string> list = new List <string>(); string result = string.Empty; if (orgIdStrings.Trim().Length > 0) { IQueryService service = Kingdee.BOS.Contracts.ServiceFactory.GetService <IQueryService>(base.Context); QueryBuilderParemeter para = new QueryBuilderParemeter { FormId = "ORG_Organizations", SelectItems = SelectorItemInfo.CreateItems("FNAME"), FilterClauseWihtKey = string.Format(" FORGID IN ({0}) AND FLOCALEID={1}", orgIdStrings, base.Context.UserLocale.LCID) }; DynamicObjectCollection dynamicObjectCollection = service.GetDynamicObjectCollection(base.Context, para, null); foreach (DynamicObject current in dynamicObjectCollection) { list.Add(current["FNAME"].ToString()); } if (list.Count > 0) { result = string.Join(",", list.ToArray()); } } return(result); }
private QueryBuilderParemeter GetQBPara(CheckPara para, string formKey) { FormMetadata formMetadata = FormMetaDataCache.GetCachedFormMetaData(this.Context, formKey); QueryBuilderParemeter qbPara = new QueryBuilderParemeter(); qbPara.FormId = formKey; if (formKey == "STK_TransferDirect") { qbPara.FilterClauseWihtKey = string.Format(" FJNUnitEnzymes <> {0} And FSTOCKORGID ={1} And {2} = {3} And {4}={5} And {6} = '{7}' ", para.unitEnzymes, para.orgId, matFldKey, para.matId, "FAuxPropId", para.auxPropId, "FLot.FNumber", para.lotNumber); } else { qbPara.FilterClauseWihtKey = string.Format(" FJNUnitEnzymes <> {0} And {1} ={2} And {3} = {4} And {5}={6} And {7} = '{8}' ", para.unitEnzymes, formMetadata.BusinessInfo.MainOrgField.FieldName, para.orgId, matFldKey, para.matId, "FAuxPropId", para.auxPropId, "FLot.FNumber", para.lotNumber); } if (para.currFormKey.EqualsIgnoreCase(formKey)) { qbPara.FilterClauseWihtKey += string.Format(" And {0} <> {1} ", para.currEnFldName, para.currentEntryId); } qbPara.SelectItems = SelectorItemInfo.CreateItems("FBillNo,FMaterialId.FNumber as FMatNumber,FMaterialId.FName as FMatName,FJNUnitEnzymes"); return(qbPara); }
public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) { base.BeforeExecuteOperationTransaction(e); if (e.DataEntitys.Count() < 1) { return; } var dataEntities = e.DataEntitys.ToArray(); foreach (DynamicObject dataEntry in dataEntities) { DynamicObject BillEntry = dataEntry["BillEntry"].AsType <DynamicObjectCollection>().First(); //获取收货通知数据 string OrginBillNo = BillEntry["OriginBillNo"].ToString(); string OriginFormId = "BAH_WMS_InNotice"; FormMetadata meta = MetaDataServiceHelper.Load(this.Context, OriginFormId) as FormMetadata; QueryBuilderParemeter queryParam = new QueryBuilderParemeter(); queryParam.FormId = OriginFormId; queryParam.BusinessInfo = meta.BusinessInfo; queryParam.FilterClauseWihtKey = string.Format(" {0} = '{1}' ", meta.BusinessInfo.GetBillNoField().Key, OrginBillNo); var objs = BusinessDataServiceHelper.Load(this.Context, meta.BusinessInfo.GetDynamicObjectType(), queryParam); if (objs[0]["FBAHGenTargetStatus"].ToString().Equals('B') == true) { throw new Exception(string.Format("编号为{0}的收货通知已生成目标单据,不允许反审核!", OrginBillNo)); } } }
public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e) { var viewService = ServiceHelper.GetService <IViewService>(); var saveService = ServiceHelper.GetService <ISaveService>(); var mirrorField = this.BusinessInfo.GetField("FMirrorId").AsType <BaseDataField>(); var supMetadata = FormMetaDataCache.GetCachedFormMetaData(this.Context, mirrorField.LookUpObject.FormId); var supBusinessInfo = supMetadata.BusinessInfo.GetSubBusinessInfo("FPHMXContactId"); var supField = supBusinessInfo.GetField("FPHMXContactId").AsType <BaseDataField>(); //获取物料数据包。 var dataEntities = e.SelectedRows.Select(data => data.DataEntity) .Where(data => data.FieldProperty <DynamicObject>(mirrorField) != null) .Where(data => !data.PkId <string>().IsNullOrEmptyOrWhiteSpace()) .Where(data => !data.PkId <string>().EqualsIgnoreCase(data.FieldProperty <DynamicObject>(mirrorField).FieldRefProperty <DynamicObject>(mirrorField, "FPHMXContactId").PkId <string>())) .Select(data => { var sup = data.FieldProperty <DynamicObject>(mirrorField); supField.RefIDDynamicProperty.SetValue(sup, data.PkId <string>()); //先把对应的主键赋值过去。 return(sup); }).ToArray(); if (!dataEntities.Any()) { return; } //获取分配的数据包 var masterIds = dataEntities.Select(data => data.MasterId()).Distinct().ToList(); if (!masterIds.Any()) { masterIds.Add(0); } var para = new QueryBuilderParemeter(); para.FormId = mirrorField.LookUpObject.FormId; para.FilterClauseWihtKey = "FMasterId in (Select FID From TABLE(fn_StrSplit(@MasterIds,',',1))) and FSUPPLIERID <> FMasterId"; para.SqlParams.Add(new SqlParam("@MasterIds", KDDbType.udt_inttable, masterIds)); var allocateEntities = viewService.LoadFromCache(this.Context, mirrorField.RefFormDynamicObjectType, para); //为分配的数据包关联赋值。 dataEntities.Join(allocateEntities, left => left.MasterId <int>(), right => right.MasterId <int>(), (left, right) => { supField.RefIDDynamicProperty.SetValue(right, left.FieldRefIdProperty <string>(supField)); return(right); }).ToArray(); //合并两个数据包,再补充里面字段数据包并无事务保存。 var merge = dataEntities.Concat(allocateEntities).ToArray(); if (merge.Any()) { saveService.Save(this.Context, merge); } base.AfterExecuteOperationTransaction(e); } //end method
/// <summary> /// 来源单获取日期 /// </summary> /// <param name="ctx"></param> /// <param name="billData"></param> /// <param name="para"></param> /// <returns></returns> public DynamicObjectCollection GetBillDataEntryDate(Kingdee.BOS.Context ctx, DynamicObject billData, JNQTYRatePara para) { var formKey = billData["FBILLFORMID"].ToString(); var lotFldKey = billData["FLOTFIELDKEY"].ToString(); var billId = billData["FBILLID"].ToString(); var matFldKey = "FMaterialId"; var lotid = billData["flotid"].ToString(); var matid = billData["FMaterialId"].ToString(); QueryBuilderParemeter qbPara = new QueryBuilderParemeter(); qbPara.FormId = formKey; qbPara.FilterClauseWihtKey = string.Format(" fid ={0} And {1} ={2} And {3}.FNumber ='{4}' And FAuxPropId={5} ", billId, lotFldKey, lotid, matFldKey, para.MaterialNumber, para.AuxPropId); qbPara.SelectItems = SelectorItemInfo.CreateItems("FPRODUCEDATE,FEXPIRYDATE"); DynamicObjectCollection datas = null; try { datas = Kingdee.BOS.ServiceHelper.QueryServiceHelper.GetDynamicObjectCollection(ctx, qbPara); } catch (Exception ex) { return(datas); } return(datas); }
protected List <EnumItem> GetOrganization(Context ctx) { List <EnumItem> list = new List <EnumItem>(); List <SelectorItemInfo> list2 = new List <SelectorItemInfo>(); list2.Add(new SelectorItemInfo("FORGID")); list2.Add(new SelectorItemInfo("FNUMBER")); list2.Add(new SelectorItemInfo("FNAME")); string text = this.GetInFilter("FORGID", this.lstSalOrg); text += string.Format(" AND FORGFUNCTIONS LIKE '%{0}%' ", 101L.ToString()); QueryBuilderParemeter para = new QueryBuilderParemeter { FormId = "ORG_Organizations", SelectItems = list2, FilterClauseWihtKey = text }; DynamicObjectCollection dynamicObjectCollection = QueryServiceHelper.GetDynamicObjectCollection(base.Context, para, null); foreach (DynamicObject current in dynamicObjectCollection) { list.Add(new EnumItem(new DynamicObject(EnumItem.EnumItemType)) { EnumId = current["FORGID"].ToString(), Value = current["FORGID"].ToString(), Caption = new LocaleValue(Convert.ToString(current["FName"]), base.Context.UserLocale.LCID) }); } return(list); }
/// <summary> /// 获取收货通知数据 /// </summary> /// <param name="billno">收货通知单编号</param> /// <returns>返回服务结果。</returns> public ServiceResult ExecuteService(string billno) { var result = new ServiceResult <JSONObject>(); var ctx = this.KDContext.Session.AppContext; // 检查上下文对象 if (this.IsContextExpired(result)) { return(result); } // 检查传入参数 if (string.IsNullOrWhiteSpace(billno)) { result.Code = (int)ResultCode.Fail; result.Message = "收货通知单编号不能为空!"; return(result); } //获取相关信息 try { //TODO:通过平台动态引擎获取数据 var metadata = FormMetaDataCache.GetCachedFormMetaData(ctx, "BAH_WMS_InNotice"); var businessInfo = metadata.BusinessInfo; var queryParameter = new QueryBuilderParemeter(); queryParameter.FormId = businessInfo.GetForm().Id; queryParameter.FilterClauseWihtKey = "FDOCUMENTSTATUS = @FDOCUMENTSTATUS"; queryParameter.SqlParams.Add(new SqlParam("@FDOCUMENTSTATUS", KDDbType.String, "C")); queryParameter.FilterClauseWihtKey = "FBillNo = @BillNo"; queryParameter.SqlParams.Add(new SqlParam("@BillNo", KDDbType.String, billno)); var dataObjectCollection = BusinessDataServiceHelper.Load(ctx, businessInfo.GetDynamicObjectType(), queryParameter); JSONObject Finaldata = new JSONObject(); List <JSONObject> return_data = new List <JSONObject>(); foreach (DynamicObject dataObject in dataObjectCollection) { JSONObject data = new JSONObject(); data.Add("FID", dataObject["Id"].ToString()); data.Add("FNUMBER", dataObject["Number"].ToString()); data.Add("FName", dataObject["Name"].ToString()); return_data.Add(data); } Finaldata.Add("WareHouse", return_data); //返回数据 result.Code = (int)ResultCode.Success; result.Data = Finaldata; result.Message = "成功返回数据!"; } catch (Exception ex) { result.Code = (int)ResultCode.Fail; result.Message = ex.Message; } return(result); }
/// <summary> /// 输入货主分类(组织、供应商、客户),获取货主数据 /// </summary> /// <returns>返回服务结果。</returns> public ServiceResult ExecuteService(string formid) { var result = new ServiceResult <List <JSONObject> >(); var ctx = this.KDContext.Session.AppContext; // 检查上下文对象 if (this.IsContextExpired(result)) { return(result); } //获取相关信息 try { //TODO:通过平台动态引擎获取数据 var metadata = FormMetaDataCache.GetCachedFormMetaData(ctx, "BAH_BD_Owner"); var businessInfo = metadata.BusinessInfo; var queryParameter = new QueryBuilderParemeter(); queryParameter.FormId = businessInfo.GetForm().Id; queryParameter.SelectItems = SelectorItemInfo.CreateItems("FID,FNUMBER,FName"); queryParameter.FilterClauseWihtKey = "FDOCUMENTSTATUS = 'C' and FFORBIDSTATUS = 'A' and FFormId LIKE '%" + formid + "%' "; queryParameter.OrderByClauseWihtKey = "FNUMBER"; var dataObjectCollection = QueryServiceHelper.GetDynamicObjectCollection(ctx, queryParameter); //queryParameter.FilterClauseWihtKey = "FDOCUMENTSTATUS = @FDOCUMENTSTATUS"; //queryParameter.SqlParams.Add(new SqlParam("@FDOCUMENTSTATUS", KDDbType.String, "C")); //queryParameter.FilterClauseWihtKey = "FFORBIDSTATUS = @FFORBIDSTATUS"; //queryParameter.SqlParams.Add(new SqlParam("@FFORBIDSTATUS", KDDbType.String, "A")); //var dataObjectCollection = BusinessDataServiceHelper.Load(ctx, businessInfo.GetDynamicObjectType(), queryParameter); JSONObject Finaldata = new JSONObject(); List <JSONObject> return_data = new List <JSONObject>(); foreach (DynamicObject dataObject in dataObjectCollection) { JSONObject data = new JSONObject(); data.Add("FID", dataObject["FId"].ToString()); data.Add("FNUMBER", dataObject["FNumber"].ToString()); data.Add("FName", dataObject["FName"].ToString()); return_data.Add(data); } Finaldata.Add("Owner", return_data); //返回数据 result.Code = (int)ResultCode.Success; result.Data = return_data; result.Message = "成功返回数据!"; } catch (Exception ex) { result.Code = (int)ResultCode.Fail; result.Message = ex.Message; } return(result); }
/// <summary> /// queryservice取数方案,通过业务对象来获取数据,推荐使用 /// </summary> /// <returns></returns> public DynamicObjectCollection GetQueryDatas() { QueryBuilderParemeter paramCatalog = new QueryBuilderParemeter() { FormId = "", //取数的业务对象 FilterClauseWihtKey = "", //过滤条件,通过业务对象的字段Key拼装过滤条件 SelectItems = SelectorItemInfo.CreateItems("", "", ""), //要筛选的字段【业务对象的字段Key】,可以多个,如果要取主键,使用主键名 }; DynamicObjectCollection dyDatas = Kingdee.BOS.ServiceHelper.QueryServiceHelper.GetDynamicObjectCollection(this.Context, paramCatalog); return(dyDatas); }
/// <summary> /// queryservice取数方案,通过业务对象来获取数据,推荐使用 /// </summary> /// <returns></returns> public DynamicObjectCollection GetQueryDatas(string filter) { QueryBuilderParemeter paramCatalog = new QueryBuilderParemeter() { FormId = this.View.GetFormId(), //取数的业务对象 FilterClauseWihtKey = filter, //过滤条件,通过业务对象的字段Key拼装过滤条件 SelectItems = SelectorItemInfo.CreateItems("FID", "FBILLNO", "FDOCUMENTSTATUS"), //要筛选的字段【业务对象的字段Key】,可以多个,如果要取主键,使用主键名 }; DynamicObjectCollection dyDatas = QueryServiceHelper.GetDynamicObjectCollection(this.Context, paramCatalog); return(dyDatas); }
/// <summary> /// 根据单据体内码,加载单据内码 /// </summary> /// <param name="targetBusinessInfo"></param> /// <param name="entityKey"></param> /// <param name="entityIds"></param> /// <returns></returns> private HashSet <long> LoadTargetBillIds( BusinessInfo targetBusinessInfo, string entityKey, HashSet <long> entityIds) { // 根据单据体内码,读取取下游单据的单据内码 HashSet <long> billIds = new HashSet <long>(); Entity entity = targetBusinessInfo.GetEntity(entityKey); if (entity is HeadEntity) { foreach (var billId in entityIds) { billIds.Add(billId); } } else { string entityPKFieldNameAs = string.Concat(entity.Key, "_", entity.EntryPkFieldName); QueryBuilderParemeter queryParem = new QueryBuilderParemeter() { FormId = targetBusinessInfo.GetForm().Id, BusinessInfo = targetBusinessInfo, }; queryParem.SelectItems.Add(new SelectorItemInfo(targetBusinessInfo.GetForm().PkFieldName)); queryParem.SelectItems.Add(new SelectorItemInfo(entityPKFieldNameAs)); queryParem.ExtJoinTables.Add( new ExtJoinTableDescription() { TableName = "table(fn_StrSplit(@EntryPKValue,',',1))", TableNameAs = "sp", FieldName = "FID", ScourceKey = entityPKFieldNameAs, }); queryParem.SqlParams.Add(new SqlParam("@EntryPKValue", KDDbType.udt_inttable, entityIds.ToArray())); IQueryService queryService = ServiceHelper.GetService <IQueryService>(); DynamicObjectCollection rows = queryService.GetDynamicObjectCollection(this.Context, queryParem); foreach (var row in rows) { long billId = Convert.ToInt64(row[0]); if (billIds.Contains(billId) == false) { billIds.Add(billId); } } } return(billIds); }
private string BillNo(string id, string listName, string selectColumn, string idColumn) { string result = string.Empty; if (id.Trim().Length > 0) { IQueryService service = ServiceFactory.GetService <IQueryService>(base.Context); QueryBuilderParemeter para = new QueryBuilderParemeter { FormId = listName, SelectItems = SelectorItemInfo.CreateItems(string.Format("{0},FID", selectColumn)), FilterClauseWihtKey = string.Format(" FID = {0} ", id) }; DynamicObjectCollection dynamicObjectCollection = service.GetDynamicObjectCollection(base.Context, para, null); result = dynamicObjectCollection[0][selectColumn].ToString(); } return(result); }
private string BillNo(string id) { string result = string.Empty; if (id.Trim().Length > 0) { IQueryService service = ServiceFactory.GetService <IQueryService>(base.Context); QueryBuilderParemeter para = new QueryBuilderParemeter { FormId = "SAL_SaleOrder", SelectItems = SelectorItemInfo.CreateItems("FBILLNO,FID"), FilterClauseWihtKey = string.Format(" FID = {0} ", id) }; DynamicObjectCollection dynamicObjectCollection = service.GetDynamicObjectCollection(base.Context, para, null); result = dynamicObjectCollection[0]["FBILLNO"].ToString(); } return(result); }
public void GetDefualtOrgNumber() { QueryBuilderParemeter para = new QueryBuilderParemeter(); para.FormId = "ORG_Organizations"; para.SelectItems = SelectorItemInfo.CreateItems("FNumber,FName"); para.OrderByClauseWihtKey = "FOrgID"; var k3Data = Kingdee.BOS.App.ServiceHelper.GetService <IQueryService>().GetDynamicObjectCollection(this.K3CloudContext, para); if (k3Data == null || k3Data.Count == 0) { DefaultOrgNumber = "100"; return; } DefaultOrgNumber = k3Data[0]["FNumber"].ToString(); }
/// <summary> /// 获取所有勾选行单据编号 /// </summary> /// <returns></returns> private DynamicObjectCollection CZ_GetSelectedRowsBillNo() { string filter = "FID in ("; string[] fids = CZ_GetSelectedRowsFID(); foreach (var fid in fids) { filter += fid + ","; } filter = filter.TrimEnd(',') + ")"; QueryBuilderParemeter param = new QueryBuilderParemeter() { FormId = this.View.GetFormId(), FilterClauseWihtKey = filter, SelectItems = SelectorItemInfo.CreateItems("FBILLNO"), }; return(QueryServiceHelper.GetDynamicObjectCollection(this.Context, param)); }
public static DynamicObject[] GetDynamicObjects(Context ctx, string formId, string filterClauseWihtKey) { if (!string.IsNullOrEmpty(formId)) { FormMetadata metaData = MetaDataServiceHelper.Load(ctx, formId) as FormMetadata; DynamicObjectType type = metaData.BusinessInfo.GetDynamicObjectType(); QueryBuilderParemeter queryParemeter = new QueryBuilderParemeter(); queryParemeter.FormId = formId; if (!string.IsNullOrEmpty(filterClauseWihtKey)) { queryParemeter.FilterClauseWihtKey = filterClauseWihtKey; } DynamicObject[] objects = BusinessDataServiceHelper.Load(ctx, type, queryParemeter); return(objects); } return(null); }
public override AbsSynchroDataInfo BuildSynchroData(Context ctx, string fNumber, AbsSynchroDataInfo data = null) { QueryBuilderParemeter para = new QueryBuilderParemeter(); para.FormId = "BD_Customer"; para.SelectItems = SelectorItemInfo.CreateItems("FCreateOrgId,FUseOrgId,FNumber,FShortName,FName,FCOUNTRY,FAddress,FZIP,FTEL,FSELLER,FSALDEPTID,FCustTypeId,FTRADINGCURRID,FPriority,FIsTrade,F_HS_CustomerRegisteredMail"); if (!string.IsNullOrEmpty(fNumber)) { para.FilterClauseWihtKey = " FNumber ='" + fNumber + "' and FUseOrgId = 1"; var k3Data = Kingdee.BOS.App.ServiceHelper.GetService <IQueryService>().GetDynamicObjectCollection(ctx, para); if (k3Data != null && k3Data.Count > 0) { List <K3CustomerInfo> custs = BuildSynObjByCollection(ctx, k3Data); return(custs[0]); } } return(null); }
private QueryBuilderParemeter GetQBPara(CheckPara para, string formKey, string tableName, string entryFormKey) { FormMetadata formMetadata = FormMetaDataCache.GetCachedFormMetaData(this.Context, formKey); QueryBuilderParemeter qbPara = new QueryBuilderParemeter(); qbPara.FormId = formKey; qbPara.FilterClauseWihtKey = string.Format(" FJNUnitEnzymes <> {0} And {1} ={2} And {3} = {4} And {5}={6} And {7} = '{8}' ", para.unitEnzymes, formMetadata.BusinessInfo.MainOrgField.FieldName, para.orgId, matFldKey, para.matId, "FAuxPropId", para.auxPropId, "FLOT_TEXT", para.lotNumber); if (para.currFormKey.EqualsIgnoreCase(formKey)) { qbPara.FilterClauseWihtKey += string.Format(" And {2}_{0} <> {1} ", para.currEnFldName, para.currentEntryId, entryFormKey); } if (para.tableName == tableName) { qbPara.FilterClauseWihtKey += string.Format(" And FID not in ({0})", para.linkId); } qbPara.SelectItems = SelectorItemInfo.CreateItems("FBillNo,FMaterialId.FNumber as FMatNumber,FMaterialId.FName as FMatName,FJNUnitEnzymes"); return(qbPara); }
public static DynamicObjectCollection QueryData(Context ctx, string formId, string strSelect, string strFilter) { DynamicObjectCollection objects; QueryBuilderParemeter paremeter2 = new QueryBuilderParemeter { FormId = formId, SelectItems = SelectorItemInfo.CreateItems(strSelect), FilterClauseWihtKey = strFilter }; QueryBuilderParemeter para = paremeter2; IQueryService service = Kingdee.BOS.Contracts.ServiceFactory.GetService <IQueryService>(ctx); try { objects = service.GetDynamicObjectCollection(ctx, para, null); } finally { Kingdee.BOS.Contracts.ServiceFactory.CloseService(service); } return(objects); }
public static string GetSchemeId(Context ctx, string filterSchemeFormId) { QueryBuilderParemeter paremeter2 = new QueryBuilderParemeter { FormId = "BOS_FilterScheme", SelectItems = SelectorItemInfo.CreateItems("FSCHEMEID") }; QueryBuilderParemeter para = paremeter2; para.FilterClauseWihtKey = string.Format("FFormID=@FFormID and FIsDefault='1' and FUserId = -1", new object[0]); List <SqlParam> paramList = new List <SqlParam> { new SqlParam("@FFormID", 0x10, filterSchemeFormId) }; DynamicObjectCollection objects = QueryServiceHelper.GetDynamicObjectCollection(ctx, para, paramList); string str = string.Empty; if ((objects != null) && (objects.Count != 0)) { return(objects[0]["FSCHEMEID"].ToString()); } return(str); }
public override void BarItemClick(BarItemClickEventArgs e) { base.BarItemClick(e); if (e.BarItemKey.Equals("tbSubmitBank")) { QueryBuilderParemeter queryParam = new QueryBuilderParemeter(); queryParam.FormId = this.View.BillBusinessInfo.GetForm().Id; queryParam.BusinessInfo = this.View.BillBusinessInfo; queryParam.SelectItems.Add(new SelectorItemInfo("F_PAEZ_SFYQZF")); List <long> billIds = (from p in this.ListView.SelectedRowsInfo select Convert.ToInt64(p.PrimaryKeyValue)).ToList(); queryParam.FilterClauseWihtKey = string.Format(" {0} IN ( {1} ) ", this.ListView.BillBusinessInfo.GetForm().PkFieldName, string.Join(",", billIds)); var rows = QueryServiceHelper.GetDynamicObjectCollection(this.Context, queryParam); List <Boolean> result = (from z in rows.Where(z => !Convert.ToBoolean(z["F_PAEZ_SFYQZF"])) select Convert.ToBoolean(z["F_PAEZ_SFYQZF"])).ToList(); if (result.Count() > 0) { throw new Exception("所选单据存在没有勾选支持银企付款参数,不允许通过银企进行付款!"); } } }
/// <summary> /// 来源单获取单位酶活 /// </summary> /// <param name="ctx"></param> /// <param name="billData"></param> /// <param name="para"></param> /// <returns></returns> private decimal GetBillDataEntryRate(Kingdee.BOS.Context ctx, DynamicObject billData, JNQTYRatePara para) { var formKey = billData["FBILLFORMID"].ToString(); var lotFldKey = billData["FLOTFIELDKEY"].ToString(); var billId = billData["FBILLID"].ToString(); var matFldKey = "FMaterialId"; var lotid = billData["flotid"].ToString(); var matid = billData["FMaterialId"].ToString(); QueryBuilderParemeter qbPara = new QueryBuilderParemeter(); qbPara.FormId = formKey; qbPara.FilterClauseWihtKey = string.Format(" fid ={0} And {1} ={2} And {3}.FNumber ='{4}' And FAuxPropId={5} ", billId, lotFldKey, lotid, matFldKey, para.MaterialNumber, para.AuxPropId); //放到批号主档里过滤 //if (para.OrgId > 0) //{ // qbPara.FilterClauseWihtKey +=string.Format ( " And {0}={1} ", GetOrgFldKey( ctx,formKey),para.OrgId ); //} qbPara.SelectItems = SelectorItemInfo.CreateItems("FJNUnitEnzymes"); try { DynamicObjectCollection datas = Kingdee.BOS.ServiceHelper.QueryServiceHelper.GetDynamicObjectCollection(ctx, qbPara); if (datas != null && datas.Count > 0) { return(Convert.ToDecimal(datas[0]["FJNUnitEnzymes"])); } } catch (Exception ex) { return(0); } return(0); }
/// <summary> /// 是否取消同步操作 /// </summary> /// <param name="srcData"></param> /// <returns></returns> public override bool IsCancelSynchro(AbsSynchroDataInfo srcData) { K3CustomerInfo cust = srcData as K3CustomerInfo; if (SynSuccList != default(List <string>)) { if (SynSuccList.Count > 0) { foreach (var item in SynSuccList) { if (item.CompareTo(cust.FNumber) == 0) { return(false); } } } } QueryBuilderParemeter para = new QueryBuilderParemeter(); para.FormId = this.FormKey; para.SelectItems = SelectorItemInfo.CreateItems("FNumber"); if (cust != null) { para.FilterClauseWihtKey = " FNumber='" + cust.FNumber + "' "; } var k3Data = Kingdee.BOS.App.ServiceHelper.GetService <IQueryService>().GetDynamicObjectCollection(this.K3CloudContext, para); if (k3Data == null || k3Data.Count == 0) { return(false); } return(true); }
public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e) { //(列表中批量审核场景下)取出所有数据包 var queryService = ServiceHelper.GetService <IQueryService>(); var viewService = ServiceHelper.GetService <IViewService>(); var dataEntites = e.SelectedRows .Select(data => data.DataEntity) .ToArray(); if (!dataEntites.Any()) { return; } //取出所有的MasterId var OrgIds = dataEntites.Select(data => data.PkId <int>()).ToArray(); string targetFormId = "BAH_BD_Organization"; //找到对应普华物料的主键 QueryBuilderParemeter para = new QueryBuilderParemeter(); para.FormId = targetFormId; para.SelectItems = SelectorItemInfo.CreateItems("FID", "FMIRRORID"); para.FilterClauseWihtKey = "FMirrorId in (Select FID From TABLE(fn_StrSplit(@OrgIds,',',1)))"; para.SqlParams.Add(new SqlParam("@OrgIds", KDDbType.udt_inttable, OrgIds)); var ids = queryService.GetDynamicObjectCollection(this.Context, para).Select(data => data.Property <object>("FID")).ToArray(); var mirrorids = queryService.GetDynamicObjectCollection(this.Context, para).Select(data => data.Property <int>("FMIRRORID")).ToArray(); //用得到的主键去获取普华物料数据包 var targetMetadata = FormMetaDataCache.GetCachedFormMetaData(this.Context, targetFormId); var targetBillView = targetMetadata.CreateBillView(this.Context); var targetBillService = targetBillView.AsDynamicFormViewService(); var targetDataObjects = viewService.LoadFromCache(this.Context, ids, targetMetadata.BusinessInfo.GetDynamicObjectType()).ToList(); //如果两边的数据包可以被关联,那么直接对应修改。 dataEntites.Join(targetDataObjects, left => left.PkId <int>(), right => right.FieldProperty <DynamicObject>(targetMetadata.BusinessInfo.GetField("FMirrorId")).PkId <int>(), (left, right) => { targetBillView.Edit(right); targetBillService.UpdateValue("FNumber", -1, left.BDNumber()); targetBillService.UpdateValue("FName", -1, new LocaleValue(left.BDName(this.Context))); return(right); }).ToArray(); //如果数据包没有关联,则新增 var unmatchDataEntities = dataEntites.Where(data => (mirrorids.Contains(data.PkId <int>()) == false)) .ToArray(); var addDataObjects = new List <DynamicObject>(); foreach (var data in unmatchDataEntities) { targetBillView.AddNew(); targetBillService.UpdateValue("FNumber", -1, data.BDNumber()); targetBillService.UpdateValue("FName", -1, new LocaleValue(data.BDName(this.Context))); targetBillService.SetItemValueByID("FMirrorId", data.PkId <int>(), -1); addDataObjects.Add(targetBillView.Model.DataObject); } //合并待操作数据 targetDataObjects.AddRange(addDataObjects); if (targetDataObjects.Any()) { targetDataObjects.DoNothing(this.Context, targetMetadata.BusinessInfo, "Upload").Adaptive(op => this.OperationResult.MergeResult(op)); } base.AfterExecuteOperationTransaction(e); }
/// <summary> /// 获取库存明细 /// </summary> ///参数为跟踪号或库位编码 /// <returns>返回服务结果。</returns> public ServiceResult ExecuteService(string materialid, string ownerid, string whid) { var result = new ServiceResult <List <JSONObject> >(); var ctx = this.KDContext.Session.AppContext; // 检查上下文对象 if (this.IsContextExpired(result)) { return(result); } //获取相关信息 try { JSONObject Finaldata = new JSONObject(); List <JSONObject> return_data = new List <JSONObject>(); // TODO: 通过平台动态引擎获取数据 string sqlSelect = string.Format(@"/*dialect*/ SELECT DISTINCT t.FMATERIALID,T3.FNAME AS FMATERIALNAME,T2.FNUMBER AS FMATERIALNUMBER ,t3.FSPECIFICATION, CASE T10.FIGNOREINVENTORYTRACKNO WHEN 1 then 'True' ELSE 'False' END AS FIGNOREINVENTORYTRACKNO, CASE T11.FENABLELOT WHEN 1 then 'True' ELSE 'False' END AS FENABLELOT , CASE T11.FENABLEEXPIRY WHEN 1 then 'True' ELSE 'False' END AS FENABLEEXPIRY, CASE T11.FENABLECAPACITY WHEN 1 then 'True' ELSE 'False' END AS FENABLECAPACITY, t11.FCAPACITYSCALE,t12.FCAPACITYUNIT, t.FBILLNO AS FTrackNo,T.FLOTNO,FPRODUCEDATE,FEXPIRYDATE,FMQTY,FMAINUNITID, t8.FNAME AS FMainUnitNAME, t.FEXPPERIOD, 'D' AS FEXPUNIT,T.FAVGCTY,T.FCTY, FLOCID,t6.FNUMBER AS FLocNumber,t5.FNAME AS FLocName, t.FPACKAGEID,t4.FNUMBER AS FPackageNumber ,t7.FNAME AS FPackageName FROM dbo.BAH_V_WMS_INVENTORY t LEFT JOIN dbo.BAH_T_BD_MATERIAL t2 ON t.FMATERIALID = t2.FID LEFT JOIN dbo.BAH_T_BD_MATERIAL_L t3 ON t.FMATERIALID = t3.FID LEFT JOIN dbo.BAH_T_BD_PACKAGE T4 ON T.FPACKAGEID = T4.FID LEFT JOIN dbo.BAH_T_BD_LOCATION_L t5 ON t.FLOCID = t5.FID LEFT JOIN dbo.BAH_T_BD_LOCATION t6 ON t.FLOCID = t6.FID LEFT JOIN dbo.BAH_T_BD_PACKAGE_L T7 ON T.FPACKAGEID = T7.FID LEFT JOIN dbo.BAH_T_BD_PKGUOM_L T8 ON T4.FMAINUNITID = t8.FENTRYID LEFT JOIN dbo.BAH_T_BD_LOCBASE T9 ON T6.FID = T9.FID INNER JOIN BAH_T_BD_LOCCONTROL T10 ON T6.FID = T10.FID INNER JOIN dbo.BAH_T_BD_MATWAREHOUSE T11 ON T2.FID = T11.FID LEFT JOIN dbo.BAH_T_BD_MATWAREHOUSE_L T12 ON T11.FENTRYID = T12.FENTRYID where (t2.FNUMBER = '{0}' or t.FBILLNO = '{0}' or t6.FNUMBER = '{0}' ) AND (t9.FUSE = 'Storage' or t9.FUSE = 'Pick') AND T.FOWNERID = '{1}' AND t.fwhid = '{2}' ;", materialid, ownerid, whid);// or a.num is null DynamicObjectCollection dataObjectCollection = DBUtils.ExecuteDynamicObject(ctx, sqlSelect, null, null); if (dataObjectCollection.Count == 0) { result.Code = (int)ResultCode.Fail; result.Message = "未检索到对应信息!"; } else { foreach (DynamicObject dataObject in dataObjectCollection) { JSONObject data = new JSONObject(); IPackageService pkgService = null; String FMQtyForShow; try { FormMetadata meta = MetaDataServiceHelper.Load(ctx, "BAH_BD_Package") as FormMetadata; QueryBuilderParemeter queryParam = new QueryBuilderParemeter(); queryParam.FormId = "BAH_BD_Package"; queryParam.BusinessInfo = meta.BusinessInfo; queryParam.FilterClauseWihtKey = " FID ='" + dataObject["FPackageId"].ToString() + "' "; var objs = BusinessDataServiceHelper.Load(ctx, meta.BusinessInfo.GetDynamicObjectType(), queryParam).FirstOrDefault(); pkgService = PIBDServiceFactory.Instance.GetService <IPackageService>(ctx); var Marray = pkgService.Expand(ctx, objs, decimal.Parse(dataObject["FMQty"].ToString())); FMQtyForShow = string.Join("", Marray.Select(item => string.Concat(item.Qty.ToTrimEndZeroString(), item.Name.Value(ctx))).ToArray()); } finally { PIBDServiceFactory.Instance.CloseService(pkgService); } data.Add("FMATERIALID", dataObject["FMATERIALID"].ToString()); data.Add("FMATERIALNAME", dataObject["FMATERIALNAME"]); data.Add("FMATERIALNUMBER", dataObject["FMATERIALNUMBER"]); data.Add("FSPECIFICATION", dataObject["FSPECIFICATION"]); data.Add("FIGNOREINVENTORYTRACKNO", dataObject["FIGNOREINVENTORYTRACKNO"]); data.Add("FENABLELOT", dataObject["FENABLELOT"]); data.Add("FENABLEEXPIRY", dataObject["FENABLEEXPIRY"]); data.Add("FENABLECAPACITY", dataObject["FENABLECAPACITY"]); data.Add("FCAPACITYSCALE", dataObject["FCAPACITYSCALE"]); data.Add("FCAPACITYUNIT", dataObject["FCAPACITYUNIT"]); data.Add("FTrackNo", dataObject["FTrackNo"]); data.Add("FLotNo", dataObject["FLotNo"].ToString()); if (dataObject["FProduceDate"].ToString() == "0001-01-01 00:00:00") { data.Add("FProduceDate", ""); } else { data.Add("FProduceDate", Convert.ToDateTime(dataObject["FProduceDate"].ToString()).ToString("yyyy-MM-dd")); } if (dataObject["FExpiryDate"].ToString() == "0001-01-01 00:00:00") { data.Add("FExpiryDate", ""); } else { data.Add("FExpiryDate", Convert.ToDateTime(dataObject["FExpiryDate"].ToString()).ToString("yyyy-MM-dd HH:mm:ss.fff")); } data.Add("FMQty", dataObject["FMQty"].ToString()); data.Add("FMainUnitId", dataObject["FMainUnitId"]); data.Add("FMainUnitNAME", dataObject["FMainUnitNAME"]); data.Add("FAVGCTY", dataObject["FAVGCTY"]); data.Add("FCTY", dataObject["FCTY"]); data.Add("FEXPPERIOD", dataObject["FEXPPERIOD"]); data.Add("FEXPUNIT", dataObject["FEXPUNIT"]); data.Add("FLocId", dataObject["FLocId"]); data.Add("FLocNumber", dataObject["FLocNumber"]); data.Add("FLocName", dataObject["FLocName"]); data.Add("FPackageId", dataObject["FPackageId"]); data.Add("FPackageNumber", dataObject["FPackageNumber"]); data.Add("FPackageName", dataObject["FPackageName"]); data.Add("FMQtyForShow", FMQtyForShow); return_data.Add(data); } } //返回数据 result.Code = (int)ResultCode.Success; result.Data = return_data; result.Message = "成功返回数据!"; } catch (Exception ex) { result.Code = (int)ResultCode.Fail; result.Message = ex.Message; } return(result); }
public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e) { base.AfterExecuteOperationTransaction(e); //TODO: //0.泛亚场景,当Id和MasterId相同时,才触发同步事件。 //1.准备物料的数据包,e.DataEntities,取物料MasterId。 //2.用MasterId关联查询普华智造里物料MirrorId,通过这个步骤知道,哪些需要修改(调用Save方法),哪些需要新增(调用Draft方法)。 //3.需要修改的,直接关联同步修改。 //4.需要新增的,通过表单代理直接创建新数据包。 //5.统一调用上传操作。 //(列表中批量审核场景下)取出所有数据包 var queryService = ServiceHelper.GetService <IQueryService>(); var viewService = ServiceHelper.GetService <IViewService>(); var dataEntites = e.SelectedRows .Select(data => data.DataEntity) .Where(data => data.FieldProperty <bool>(this.BusinessInfo.GetField("FPHMXEnablePHManagement"))) .Where(data => data.PkId <int>() == data.MasterId <int>()) .ToArray(); if (!dataEntites.Any()) { return; } //取出所有的MasterId var masterIds = dataEntites.Select(data => data.PkId <int>()).ToArray(); string targetFormId = PIBDFormPrimaryKey.Instance.Material(); //找到对应普华物料的主键 QueryBuilderParemeter para = new QueryBuilderParemeter(); para.FormId = targetFormId; para.SelectItems = SelectorItemInfo.CreateItems("FID", "FMIRRORID"); para.FilterClauseWihtKey = "FMirrorId in (Select FID From TABLE(fn_StrSplit(@MasterIds,',',1)))"; para.SqlParams.Add(new SqlParam("@MasterIds", KDDbType.udt_inttable, masterIds)); var ids = queryService.GetDynamicObjectCollection(this.Context, para).Select(data => data.Property <object>("FID")).ToArray(); var mirrorids = queryService.GetDynamicObjectCollection(this.Context, para).Select(data => data.Property <int>("FMIRRORID")).ToArray(); //用得到的主键去获取普华物料数据包 var targetMetadata = FormMetaDataCache.GetCachedFormMetaData(this.Context, targetFormId); var targetBusinessInfo = targetMetadata.BusinessInfo; var targetBillView = targetMetadata.CreateBillView(this.Context); var targetBillService = targetBillView.AsDynamicFormViewService(); var targetDataObjects = viewService.LoadFromCache(this.Context, ids, targetBusinessInfo.GetDynamicObjectType()).ToList(); //如果两边的数据包可以被关联,那么直接对应修改。 dataEntites.Join(targetDataObjects, left => left.MasterId <int>(), right => right.FieldProperty <DynamicObject>(targetMetadata.BusinessInfo.GetField("FMirrorId")).MasterId <int>(), (left, right) => { targetBillView.Edit(right); targetBillService.UpdateValue("FNumber", -1, left.BDNumber()); targetBillService.UpdateValue("FName", -1, new LocaleValue(left.BDName(this.Context))); targetBillService.UpdateValue("FSpecification", -1, new LocaleValue(left.FieldProperty <LocaleValue>(this.BusinessInfo.GetField("FSpecification")).Value(this.Context))); //基本 left.SubHeadProperty(this.BusinessInfo.GetEntity("SubHeadEntity")) .Adaptive(sub => { this.BusinessInfo.GetField("FBaseUnitId").AsType <BaseDataField>() .Adaptive(field => { if (!sub.FieldProperty <DynamicObject>(field).FieldRefProperty <bool>(field, "FPHMXEA") || left.SubHeadProperty(this.BusinessInfo.GetEntity("SubHeadEntity1")).FieldProperty <decimal>(this.BusinessInfo.GetField("FPHMXStdCty")) > 0M) { targetBillService.UpdateValue("FEnableCapacity", -1, true); targetBillService.UpdateValue("FCapacityUnit", -1, new LocaleValue(sub.FieldProperty <DynamicObject>(field).BDName(this.Context))); targetBillService.UpdateValue("FCapacityScale", -1, sub.FieldProperty <DynamicObject>(field).FieldRefProperty <int>(field, "FPrecision")); } //end if }); }); //库存 var pkgId = left.SubHeadProperty(this.BusinessInfo.GetEntity("SubHeadEntity1")).FieldProperty <DynamicObject>(this.BusinessInfo.GetField("FPHMXPkgId")).PkId <string>(); if (!pkgId.IsNullOrEmptyOrWhiteSpace()) { var entries = targetBillView.Model.GetEntityDataObject(targetBusinessInfo.GetEntity("FPackageEntry")); if (entries.Any(entry => entry.FieldProperty <DynamicObject>(targetBusinessInfo.GetField("FEntryPackageId")).PkId <string>().EqualsIgnoreCase(pkgId)) == false) { targetBillView.Model.InsertEntryRow("FPackageEntry", 0); targetBillService.SetItemValueByID("FEntryPackageId", pkgId, 0); } //end if //设置标准容量。 entries.Where(entry => targetBillView.Model.GetValue("FEnableCapacity").ToType <bool>() && entry.FieldProperty <DynamicObject>(targetBusinessInfo.GetField("FEntryPackageId")).PkId <string>().EqualsIgnoreCase(pkgId)) .FirstOrDefault() .Adaptive(pkg => { if (pkg != null) { var index = entries.IndexOf(pkg); targetBillService.UpdateValue("FStdCty", index, left.SubHeadProperty(this.BusinessInfo.GetEntity("SubHeadEntity1")).FieldProperty <decimal>(this.BusinessInfo.GetField("FPHMXStdCty"))); } //end if }); //设置默认包装。 targetBillService.SetItemValueByID("FPackageId", pkgId, -1); } //end if //设置有效期。 if (targetBillView.Model.GetValue("FEnableExpiry").ToType <bool>()) { targetBillService.UpdateValue("FExpPeriod", -1, left.SubHeadProperty(this.BusinessInfo.GetEntity("SubHeadEntity1")).FieldProperty <int>(this.BusinessInfo.GetField("FExpPeriod"))); targetBillService.UpdateValue("FExpUnit", -1, left.SubHeadProperty(this.BusinessInfo.GetEntity("SubHeadEntity1")).FieldProperty <string>(this.BusinessInfo.GetField("FExpUnit"))); } //end if return(right); }).ToArray(); //如果数据包没有关联,则新增 var unmatchDataEntities = dataEntites.Where(data => (mirrorids.Contains(data.MasterId <int>()) == false)) .ToArray(); foreach (var data in unmatchDataEntities) { targetBillView.AddNew(); targetBillService.UpdateValue("FNumber", -1, data.BDNumber()); targetBillService.UpdateValue("FName", -1, new LocaleValue(data.BDName(this.Context))); targetBillService.UpdateValue("FSpecification", -1, new LocaleValue(data.FieldProperty <LocaleValue>(this.BusinessInfo.GetField("FSpecification")).Value(this.Context))); //基本 data.SubHeadProperty(this.BusinessInfo.GetEntity("SubHeadEntity")) .Adaptive(sub => { this.BusinessInfo.GetField("FBaseUnitId").AsType <BaseDataField>() .Adaptive(field => { if (!sub.FieldProperty <DynamicObject>(field).FieldRefProperty <bool>(field, "FPHMXEA")) { targetBillService.UpdateValue("FEnableCapacity", -1, true); targetBillService.UpdateValue("FCapacityUnit", -1, new LocaleValue(sub.FieldProperty <DynamicObject>(field).BDName(this.Context))); targetBillService.UpdateValue("FCapacityScale", -1, sub.FieldProperty <DynamicObject>(field).FieldRefProperty <int>(field, "FPrecision")); } //end if }); }); //库存 data.SubHeadProperty(this.BusinessInfo.GetEntity("SubHeadEntity1")) .Adaptive(sub => { //设置分录包装。 var pkgId = sub.FieldProperty <DynamicObject>(this.BusinessInfo.GetField("FPHMXPkgId")).PkId <string>(); if (targetBusinessInfo.GetEntity("FPackageEntry").DefaultRows < 1) { targetBillView.Model.InsertEntryRow("FPackageEntry", 0); } targetBillService.SetItemValueByID("FEntryPackageId", pkgId, 0); if (targetBillView.Model.GetValue("FEnableCapacity").ToType <bool>()) { targetBillService.UpdateValue("FStdCty", 0, sub.FieldProperty <decimal>(this.BusinessInfo.GetField("FPHMXStdCty"))); } //end if //设置默认包装。 targetBillService.SetItemValueByID("FPackageId", pkgId, -1); }); targetBillService.UpdateValue("FEnableLot", -1, data.SubHeadProperty(this.BusinessInfo.GetEntity("SubHeadEntity1")).FieldProperty <bool>(this.BusinessInfo.GetField("FIsBatchManage"))); targetBillService.UpdateValue("FEnableExpiry", -1, data.SubHeadProperty(this.BusinessInfo.GetEntity("SubHeadEntity1")).FieldProperty <bool>(this.BusinessInfo.GetField("FIsKFPeriod"))); targetBillService.UpdateValue("FExpPeriod", -1, data.SubHeadProperty(this.BusinessInfo.GetEntity("SubHeadEntity1")).FieldProperty <int>(this.BusinessInfo.GetField("FExpPeriod"))); targetBillService.UpdateValue("FExpUnit", -1, data.SubHeadProperty(this.BusinessInfo.GetEntity("SubHeadEntity1")).FieldProperty <string>(this.BusinessInfo.GetField("FExpUnit"))); targetBillService.UpdateValue("FLotExpiryUnique", -1, data.SubHeadProperty(this.BusinessInfo.GetEntity("SubHeadEntity1")).FieldProperty <bool>(this.BusinessInfo.GetField("FIsExpParToFlot"))); targetBillService.SetItemValueByID("FMirrorId", data.PkId <int>(), -1); targetDataObjects.Add(targetBillView.Model.DataObject); }//end foreach //统一调用上传操作。 if (targetDataObjects.Any()) { var op = targetDataObjects.DoNothing(this.Context, targetBusinessInfo, "Upload"); this.OperationResult.MergeResult(op); } //end if } //end method
/// <summary> /// 输入收货明细fid,entryid,输出收货明细详情 /// </summary> /// <param name="billno">收货明细编号</param> /// <returns>返回服务结果。</returns> public ServiceResult ExecuteService(string SourceBillId, string SourceEntryId) { var result = new ServiceResult <JSONObject>(); var ctx = this.KDContext.Session.AppContext; // 检查上下文对象 if (this.IsContextExpired(result)) { return(result); } // 检查传入参数 //if (string.IsNullOrWhiteSpace(billno)) //{ // result.Code = (int)ResultCode.Fail; // result.Message = "收货明细编号不能为空!"; // return result; //} //获取相关信息 try { //TODO:通过平台动态引擎获取数据 JSONObject return_data = new JSONObject(); //客户编码和物料编码 string sqlSelect = string.Format(@"/*dialect*/ SELECT t.FQty, t.FUnitId, t4.FNAME AS FUnitName,t.FMQty,T.FMUNITID,t9.FNAME AS FMUnitName, t.FPackageId, t5.FHasJoinMQty,(t.FMQTY - t5.FHasJoinMQty) AS FNeedINBOUNDMQTY, t.FAVGCTY,t.FCTY FROM dbo.BAH_T_WMS_INBOUNDENTRY t LEFT JOIN dbo.BAH_V_BD_UNIT_L t4 ON t.FUNITID = t4.fid LEFT JOIN dbo.BAH_T_WMS_INBOUNDENTRY_W t5 ON t.FENTRYID = t5.FENTRYID LEFT JOIN dbo.BAH_V_BD_UNIT_L t9 ON t.FMUNITID = t9.fid WHERE t5.FJOINSTATUS = 'A' AND t.FID = '{0}' AND T.FENTRYID = '{1}' order by t.FSEQ ;", SourceBillId, SourceEntryId);// or a.num is null DynamicObjectCollection mat_objc = DBUtils.ExecuteDynamicObject(ctx, sqlSelect, null, null); if (mat_objc.Count == 0) { result.Code = (int)ResultCode.Fail; result.Message = "未检索到对应信息!"; } else { List <JSONObject> detail_list = new List <JSONObject>(); //明细信息 foreach (DynamicObject data in mat_objc) { JSONObject each_detail = new JSONObject(); IPackageService pkgService = null; String FMQtyForShow; String FHASMQTYForShow; String FNeedMQTYForShow; try { FormMetadata meta = MetaDataServiceHelper.Load(ctx, "BAH_BD_Package") as FormMetadata; QueryBuilderParemeter queryParam = new QueryBuilderParemeter(); queryParam.FormId = "BAH_BD_Package"; queryParam.BusinessInfo = meta.BusinessInfo; queryParam.FilterClauseWihtKey = " FID ='" + data["FPackageId"].ToString() + "' "; var objs = BusinessDataServiceHelper.Load(ctx, meta.BusinessInfo.GetDynamicObjectType(), queryParam).FirstOrDefault(); pkgService = PIBDServiceFactory.Instance.GetService <IPackageService>(ctx); var Marray = pkgService.Expand(ctx, objs, decimal.Parse(data["FMQty"].ToString())); var Harray = pkgService.Expand(ctx, objs, decimal.Parse(data["FHasJoinMQty"].ToString())); var Narray = pkgService.Expand(ctx, objs, decimal.Parse(data["FNeedINBOUNDMQTY"].ToString())); FMQtyForShow = string.Join("", Marray.Select(item => string.Concat(item.Qty.ToTrimEndZeroString(), item.Name.Value(ctx))).ToArray()); FHASMQTYForShow = string.Join("", Harray.Select(item => string.Concat(item.Qty.ToTrimEndZeroString(), item.Name.Value(ctx))).ToArray()); FNeedMQTYForShow = string.Join("", Narray.Select(item => string.Concat(item.Qty.ToTrimEndZeroString(), item.Name.Value(ctx))).ToArray()); } finally { PIBDServiceFactory.Instance.CloseService(pkgService); } each_detail.Add("FQty", data["FQty"]); each_detail.Add("FUnitId", data["FUnitId"]); each_detail.Add("FUnitName", data["FUnitName"]); each_detail.Add("FMQty", data["FMQty"]); each_detail.Add("FMUNITID", data["FMUNITID"]); each_detail.Add("FMUnitName", data["FMUnitName"]); each_detail.Add("FMQtyForShow", FMQtyForShow); each_detail.Add("FHASMQTYForShow", FHASMQTYForShow); each_detail.Add("FNeedMQTYForShow", FNeedMQTYForShow); each_detail.Add("FHASPutMQTY", data["FHasJoinMQty"]); each_detail.Add("FNeedPutMQTY", data["FNeedINBOUNDMQTY"]); each_detail.Add("FAVGCTY", data["FAVGCTY"]); each_detail.Add("FCTY", data["FCTY"]); detail_list.Add(each_detail); } return_data.Add("DetailList", detail_list); } //返回数据 result.Code = (int)ResultCode.Success; result.Data = return_data; result.Message = "成功返回数据!"; } catch (Exception ex) { result.Code = (int)ResultCode.Fail; result.Message = ex.Message; } return(result); }