public override void AfterConvert(Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args.AfterConvertEventArgs e)
        {
            base.AfterConvert(e);
            //设置采购部门
            this.info = e.TargetBusinessInfo;
            Kingdee.K3.SCM.Contracts.ICommonService commonService = Kingdee.K3.SCM.Contracts.ServiceFactory.GetCommonService(base.Context);
            ExtendedDataEntity[] entityArray = e.Result.FindByEntityKey("FBillHead");
            BaseDataField        Deptfield   = this.info.GetField("FPurchaseDeptId") as BaseDataField;

            if ((entityArray != null) && (entityArray.Length > 0))
            {
                foreach (ExtendedDataEntity entity in entityArray)
                {
                    DynamicObject dataEntity = entity.DataEntity;
                    long          num        = Convert.ToInt64(dataEntity["PurchaseDeptId_id"]);
                    long          orgId      = Convert.ToInt64(dataEntity["PurchaseOrgId_id"]);
                    if (num <= 0L)
                    {
                        long num3 = commonService.GetUserOperatorId(base.Context, base.Context.UserId, orgId, "CGY");
                        long num4 = commonService.GetMyDepartment(base.Context, base.Context.UserId).FirstOrDefault <long>();
                        FieldUtils.SetBaseDataFieldValue(base.Context, Deptfield, dataEntity, num4);
                    }
                }
            }
        }
Пример #2
0
        private void SetDefaultExchange(AfterFieldMappingEventArgs e)
        {
            ExtendedDataEntity[] entityArray = e.TargetExtendDataEntitySet.FindByEntityKey("FBillHead");
            e.TargetExtendDataEntitySet.FindByEntityKey("FSaleOrderEntry");
            ExtendedDataEntity[] entityArray2  = e.TargetExtendDataEntitySet.FindByEntityKey("FSaleOrderFinance");
            ICommonService       commonService = ServiceFactory.GetCommonService(base.Context);

            foreach (ExtendedDataEntity entity in entityArray2)
            {
                ExtendedDataEntity entity2 = entityArray[entity.DataEntityIndex];
                long       num             = Convert.ToInt64(entity2.DataEntity["SaleOrgId_Id"]);
                long       num2            = 0;
                long       num3            = 0;
                JSONObject defCurrencyAndExchangeTypeByBizOrgID = commonService.GetDefCurrencyAndExchangeTypeByBizOrgID(base.Context, num);
                if (defCurrencyAndExchangeTypeByBizOrgID != null)
                {
                    num2 = Convert.ToInt64(defCurrencyAndExchangeTypeByBizOrgID["FCyForID"]);
                    num3 = Convert.ToInt64(defCurrencyAndExchangeTypeByBizOrgID["FRateType"]);
                }
                BaseDataField field = e.TargetBusinessInfo.GetField("FExchangeTypeId") as BaseDataField;
                FieldUtils.SetBaseDataFieldValue(base.Context, field, entity.DataEntity, num3);
                long     num4 = Convert.ToInt64(entity.DataEntity["SettleCurrId_Id"]);
                DateTime time = Convert.ToDateTime(entityArray[entity.DataEntityIndex].DataEntity["Date"]);
                if ((num2 == num4) || (time == DateTime.MinValue))
                {
                    entity.DataEntity["ExchangeRate"] = 1;
                }
                else
                {
                    KeyValuePair <decimal, int> pair = commonService.GetExchangeRateAndDecimal(base.Context, num4, num2, num3, time, time);
                    entity.DataEntity["ExchangeRate"] = pair.Key;
                }
            }
        }
Пример #3
0
        public void BuildF8(ExtensionItem extension)
        {
            BaseDataField propField = (BaseDataField)ObjectUtils.CreateCopy(modelF8Field);

            propField.DynamicProperty = null;
            propField.ChildrenFields.Clear();
            propField.EntityKey = currEntityKey;
            propField.Entity    = currEntity;
            if (propField.UpdateActions != null)
            {
                propField.UpdateActions.Clear();
            }

            // 必改属性,涉及到数据的加载
            propField.Key                    = extension.Key;
            propField.FieldName              = extension.Key.ToUpperInvariant();
            propField.PropertyName           = extension.Key;
            propField.Name                   = new LocaleValue(extension.Name);
            propField.LookUpObject.FormId    = extension.F8FormId;
            propField.LookUpObject.TableName = extension.F8TableName;

            FormMetadata materialMetada =
                MetaDataServiceHelper.Load(this.Context, extension.F8FormId) as FormMetadata;


            propField.RefFormDynamicObjectType = materialMetada.BusinessInfo.GetDynamicObjectType();
            propField.TableName = extension.F8TableName;
            //  propField.RefFormDynamicObjectType = new DynamicObjectType(extension.F8FormId);

            _currBusinessInfo.Add(propField);
        }
Пример #4
0
 /// <summary>
 /// 给基础资料字段赋值
 /// </summary>
 private void SetBaseDataValue(IViewService service, DynamicObject data, BaseDataField bdfield, long value, ref DynamicObject dyValue)
 {
     if (value == 0)
     {
         //bdfield.RefIDDynamicProperty.SetValue(data, 0);
         //bdfield.DynamicProperty.SetValue(data, null);
         dyValue = null;
     }
     else
     {
         if (dyValue == null)
         {
             dyValue = service.LoadSingle(this.Context, value, bdfield.RefFormDynamicObjectType);
         }
         if (dyValue != null)
         {
             bdfield.RefIDDynamicProperty.SetValue(data, value);
             bdfield.DynamicProperty.SetValue(data, dyValue);
         }
         else
         {
             bdfield.RefIDDynamicProperty.SetValue(data, 0);
             bdfield.DynamicProperty.SetValue(data, null);
         }
     }
 }
Пример #5
0
        /// <summary>
        /// 赋值
        /// </summary>
        /// <param name="businessinfo"></param>
        /// <param name="dataEntity"></param>
        /// <param name="ormFieldKey"></param>
        /// <param name="fieldKey"></param>
        /// <param name="value"></param>
        private void SetRountIdFiled(BusinessInfo businessinfo, DynamicObject dataEntity, string ormFieldKey, string fieldKey, object value)
        {
            DynamicObject orgFieldData = (DynamicObject)dataEntity[ormFieldKey];

            if (orgFieldData == null)
            {
                BaseDataField baseField = businessinfo.GetField(fieldKey) as BaseDataField;
                SetBaseDataFieldValue(this.Context, baseField, dataEntity, value);
            }
        }
Пример #6
0
 public static T FieldRefIdProperty <T>(this DynamicObject dataObject, BaseDataField field)
 {
     if (dataObject == null)
     {
         return(default(T));
     }
     else if (typeof(T).IsValueType || typeof(T).Equals(typeof(string)))
     {
         return(field.RefIDDynamicProperty.GetValue(dataObject).ToChangeType <T>());
     }
     else
     {
         return(field.RefIDDynamicProperty.GetValue(dataObject).ToType <T>());
     }
 }
Пример #7
0
        private void SetRelativeCodeByMaterialId(AfterFieldMappingEventArgs e)
        {
            ExtendedDataEntity[] entityArray  = e.TargetExtendDataEntitySet.FindByEntityKey("FSaleOrderEntry");
            ExtendedDataEntity[] entityArray2 = e.TargetExtendDataEntitySet.FindByEntityKey("FBillHead");
            Kingdee.K3.SCM.Contracts.ICommonService service = Kingdee.K3.SCM.App.ServiceHelper.GetService <ICommonService>();
            Dictionary <long, bool> dictionary = new Dictionary <long, bool>();

            foreach (ExtendedDataEntity entity in entityArray)
            {
                if (!entity.DataEntity["MapId_Id"].IsNullOrEmptyOrWhiteSpace())
                {
                    continue;
                }
                bool flag = false;
                long key  = Convert.ToInt64(entityArray2[entity.DataEntityIndex].DataEntity["SaleOrgId_Id"]);
                long num2 = Convert.ToInt64(entityArray2[entity.DataEntityIndex].DataEntity["CustId_Id"]);
                long num3 = Convert.ToInt64(entity.DataEntity["MaterialId_Id"]);
                if (!dictionary.ContainsKey(key))
                {
                    object obj2 = service.GetSystemProfile(base.Context, key, "SAL_SystemParameter", "UseCustMatMapping", false);
                    flag = (obj2 != null) && Convert.ToBoolean(obj2);
                    dictionary.Add(key, flag);
                }
                if (dictionary[key])
                {
                    List <CustomerMaterialResult> list = service.GetRelativeCodeByMaterial(base.Context, num3, num2, key);
                    if (list.Count > 0)
                    {
                        string str = "";
                        foreach (CustomerMaterialResult result in list)
                        {
                            if (result.FCustId > 0)
                            {
                                str = result.Fid;
                                break;
                            }
                        }
                        if (str.IsNullOrEmptyOrWhiteSpace())
                        {
                            str = list[0].Fid;
                        }
                        BaseDataField field = e.TargetBusinessInfo.GetField("FMapId") as BaseDataField;
                        FieldUtils.SetBaseDataFieldValue(base.Context, field, entity.DataEntity, str);
                    }
                }
            }
        }
Пример #8
0
        public void SetBaseDataFieldValue(Context ctx, BaseDataField field, DynamicObject data, object value)
        {
            long result = 0;

            long.TryParse(value.ToString(), out result);
            if ((value.ToString().Length > 1) || (result > 0))
            {
                DynamicObject newValue = LoadReferenceData(ctx, field.RefFormDynamicObjectType, value);
                field.DynamicProperty.SetValue(data, newValue);
                field.RefIDDynamicProperty.SetValue(data, value);
            }
            else
            {
                field.DynamicProperty.SetValue(data, null);
                field.RefIDDynamicProperty.SetValue(data, 0);
            }
        }
Пример #9
0
        /// <summary>
        /// 最后触发:单据转换后事件
        /// </summary>
        /// <param name="e"/>
        public override void AfterConvert(Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args.AfterConvertEventArgs e)
        {
            ExtendedDataEntity[] array = e.Result.FindByEntityKey("FBillHead");

            foreach (ExtendedDataEntity extendedDataEntity in array)
            {
                long orgid = Convert.ToInt32(extendedDataEntity.DataEntity["FPAYORGID"]);
                DynamicObjectCollection dynamicObjectCollection = (extendedDataEntity.DataEntity["PAYBILLENTRY"] as DynamicObjectCollection);

                if (dynamicObjectCollection == null)
                {
                    continue;
                }

                BaseDataField priceListDataField = e.TargetBusinessInfo.GetField("FPriceListId") as BaseDataField;

                foreach (DynamicObject dyentry in dynamicObjectCollection)
                {
                    long materialid = Convert.ToInt32(dyentry["MaterialId_Id"]);

                    List <long> lMaterList = new List <long>();
                    lMaterList.Add(materialid);
                    DynamicObjectCollection bomDataCollection = CommonServiceHelper.GetAcctBookData(this.Context, orgid, materialid, materialid);
                    DynamicObject           listdObjects      = null;
                    if (bomDataCollection == null)
                    {
                        continue;
                    }

                    listdObjects = bomDataCollection.FirstOrDefault();
                    if (listdObjects != null)
                    {
                        decimal amount, Qty, Price;
                        Qty                 = Convert.ToDecimal(dyentry["Qty"]);
                        Price               = Convert.ToDecimal(listdObjects["FPRICE"]);
                        amount              = Qty * Price;
                        dyentry["Amount"]   = amount;
                        dyentry["Price"]    = listdObjects["FPRICE"];
                        dyentry["TaxPrice"] = listdObjects["FPRICE"];
                    }
                }
            }
        }
Пример #10
0
 public static T FieldRefProperty <T>(this DynamicObject dataObject, BaseDataField field, string keyName)
 {
     if (dataObject == null)
     {
         return(default(T));
     }
     else if (typeof(T).Equals(typeof(DateTime?)))
     {
         return(field.GetRefPropertyValue2(dataObject, keyName)
                .Adaptive(datetime => datetime != null ? datetime.ToType <DateTime>() : default(DateTime?))
                .ToType <T>());
     }
     else if (typeof(T).IsValueType || typeof(T).Equals(typeof(string)))
     {
         return(field.GetRefPropertyValue2(dataObject, keyName).ToChangeType <T>());
     }
     else
     {
         return(field.GetRefPropertyValue2(dataObject, keyName).ToType <T>());
     }
 }
Пример #11
0
        }//end method

        public static DynamicObject[] Mend(this IEnumerable <DynamicObject> dataObject, BaseDataField field, Func <object[], DynamicObject[]> loader, Func <DynamicObject, object> selector = null)
        {
            var ids = dataObject.Select(data => data.FieldRefIdProperty <object>(field)).Where(id => id != null).Distinct().ToArray();
            var bag = ids.Any() ? loader(ids) : new DynamicObject[0];

            return(dataObject.Join(bag,
                                   left => left.FieldRefIdProperty <object>(field),
                                   right => selector != null ? selector(right) : right.PkId(),
                                   (left, right) =>
            {
                left[field.PropertyName] = right;
                return left;
            }).ToArray());
        }
Пример #12
0
        /// <summary>
        /// 审核结束自动下推(应付单下推付款申请单)
        /// </summary>
        /// <param name="e"></param>
        public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
        {
            base.AfterExecuteOperationTransaction(e);
            try
            {
                string sql = string.Empty;
                if (e.DataEntitys != null && e.DataEntitys.Count <DynamicObject>() > 0)
                {
                    foreach (DynamicObject item in e.DataEntitys)
                    {
                        //收款单id
                        string Fid  = item["Id"].ToString();
                        string sql2 = "";
                        //收款单源单明细
                        DynamicObjectCollection RECEIVEBILLSRCENTRYList = item["RECEIVEBILLSRCENTRY"] as DynamicObjectCollection;
                        foreach (var entry in RECEIVEBILLSRCENTRYList)
                        {
                            //销售订单明细内码
                            string FORDERENTRYID = entry["FSRCORDERENTRYID"].ToString();
                            //本次收款金额
                            decimal FREALRECAMOUNT = Convert.ToDecimal(entry["REALRECAMOUNT"].ToString());
                            if (!string.IsNullOrEmpty(FORDERENTRYID))
                            {
                                //查询采购订单
                                sql = string.Format(@"select a.FBILLNO,b.FENTRYID as 采购订单明细内码 ,f.F_YBG_BUSINESSMODEL as 业务模式  from  t_PUR_POOrder a  
                                                       inner join   t_PUR_POOrderEntry b on a.fID=b.FID 
                                                       inner join T_PUR_POORDERENTRY_LK c on c.FENTRYID=b.FENTRYID 
                                                       left join T_SAL_ORDERENTRY d on d.FENTRYID=c.FSID
                                                       left  join T_SAL_ORDER f on f.FID=d.FID 
                                                       where  FSID='{0}'", FORDERENTRYID);
                                DataSet   ds = DBServiceHelper.ExecuteDataSet(this.Context, sql);
                                DataTable dt = ds.Tables[0];
                                if (dt.Rows.Count > 0)
                                {
                                    for (int i = 0; i < dt.Rows.Count; i++)
                                    {
                                        string F_YBG_BUSINESSMODEL = dt.Rows[i]["采购订单明细内码"].ToString();
                                        if (F_YBG_BUSINESSMODEL == "01" || F_YBG_BUSINESSMODEL == "04") //挂靠的采用自动生成付款申请单
                                        {
                                            string POFENTRYID = dt.Rows[i]["采购订单明细内码"].ToString();
                                            if (string.IsNullOrEmpty(sql2))
                                            {
                                                sql2 += "  FPAYABLEENTRYID='" + POFENTRYID + "' ";
                                            }
                                            else
                                            {
                                                sql2 += "  or  FPAYABLEENTRYID='" + POFENTRYID + "' ";
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        if (!string.IsNullOrEmpty(sql2))
                        {
                            #region  应付单下推付款申请单
                            string           srcFormId  = "AP_Payable";  //应付单
                            string           destFormId = "CN_PAYAPPLY"; //付款申请单
                            IMetaDataService mService   = Kingdee.BOS.App.ServiceHelper.GetService <IMetaDataService>();
                            IViewService     vService   = Kingdee.BOS.App.ServiceHelper.GetService <IViewService>();
                            FormMetadata     destmeta   = mService.Load(this.Context, destFormId) as FormMetadata;
                            //转换规则的唯一标识
                            string ruleKey = "AP_PayableToPayApply";
                            //var rules = ConvertServiceHelper.GetConvertRules(Context, srcFormId, destFormId);
                            //var rule = rules.FirstOrDefault(t => t.IsDefault);
                            ConvertRuleElement     rule    = GetDefaultConvertRule(Context, srcFormId, destFormId, ruleKey);
                            List <ListSelectedRow> lstRows = new List <ListSelectedRow>();
                            string  strsql = "select a.FID , a.FENTRYID  from T_AP_PAYABLEPLAN  a left join T_AP_PAYABLE b on a.FID=b.FID   where b.FDOCUMENTSTATUS='C' and  (" + sql2 + ") ";
                            DataSet ds2    = DBServiceHelper.ExecuteDataSet(Context, strsql);
                            if (ds2.Tables[0].Rows.Count > 0)
                            {
                                HashSet <string> hasset = new HashSet <string>();
                                for (int j = 0; j < ds2.Tables[0].Rows.Count; j++)
                                {
                                    hasset.Add(ds2.Tables[0].Rows[j]["FID"].ToString());
                                    long entryId = Convert.ToInt64(ds2.Tables[0].Rows[j]["FENTRYID"]);
                                    //源单单据标识
                                    ListSelectedRow row = new ListSelectedRow(ds2.Tables[0].Rows[j]["FID"].ToString(), entryId.ToString(), 0, "AP_Payable");
                                    //源单单据体标识
                                    row.EntryEntityKey = "FEntityPlan";
                                    lstRows.Add(row);
                                }

                                PushArgs        pargs      = new PushArgs(rule, lstRows.ToArray());
                                IConvertService cvtService = Kingdee.BOS.App.ServiceHelper.GetService <IConvertService>();
                                OperateOption   option     = OperateOption.Create();
                                option.SetIgnoreWarning(true);
                                option.SetVariableValue("ignoreTransaction", false);
                                option.SetIgnoreInteractionFlag(true);
                                #region 提交审核
                                //OperateOption option2 = OperateOption.Create();
                                //option2.SetIgnoreWarning(true);
                                //option2.SetVariableValue("ignoreTransaction", true);
                                //foreach (var hid in hasset)
                                //{
                                //    //如果应付单没有提交先提交审核
                                //    IMetaDataService BomService = Kingdee.BOS.App.ServiceHelper.GetService<IMetaDataService>();
                                //    //应付单元素包
                                //    FormMetadata APMeta = BomService.Load(Context, "AP_Payable") as FormMetadata;
                                //    IViewService APVService = Kingdee.BOS.App.ServiceHelper.GetService<IViewService>();
                                //    //应付单数据包
                                //    DynamicObject APmd = APVService.LoadSingle(Context, hid, APMeta.BusinessInfo.GetDynamicObjectType());

                                //    DynamicObject[] dy = new DynamicObject[] { APmd };

                                //    object[] items = dy.Select(p => p["Id"]).ToArray();

                                //    ISubmitService submitService = Kingdee.BOS.App.ServiceHelper.GetService<ISubmitService>();
                                //    IOperationResult submitresult = submitService.Submit(Context, APMeta.BusinessInfo, items, "Submit", option2);

                                //    IAuditService auditService = Kingdee.BOS.App.ServiceHelper.GetService<IAuditService>();
                                //    IOperationResult auditresult = auditService.Audit(Context, APMeta.BusinessInfo, items, option2);
                                //}
                                #endregion

                                ConvertOperationResult cvtResult = cvtService.Push(Context, pargs, option, false);
                                if (cvtResult.IsSuccess)
                                {
                                    DynamicObject[] dylist = (from p in cvtResult.TargetDataEntities select p.DataEntity).ToArray();
                                    //修改应收单里面数据
                                    for (int K = 0; K < dylist.Length; K++)
                                    {
                                        //付款原因
                                        dylist[K]["F_YBG_Remarks"] = "供应商付款";
                                        //明细信息
                                        DynamicObjectCollection RECEIVEBILLENTRYList = dylist[K]["FPAYAPPLYENTRY"] as DynamicObjectCollection;
                                        foreach (var Entry in RECEIVEBILLENTRYList)
                                        {
                                            //结算方式
                                            BaseDataField FSETTLETYPEID = destmeta.BusinessInfo.GetField("FSETTLETYPEID") as BaseDataField;
                                            Entry["FSETTLETYPEID_Id"] = 4;
                                            Entry["FSETTLETYPEID"]    = vService.LoadSingle(Context, 4, FSETTLETYPEID.RefFormDynamicObjectType);
                                        }
                                    }
                                    //保存
                                    ISaveService     saveService = Kingdee.BOS.App.ServiceHelper.GetService <ISaveService>();
                                    IOperationResult saveresult  = saveService.Save(Context, destmeta.BusinessInfo, dylist, option);
                                    bool             reult       = CheckResult(saveresult, out string mssg);
                                    if (!reult)
                                    {
                                        throw new Exception("收款款单审核成功,生成付款申请单失败:");
                                    }
                                    else
                                    {
                                        //纪录核销的纪录
                                        OperateResultCollection operateResults = saveresult.OperateResult;
                                        string fnmber = operateResults[0].Number;
                                        string fid    = operateResults[0].PKValue.ToString();
                                    }
                                }
                            }
                            else
                            {
                                throw new KDException("", "应付单不存在或者未审核,下推付款申请单失败");
                            }
                            #endregion
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new KDException("", "应付单下推付款申请单失败:" + ex.ToString());
            }
        }
Пример #13
0
        public override void OnAfterFieldMapping(AfterFieldMappingEventArgs e)
        {
            //base.OnAfterFieldMapping(e);
            double payplanamount = 0;

            ExtendedDataEntity[] entityArray  = e.TargetExtendDataEntitySet.FindByEntityKey("FBillHead");
            ExtendedDataEntity[] entityArray2 = e.TargetExtendDataEntitySet.FindByEntityKey("FSaleOrderEntry");
            ExtendedDataEntity[] entityArray3 = e.TargetExtendDataEntitySet.FindByEntityKey("FSaleOrderFinance");
            foreach (ExtendedDataEntity entity in entityArray2)
            {
                Convert.ToInt64(entityArray[entity.DataEntityIndex].DataEntity["SaleOrgId_Id"]);
                object obj1      = entity.DataEntity["SrcType"];
                object srcBillNo = entity.DataEntity["SrcBillNo"];

                /*long num = (from p in this.custList
                 *          where p.OrderBillNo == Convert.ToString(srcBillNo)
                 *          select p.CustId).FirstOrDefault<long>();*/
                long          num   = 137293;
                BaseDataField field = e.TargetBusinessInfo.GetField("FCustId") as BaseDataField;
                FieldUtils.SetBaseDataFieldValue(base.Context, field, entityArray[entity.DataEntityIndex].DataEntity, num);
                DynamicObject obj2   = entityArray[entity.DataEntityIndex].DataEntity["CustId"] as DynamicObject;
                long          num2   = Convert.ToInt64(obj2["SETTLETYPEID_Id"]);
                BaseDataField field2 = e.TargetBusinessInfo.GetField("FSettleModeId") as BaseDataField;
                FieldUtils.SetBaseDataFieldValue(base.Context, field2, entityArray3[entity.DataEntityIndex].DataEntity, num2);
                long          num3   = Convert.ToInt64(obj2["RECCONDITIONID_Id"]);
                BaseDataField field3 = e.TargetBusinessInfo.GetField("FRecConditionId") as BaseDataField;
                FieldUtils.SetBaseDataFieldValue(base.Context, field3, entityArray3[entity.DataEntityIndex].DataEntity, num3);
                long          num4 = (obj2 == null) ? 0 : Convert.ToInt64(obj2["Id"]);
                DynamicObject obj3 = null;
                payplanamount = payplanamount + (Convert.ToDouble(entity.DataEntity["BaseUnitQty"]) * Convert.ToDouble(entity.DataEntity["TaxPrice"]));

                if (num4 > 0L)
                {
                    DynamicObjectCollection source = obj2["BD_CUSTCONTACT"] as DynamicObjectCollection;
                    for (int i = source.Count <DynamicObject>() - 1; i >= 0; i--)
                    {
                        if (Convert.ToBoolean(source[i]["IsUsed"]))
                        {
                            obj3 = source[i];
                            if (Convert.ToBoolean(source[i]["IsDefaultConsignee"]))
                            {
                                break;
                            }
                        }
                    }
                }
                long          num6   = (obj3 == null) ? 0L : Convert.ToInt64(obj3["Id"]);
                BaseDataField field4 = e.TargetBusinessInfo.GetField("FHEADLOCID") as BaseDataField;
                FieldUtils.SetBaseDataFieldValue(base.Context, field4, entityArray[entity.DataEntityIndex].DataEntity, num6);
                DynamicObject obj4 = entityArray[entity.DataEntityIndex].DataEntity["HeadLocId"] as DynamicObject;
                if (obj4 != null)
                {
                    entityArray[entity.DataEntityIndex].DataEntity["ReceiveAddress"] = obj4["ADDRESS"];
                }
            }
            /*复制模板,增加付款计划*/
            if (payplanamount > 0L)
            {
                FormMetadata  SAL_SaleOrderForm = AppServiceContext.MetadataService.Load(this.Context, "SAL_SaleOrder") as FormMetadata;
                DynamicObject templateBillObj   = AppServiceContext.ViewService.LoadWithCache(this.Context, new object[] { 130701 }, SAL_SaleOrderForm.BusinessInfo.GetDynamicObjectType(), true, null)
                                                  .FirstOrDefault();
                DynamicObjectCollection orderplan = entityArray[0].DataEntity["SaleOrderPlan"] as DynamicObjectCollection;

                //orderplan[0]["RecAdvanceRate"] = 59;
                //orderplan[0]["RecAdvanceAmount"] = 69;
            }
            this.SetDefaultExchange(e);
            this.SetRelativeCodeByMaterialId(e);
        }
Пример #14
0
 public static DynamicObject Append(this DynamicObject dataObject, BaseDataField field, string keyName, Func <IEnumerable <DynamicObject>, DynamicObject[]> loader, Func <DynamicObject, object> selector = null)
 {
     return(new DynamicObject[] { dataObject }.Append(field, keyName, loader, selector).FirstOrDefault());
 }
Пример #15
0
        }//end method

        public static string BDName(this DynamicObject dataObject, BaseDataField field)
        {
            return(FieldRefProperty <string>(dataObject, field, field.NameProperty.Key));
        }//end method
Пример #16
0
 public DataFieldWrapper(BaseDataField dataField)
 {
     _dataField = dataField;
 }
Пример #17
0
        }//end method

        public static DynamicObject[] Append(this IEnumerable <DynamicObject> dataObject, BaseDataField field, string keyName, Func <IEnumerable <DynamicObject>, DynamicObject[]> loader, Func <DynamicObject, object> selector = null)
        {
            var propertyName = field.RefProperties.Where(p => p.Key.EqualsIgnoreCase(keyName)).FirstOrDefault().PropertyName;

            return(Append(dataObject, propertyName, loader, selector));
        }//end method
Пример #18
0
        public static DynamicObject[] Mend(this IEnumerable <DynamicObject> dataObject, BaseDataField field, Func <DynamicObject, object> selfSelector, Func <DynamicObject, object> loadSelector, Func <object[], DynamicObject[]> loader)
        {
            var traits = dataObject.Select(data => selfSelector(data)).Where(item => item != null).Distinct().ToArray();
            var bag    = traits.Any() ? loader(traits) : new DynamicObject[0];

            return(dataObject.Join(bag,
                                   left => selfSelector(left),
                                   right => loadSelector(right),
                                   (left, right) =>
            {
                left[field.PropertyName] = right;
                return left;
            }).ToArray());
        }
Пример #19
0
        public override void CreateNewData(BizDataEventArgs e)
        {
            base.CreateNewData(e);

            DynamicObjectCollection coll      = GetObjects(this.Context, initSql);
            DynamicObjectType       dtType    = this.View.BusinessInfo.GetDynamicObjectType();
            EntryEntity             entity    = (EntryEntity)this.View.BusinessInfo.GetEntity("F_HS_Entity");
            DynamicObject           objData   = new DynamicObject(dtType);
            DynamicObject           entityObj = null;

            if (coll != null && coll.Count > 0)
            {
                int seq = 1;
                foreach (var item in coll)
                {
                    if (item != null)
                    {
                        if (entity != null)
                        {
                            entityObj = new DynamicObject(entity.DynamicObjectType);
                            entity.DynamicProperty.GetValue <DynamicObjectCollection>(objData).Add(entityObj);

                            entityObj["seq"] = seq;

                            //entityObj["F_HS_Customer_Id"] = Convert.ToInt32(SQLUtils.GetFieldValue(item, "F_HS_B2CCUSTID"));
                            //this.View.Model.SetValue("F_HS_Customer", SQLUtils.GetFieldValue(item, "F_HS_B2CCUSTID"),seq);
                            //this.View.Model.DataObject["F_HS_Customer_Id"] = SQLUtils.GetFieldValue(item, "F_HS_B2CCUSTID");
                            BaseDataField orgId  = this.View.BillBusinessInfo.GetField("F_HS_UseOrgId") as BaseDataField;
                            DynamicObject orgObj = Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.LoadSingle(this.Context, SQLUtils.GetFieldValue(item, "F_HS_UseOrgId"), orgId.RefFormDynamicObjectType);
                            entityObj["F_HS_UseOrgId"] = orgObj;

                            BaseDataField cust  = this.View.BillBusinessInfo.GetField("F_HS_Customer") as BaseDataField;
                            DynamicObject bdObj = Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.LoadSingle(this.Context, SQLUtils.GetFieldValue(item, "F_HS_B2CCUSTID"), cust.RefFormDynamicObjectType);
                            entityObj["F_HS_Customer"] = bdObj;

                            entityObj["F_HS_ChangeAmount"]  = SQLUtils.GetFieldValue(item, "changedAmount");
                            entityObj["F_HS_ChangedType"]   = GetChangeTypeDesc(SQLUtils.GetFieldValue(item, "changedType"));
                            entityObj["F_HS_TradeType"]     = SQLUtils.GetFieldValue(item, "F_HS_TradeType");
                            entityObj["F_HS_ChangedCause"]  = GetChangeCauseDesc(SQLUtils.GetFieldValue(item, "changedCause"));
                            entityObj["F_HS_BalanceAmount"] = SQLUtils.GetFieldValue(item, "balanceAmount");
                            entityObj["F_HS_RateToUSA"]     = SQLUtils.GetFieldValue(item, "F_HS_RateToUSA");

                            entityObj["F_HS_SettleCurrId_Id"] = SQLUtils.GetFieldValue(item, "FSETTLECURRID");
                            //this.View.Model.SetValue("F_HS_SettleCurrId", SQLUtils.GetFieldValue(item, "FSETTLECURRID"), seq);
                            //BaseDataField curr = this.View.BusinessInfo.GetField("F_HS_SettleCurrId") as BaseDataField;
                            //curr.RefIDDynamicProperty.SetValue(this.View.Model.DataObject, SQLUtils.GetFieldValue(item, "FSETTLECURRID"));
                            //this.View.Model.DataObject["F_HS_SettleCurrId_Id"] = SQLUtils.GetFieldValue(item, "FSETTLECURRID");
                            //this.Model.SetItemValueByID("F_HS_SettleCurrId", 7, seq);
                            //this.View.UpdateView("F_HS_SettleCurrId",seq);

                            BaseDataField curr  = this.View.BillBusinessInfo.GetField("F_HS_SettleCurrId") as BaseDataField;
                            DynamicObject cdObj = Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.LoadSingle(this.Context, SQLUtils.GetFieldValue(item, "FSETTLECURRID"), curr.RefFormDynamicObjectType);
                            entityObj["F_HS_SettleCurrId"] = cdObj;

                            //BaseDataField fldCustomer = formMetadata.BusinessInfo.GetField("FMaterialId") as BaseDataField;
                            //var materialObj = Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.LoadSingle(this.Context, materialId, fldMaterial.RefFormDynamicObjectType);
                            //fldMaterial.RefIDDynamicProperty.SetValue(dynamicRow, materialId);
                            //fldMaterial.DynamicProperty.SetValue(dynamicRow, materialObj);


                            entityObj["F_HS_ChangedAmountUSD"] = SQLUtils.GetFieldValue(item, "changedAmountUSA");
                            entityObj["F_HS_BalanceAmountUSD"] = SQLUtils.GetFieldValue(item, "balanceAmountUSA");
                            entityObj["F_HS_CNYBalance"]       = SQLUtils.GetFieldValue(item, "F_HS_CNYBalance");
                            entityObj["F_HS_UpdateTime"]       = SQLUtils.GetFieldValue(item, "updateTime");


                            BaseDataField user  = this.View.BillBusinessInfo.GetField("F_HS_UpdateUser") as BaseDataField;
                            DynamicObject udObj = Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.LoadSingle(this.Context, SQLUtils.GetFieldValue(item, "updateUser"), user.RefFormDynamicObjectType);
                            entityObj["F_HS_UpdateUser"] = udObj;

                            entityObj["F_HS_BillNo"]      = SQLUtils.GetFieldValue(item, "FBillNo");
                            entityObj["F_HS_EntryId"]     = SQLUtils.GetFieldValue(item, "fentryID");
                            entityObj["F_HS_NeedFreezed"] = SQLUtils.GetFieldValue(item, "needfreezed") == "1" ? true : false;
                            entityObj["F_HS_Remark"]      = SQLUtils.GetFieldValue(item, "remark");
                            seq++;
                        }
                    }
                }

                e.BizDataObject = objData;
            }
        }