https://www.uniconta.com/developers-unipedia-global/develop-a-pageeventbase-plugin/
Installing a PageEventsBase plugin Similarly to other plugins, put the .dll file into the C:\Uniconta\PluginPath folder. Go to Tools-> Menus-> User Plugin, then add UserPlugin, specify the name of the plugin, select control name on which plugin will work, select PageEventBasePlugin by clicking on ‘+’ button if it is a partner plugin, otherwise just type in the name of the .dll file. Specify the class name inheriting PageEventBase class. Lastly, choose type of plugin to Event
Or as a Event plugin script:
Menus > User-Plugin > Plugin-Type Event > Edit Script
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Reflection; using System.Text; using Uniconta.API.Project; using Uniconta.API.System; using Uniconta.ClientTools.DataModel; using Uniconta.Common; using Uniconta.DataModel; namespace Uniconta.API.Plugin { public class CustomPageEvents : PageEventsBase { public CustomPageEvents () : base () { } public override void Init (object page, CrudAPI api, UnicontaBaseEntity master) { base.Init (page, api, master); } public void Message (string message, string title) { var fn = this.GetType ().GetMethod ("ShowMessageBox"); if (fn != null) fn.Invoke (this, new object[] { message, title }); } public void ShowOrderConfirmation (DebtorOrderClient dbOrder, CompanyLayoutType doctype) { var assembly = Assembly.Load ("UnicontaPages"); if (assembly == null) Message ("Assembly == null", "Error"); var DebtorOrders = assembly.GetType ("UnicontaClient.Pages.DebtorOrders"); if (DebtorOrders == null) Message ("DebtorOrders == null", "Error"); var debtorOrdersPage = Activator.CreateInstance (DebtorOrders, new object[] { api }); if (debtorOrdersPage == null) Message ("page == null", "Error"); var fn = debtorOrdersPage.GetType ().GetMethod ("OrderConfirmation", BindingFlags.NonPublic | BindingFlags.Instance); if (fn == null) Message ("OrderConfirmation == null", "Error"); if (fn != null) { fn.Invoke (debtorOrdersPage, new object[] { dbOrder, doctype }); } } public override ErrorCodes OnUpdate (UnicontaBaseEntity record, UnicontaBaseEntity original) { if (record is DebtorOrderClient && original is DebtorOrderClient) { var c = (DebtorOrderClient) record; var o = (DebtorOrderClient) original; if (c.DeliveryDate != o.DeliveryDate) { ShowOrderConfirmation (c, CompanyLayoutType.OrderConfirmation); } } return 0; } // public override ErrorCodes Validate (UnicontaBaseEntity record) { return 0; } // public override ErrorCodes OnInsert (UnicontaBaseEntity record) { return 0; } // public override ErrorCodes OnDelete (UnicontaBaseEntity record) { return 0; } // public override void Record_PropertyChanged (object sender, PropertyChangedEventArgs e) { } // public override bool OnMenuItemClicked (string ActionType, object sender) { return true; } // public override void PageClosing () { } // public override string CheckMandatoryFields (UnicontaBaseEntity record) { return null; } // public override void SetUserParm (string UserParm) { } // public override IEnumerable<PropValuePair> SearchFilter (IEnumerable<PropValuePair> appliedFilters) { return appliedFilters; } } }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Reflection; using Uniconta.API.System; using Uniconta.Common; using Uniconta.DataModel; using Uniconta.ClientTools.DataModel; using Uniconta.ClientTools.Page; namespace Uniconta.API.Plugin { public class NumberSerieSetter : PageEventsBase { public NumberSerieSetter() : base() {} public override void Init (object page, CrudAPI api, UnicontaBaseEntity master) { base.Init (page, api, master); //this.Message("Plugin: initialized " + master.GetType().FullName, "MyPlugin"); SetCode((page as FormBasePage).ModifiedRow); } public void Message (string message, string title) { var fn = this.GetType().GetMethod("ShowMessageBox"); if (fn != null) fn.Invoke (this, new object[] { message, title }); } public void SetCode(UnicontaBaseEntity record) { if (record is WorkInstallationClient) { var c = (WorkInstallationClient)record; if (!string.IsNullOrWhiteSpace(c.Code)) return; var numberSerieAPI = new NumberSerieAPI(this.api); var numberSerie = ClientHelper.GetRefClient<NumberSerieClient>(this.api.CompanyId, typeof(NumberSerie), "ADRESSEN"); var newNumber = numberSerieAPI.GetNewNumber("ADRESSEN"); c.Code = numberSerie.Prefix + newNumber.Result.ToString(); } } public override ErrorCodes OnInsert(UnicontaBaseEntity record) { return 0; } public override ErrorCodes OnUpdate(UnicontaBaseEntity record, UnicontaBaseEntity original) { return 0; } public override ErrorCodes OnDelete(UnicontaBaseEntity record) { return 0; } public override ErrorCodes Validate(UnicontaBaseEntity record) { return 0; } public override void Record_PropertyChanged(object sender, PropertyChangedEventArgs e) { } public override bool OnMenuItemClicked(string ActionType, object sender) { return true; } public override void PageClosing() { } public override string CheckMandatoryFields(UnicontaBaseEntity record) { return null; } public override void SetUserParm(string UserParm) {} public override IEnumerable<PropValuePair> SearchFilter(IEnumerable<PropValuePair> appliedFilters) { return appliedFilters; } } }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using Uniconta.API.System; using Uniconta.Common; using Uniconta.DataModel; using Uniconta.ClientTools.DataModel; namespace Uniconta.API.Plugin { public AfleveradresNummering : PageEventsBase { public AfleveradresNummering() : base() {} public override void Init(object page, CrudAPI api, UnicontaBaseEntity master) {} public override ErrorCodes Validate(UnicontaBaseEntity record) { return 0; } public override ErrorCodes OnInsert(UnicontaBaseEntity record) { var c = (WorkInstallationClient)record; var numberSerieAPI = new NumberSerieAPI(this.api); var MyNumber = numberSerieAPI.GetNewNumber("BATCH"); c.Number = MyNumber.Result.ToString(); return 0; } public override ErrorCodes OnUpdate(UnicontaBaseEntity record, UnicontaBaseEntity original) { return 0; } public override ErrorCodes OnDelete(UnicontaBaseEntity record) { return 0; } public override void Record_PropertyChanged(object sender, PropertyChangedEventArgs e) { } public override bool OnMenuItemClicked(string ActionType, object sender) { return true; } public override void PageClosing() {// this.ShowMessageBox("Page Closing", "Information"); } public override string CheckMandatoryFields(UnicontaBaseEntity record) { return null; } public override void SetUserParm(string UserParm) {} public override IEnumerable<PropValuePair> SearchFilter(IEnumerable<PropValuePair> appliedFilters) { return appliedFilters; } } }
473500cookie-checkC# Uniconta Page Events