protected void RaiseBeforeSave(ITextBuffer textBuffer) { if (_beforeSave != null) { var args = new BeforeSaveEventArgs(textBuffer); _beforeSave(this, args); } }
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); } }
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); }
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);
/// <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); }
public override void BeforeSave(BeforeSaveEventArgs e) { base.BeforeSave(e); this.Model.ClearNoDataRow(); }
/// <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); } } } } } //新增分录行 } }