Beispiel #1
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;
                }
            }
        }
        public override void OnAfterFieldMapping(AfterFieldMappingEventArgs e)
        {
            base.OnAfterFieldMapping(e);

            //检查下游单据是收货通知或发货通知。
            if (!e.TargetBusinessInfo.GetForm().Id.EqualsIgnoreCase(PIWMSFormPrimaryKey.Instance.InNotice()) &&
                !e.TargetBusinessInfo.GetForm().Id.EqualsIgnoreCase(PIWMSFormPrimaryKey.Instance.OutNotice()))
            {
                return;
            }//end if

            var dataEntities   = e.TargetExtendDataEntitySet.FindByEntityKey("FBillHead");
            var sourceField    = e.TargetBusinessInfo.GetField("FPHMXSourceFormId").AsType <BaseDataField>();
            var targetField    = e.TargetBusinessInfo.GetField("FPHMXTargetFormId").AsType <BaseDataField>();
            var ruleField      = e.TargetBusinessInfo.GetField("FPHMXConvertRuleId").AsType <BaseDataField>();
            var convertService = ServiceHelper.GetService <IConvertService>();

            foreach (var data in dataEntities)
            {
                var sourceFormId = data.DataEntity.FieldProperty <DynamicObject>(sourceField).PkId <string>();
                var targetFormId = data.DataEntity.FieldProperty <DynamicObject>(targetField).PkId <string>();
                if (sourceFormId.IsNullOrEmptyOrWhiteSpace() || targetFormId.IsNullOrEmptyOrWhiteSpace())
                {
                    continue;
                }

                var convertRuleId = data.DataEntity.FieldProperty <DynamicObject>(ruleField).PkId <string>();
                if (!convertRuleId.IsNullOrEmptyOrWhiteSpace())
                {
                    if (convertService.GetConvertRule(this.Context, convertRuleId).Adaptive(metadata => metadata != null && metadata.Rule.Status))
                    {
                        continue;
                    }
                }//end if

                //取启用状态的默认规则。
                var rule = convertService.GetConvertRules(this.Context, sourceFormId, targetFormId)
                           .Where(item => item.Status)
                           .Where(item => item.IsDefault)
                           .FirstOrDefault();
                //如果取到则赋值。
                if (rule != null)
                {
                    ruleField.RefIDDynamicProperty.SetValue(data.DataEntity, rule.Id);
                } //end if
            }     //end foreach

            //将规则字段数据包补充完整。
            var viewService = ServiceHelper.GetService <IViewService>();

            dataEntities.Select(data => data.DataEntity)
            .ToArray()
            .Mend(ruleField, ids => viewService.LoadFromCache(this.Context, ids, ruleField.RefFormDynamicObjectType));
        } //end method
Beispiel #3
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);
                    }
                }
            }
        }
Beispiel #4
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);
        }
Beispiel #5
0
 public override void OnAfterFieldMapping(AfterFieldMappingEventArgs e)
 {
 }