Beispiel #1
0
 protected void RaiseBeforeSave(ITextBuffer textBuffer)
 {
     if (_beforeSave != null)
     {
         var args = new BeforeSaveEventArgs(textBuffer);
         _beforeSave(this, args);
     }
 }
Beispiel #2
0
        public void OnBeforeSave(BeforeSaveEventArgs e)
        {
            var handler = BeforeSave;

            if (handler != null)
            {
                handler(this, e);
            }
        }
        void OnBeforeSave(object sender, BeforeSaveEventArgs e)
        {
            DataMap  map = e.DataMap;
            Type     t   = map.ObjectType;
            ISavable obj = e.DataObject;

            var audit = new SaveAudit
            {
                Action    = e.SaveType,
                TableName = e.DataMap.DataItem.SaveToTable
            };

            if (!string.IsNullOrEmpty(e.DataMap.DataItem.SchemaName))
            {
                audit.SchemaName = e.DataMap.DataItem.SchemaName;
            }

            if (e.SaveType == SaveType.Insert)
            {
                foreach (PropertyInfo pi in t.GetProperties())
                {
                    if ((pi.Name == "DataRowState") || (pi.Name == "OriginalValues"))
                    {
                        continue;
                    }

                    audit.Properties.Add(new SaveAuditProperty(pi.Name, null, pi.GetValue(obj, null)));
                }
            }
            else if (e.SaveType == SaveType.Update)
            {
                foreach (IDataMapField field in e.DataMap.KeyFields)
                {
                    audit.Keys.Add(new SaveAuditProperty(field.FieldName, field.Property.GetValue(obj, null), null));
                }

                foreach (var kv in obj.OriginalValues)
                {
                    PropertyInfo pi = t.GetProperty(kv.Key);
                    object       v  = pi.GetValue(obj, null);

                    if (((kv.Value != null) && (!kv.Value.Equals(v))) || ((kv.Value == null) && (v != null)))
                    {
                        audit.Properties.Add(new SaveAuditProperty(kv.Key, kv.Value, v));
                    }
                }
            }

            if ((AuditHandler != null) && (audit.Properties.Count > 0))
            {
                AuditHandler(audit);
            }
        }
Beispiel #4
0
        public override void BeforeSave(BeforeSaveEventArgs e)
        {
            base.BeforeSave(e);
            int count = this.Model.GetEntryRowCount("FEntity");

            for (int i = 0; i < count; i++)
            {
                if (Convert.ToString(((DynamicObject)this.Model.GetValue("FMATERIALID", i))["Number"]).Equals("07040000") || Convert.ToString(((DynamicObject)this.Model.GetValue("FMATERIALID", i))["Number"]).Equals("07040004"))
                {
                    this.Model.SetItemValueByNumber("FSTOCKSTATUSID", "KCZT001", i);
                }
            }
        }
        private bool OnBeforeSave <T>(T objectToSave, out string message)
        {
            bool result = true;

            message = string.Empty;
            if (BeforeSave != null)
            {
                BeforeSaveEventArgs args = new BeforeSaveEventArgs
                {
                    ObjectToSave = objectToSave
                };
                result = BeforeSave(this, args, out message);
            }
            return(result);
        }
Beispiel #6
0
        public override void BeforeSave(BeforeSaveEventArgs e)
        {
            base.BeforeSave(e);
            //获取物料分组是否是特定编码规则分组
            var groupData = this.Model.DataObject["MaterialGroup"];

            if (groupData != null && groupData is DynamicObject)
            {
                const string specifiedGroupNum = "SpeCodeRule";
                var          groupNum          = ((DynamicObject)groupData)["Number"];
                if (groupNum != null && groupNum.ToString().Equals(specifiedGroupNum))
                {
                     
                    //满足特定分组使用自定义编码规则生成单据编号
                    GenerateBillNoById();                
                }
            }
        }
 public override void BeforeSave(BeforeSaveEventArgs e)
 {
     base.BeforeSave(e);
     if (base.View.Model.GetValue("FEMail") != null)
     {
         string str = base.View.Model.GetValue("FEMail").ToString().Trim();
         if ((str.Length > 0) && !StringHelper.IsEmail(str))
         {
             base.View.ShowMessage(ResManager.LoadKDString("电子邮箱地址不合法!", "006021030001076", SubSystemType.CRM, new object[0]), MessageBoxType.Notice);
             e.Cancel = true;
             return;
         }
     }
     if (!this.is_bumped && !Convert.ToBoolean(this.Model.GetValue("F_PEJK_IsMobile")))
     {
         this.bump(e);
     }
     else
     {
         this.is_bumped = !this.is_bumped;
     }
 }
        public void bump(BeforeSaveEventArgs e)
        {
            Action <FormResult>       action     = null;
            IKEEPERBumpAnalysisCommon bumpCommon = KEEPERBumpAnalysisFactory.CreateBumpAnalysis(base.Context, base.View.Model, this.Model.BusinessInfo.GetForm().Id);

            if (bumpCommon.IsShowResult)
            {
                BillShowParameter param = new BillShowParameter
                {
                    FormId              = "CRM_BumpAnalysisShow",
                    OpenStyle           = { ShowType = ShowType.Modal },
                    PageId              = SequentialGuid.NewGuid().ToString(),
                    CustomComplexParams = { {
                                                "ResultEntrity",
                                                bumpCommon.ResultEntrity
                                            } }
                };
                e.Cancel = true;
                if (action == null)
                {
                    action = delegate(FormResult result) {
                        if (result.ReturnData != null)
                        {
                            if (((bool)result.ReturnData) && !bumpCommon.IsAllowSave)
                            {
                                this.View.ShowMessage(ResManager.LoadKDString("撞单后单据不允许保存", "006021030001299", SubSystemType.CRM, new object[0]), MessageBoxType.Notice);
                            }
                            else if (((bool)result.ReturnData) && bumpCommon.IsAllowSave)
                            {
                                this.is_bumped = true;
                                this.View.InvokeFormOperation(FormOperationEnum.Save);
                            }
                        }
                    };
                }
                base.View.ShowForm(param, action);
            }
        }
 protected virtual void OnBeforeSaveChanges(BeforeSaveEventArgs args) => BeforeSaveChanges?.Invoke(this, args);
Beispiel #10
0
 /// <summary>
 /// Lança o evento OnBeforeSave()
 /// </summary>
 /// <param name="args">argumentos do evento</param>
 /// <param name="sender">Objeto que chamou o evento</param>
 protected void RaiseBeforeSave(IGeraArquivo sender, BeforeSaveEventArgs args)
 {
     if (OnBeforeSave != null)
         OnBeforeSave(sender, args);
 }
Beispiel #11
0
 public override void BeforeSave(BeforeSaveEventArgs e)
 {
     base.BeforeSave(e);
     this.Model.ClearNoDataRow();
 }
Beispiel #12
0
 /// <summary>
 /// 保存前调用此事件:可以通过此事件,观察单据数据包中的字段值
 /// </summary>
 /// <param name="e"></param>
 public override void BeforeSave(BeforeSaveEventArgs e)
 {
     base.BeforeSave(e);
 }
        //根据组织确定其是否是分公司销售,保存前根据物料判断 并且新增行计算箱套数量添加到分录中
        public override void BeforeSave(BeforeSaveEventArgs e)
        {
            base.BeforeSave(e);

            //1.获取单据头销售组织
            DynamicObject saleOrg = this.Model.GetValue("FSALEORGID") as DynamicObject;
            //2.获取单据头客户
            DynamicObject customer = this.Model.GetValue("FCUSTOMERID") as DynamicObject;

            //4.定义泡沫箱,塑料箱总数
            decimal slx = 0;
            decimal pmx = 0;

            //客户和销售组织不为空
            if (saleOrg != null && customer != null)
            {
                long useOrgId   = Convert.ToInt64(saleOrg["Id"]);
                long customerId = Convert.ToInt64(customer["Id"]);
                //3.通过sql查询该组织下对应所有子客户
                string sql = string.Format(@"select t1.FcustId 
                                           from t_bd_customer t1
                                           where t1.FPRIMARYGROUP=105322  and FUSEORGID = {0}", useOrgId);
                DynamicObjectCollection allCusto = DBUtils.ExecuteDynamicObject(base.Context, sql);
                foreach (DynamicObject custo in allCusto)
                {
                    //4.如果是子客户,则需要获取分录计算
                    long custoId = Convert.ToInt64(custo["FCUSTID"]);
                    if (custoId == customerId)
                    {
                        DynamicObject           billObj = this.Model.DataObject;
                        DynamicObjectCollection entrys  = billObj["SAL_OUTSTOCKENTRY"] as DynamicObjectCollection;
                        for (int i = 0; i < entrys.Count; i++)
                        {
                            //获取每一个分录
                            DynamicObject entry = entrys[i] as DynamicObject;
                            //塑料箱数量
                            decimal slxAmount = Convert.ToDecimal(entry["FSLXQTY"]);
                            if (slxAmount != 0)
                            {
                                slx = slx + slxAmount;
                            }
                            //泡沫箱数量
                            decimal pmxAmount = Convert.ToDecimal(entry["FPMXQTY"]);
                            if (pmxAmount != 0)
                            {
                                pmx = pmx + pmxAmount;
                            }
                        }
                        //this.View.Model.CreateNewEntryRow("FEntity");//新增
                        //根据组织查询对应 箱套
                        if (slx != 0)
                        {
                            string sql2   = string.Format(@"select FMATERIALID from t_bd_material where fnumber='07040000' and fuseorgid={0}", useOrgId);
                            long   result = DBUtils.ExecuteScalar <long>(base.Context, sql2, -1, null);
                            if (result != 0 && result != -1)
                            {
                                IMetaDataService metaService = ServiceHelper.GetService <IMetaDataService>();                 //元数据服务
                                IViewService     view        = ServiceHelper.GetService <IViewService>();                     //界面服务
                                FormMetadata     Meta        = metaService.Load(base.Context, "BD_MATERIAL") as FormMetadata; //获取基础资料元数据
                                DynamicObject    BasicObject = view.LoadSingle(base.Context, result, Meta.BusinessInfo.GetDynamicObjectType());
                                // 填写字段值
                                DynamicObjectCollection materialStock = BasicObject["MaterialStock"] as DynamicObjectCollection;
                                DynamicObjectCollection materialBase  = BasicObject["MaterialBase"] as DynamicObjectCollection;
                                foreach (DynamicObject base1 in materialStock)
                                {
                                    long          materialId = Convert.ToInt64(BasicObject["Id"]);
                                    DynamicObject unit       = base1["StoreUnitID"] as DynamicObject;
                                    long          unitId     = Convert.ToInt64(unit["Id"]);
                                    this.Model.BatchCreateNewEntryRow("FEntity", 1);
                                    //之前一行
                                    DynamicObject before = entrys[entrys.Count - 2] as DynamicObject;
                                    //新增分录行
                                    DynamicObject end     = entrys[entrys.Count - 1] as DynamicObject;
                                    DynamicObject stock   = before["StockID"] as DynamicObject;
                                    long          stockID = Convert.ToInt64(stock["Id"]);

                                    end["MaterialID"]    = BasicObject;
                                    end["MaterialID_Id"] = materialId;
                                    end["UnitID"]        = unit;
                                    end["UnitID_Id"]     = unitId;
                                    end["RealQty"]       = slx;
                                    end["StockID"]       = stock;
                                    end["StockID_Id"]    = stockID;
                                    end["BaseUnitQty"]   = slx;

                                    //this.Model.SetValue("MaterialID", BasicObject, entrys.Count);
                                    //this.Model.SetValue("UnitID", unitId, entrys.Count);
                                    //this.Model.SetValue("RealQty", slx, entrys.Count);
                                }
                            }
                        }

                        if (pmx != 0)
                        {
                            string sql2   = string.Format(@"select FMATERIALID from t_bd_material where fnumber='07040004' and fuseorgid={0}", useOrgId);
                            long   result = DBUtils.ExecuteScalar <long>(base.Context, sql2, -1, null);
                            if (result != 0 && result != -1)
                            {
                                IMetaDataService metaService = ServiceHelper.GetService <IMetaDataService>();                 //元数据服务
                                IViewService     view        = ServiceHelper.GetService <IViewService>();                     //界面服务
                                FormMetadata     Meta        = metaService.Load(base.Context, "BD_MATERIAL") as FormMetadata; //获取基础资料元数据
                                DynamicObject    BasicObject = view.LoadSingle(base.Context, result, Meta.BusinessInfo.GetDynamicObjectType());
                                // 填写字段值
                                DynamicObjectCollection materialStock = BasicObject["MaterialStock"] as DynamicObjectCollection;
                                DynamicObjectCollection materialBase  = BasicObject["MaterialBase"] as DynamicObjectCollection;
                                foreach (DynamicObject base1 in materialStock)
                                {
                                    long          materialId = Convert.ToInt64(BasicObject["Id"]);
                                    DynamicObject unit       = base1["StoreUnitID"] as DynamicObject;
                                    long          unitId     = Convert.ToInt64(unit["Id"]);
                                    this.Model.BatchCreateNewEntryRow("FEntity", 1);
                                    //之前一行
                                    DynamicObject before = entrys[entrys.Count - 2] as DynamicObject;
                                    //新增分录行
                                    DynamicObject end     = entrys[entrys.Count - 1] as DynamicObject;
                                    DynamicObject stock   = before["StockID"] as DynamicObject;
                                    long          stockID = Convert.ToInt64(stock["Id"]);

                                    end["MaterialID"]    = BasicObject;
                                    end["MaterialID_Id"] = materialId;
                                    end["UnitID"]        = unit;
                                    end["UnitID_Id"]     = unitId;
                                    end["RealQty"]       = slx;
                                    end["StockID"]       = stock;
                                    end["StockID_Id"]    = stockID;
                                    end["BaseUnitQty"]   = slx;

                                    //this.Model.SetValue("MaterialID", BasicObject, entrys.Count);
                                    //this.Model.SetValue("UnitID", unitId, entrys.Count);
                                    //this.Model.SetValue("RealQty", slx, entrys.Count);
                                }
                            }
                        }
                    }
                }
                //新增分录行
            }
        }