#region "FormPlugin" public class FormPlugin : System.MarshalByRefObject, JiwaFinancials.Jiwa.JiwaApplication.IJiwaFormPlugin { public override object InitializeLifetimeService() { // returning null here will prevent the lease manager // from deleting the Object. return null; } public void SetupBeforeHandlers(JiwaFinancials.Jiwa.JiwaApplication.IJiwaForm JiwaForm, JiwaFinancials.Jiwa.JiwaApplication.Plugin.Plugin Plugin) { } public void Setup(JiwaFinancials.Jiwa.JiwaApplication.IJiwaForm JiwaForm, JiwaFinancials.Jiwa.JiwaApplication.Plugin.Plugin Plugin) { if (JiwaForm is JiwaFinancials.Jiwa.JiwaSalesUI.SalesOrder.SalesOrderEntryForm) { var salesOrderForm = (JiwaFinancials.Jiwa.JiwaSalesUI.SalesOrder.SalesOrderEntryForm)JiwaForm; var salesOrder = salesOrderForm.SalesOrder; var salesOrderFilter = new CustomFilters.SalesOrder(); salesOrderFilter.EnableBaseFindSQLQuery(salesOrderForm, salesOrder); } else if (JiwaForm is JiwaFinancials.Jiwa.JiwaPurchaseOrdersUI.MainForm) { var purchaseOrderForm = (JiwaFinancials.Jiwa.JiwaPurchaseOrdersUI.MainForm)JiwaForm; var purchaseOrder = purchaseOrderForm.PurchaseOrder; var purchaseOrderFilter = new CustomFilters.PurchaseOrder(); purchaseOrderFilter.EnableBaseFindSQLQuery(purchaseOrderForm, purchaseOrder); } } } public class CustomFilters { public class BaseCustomFilter { protected virtual Dictionary CustomFilterToCustomBaseFindSQLQuery { get; set;} public void EnableBaseFindSQLQuery( JiwaFinancials.Jiwa.JiwaApplication.Maintenance.UserInterface form, JiwaFinancials.Jiwa.JiwaApplication.BusinessLogic.Maintenance businessLogic ) { //Accesses the form's filter combo box and retrieves selected filter var selectedFilter = ((Infragistics.Win.UltraWinToolbars.TextBoxTool)form.UltraToolbarsManager1.Tools["ID_RecordFilter"]).Text; if (CustomFilterToCustomBaseFindSQLQuery.ContainsKey(selectedFilter)){ businessLogic.BaseFindSQLQuery = CustomFilterToCustomBaseFindSQLQuery[selectedFilter]; } } } public class SalesOrder : BaseCustomFilter { //for reference private string originalCustomBaseFindSQLQuery = "SELECT TOP 1 SO_Main.InvoiceID FROM SO_Main JOIN DB_Main ON DB_Main.DebtorID = SO_Main.DebtorID"; public SalesOrder(){ CustomFilterToCustomBaseFindSQLQuery = new Dictionary() { { "Missing or Past ETA", "SELECT TOP 1 SO_Main.InvoiceID, FurthestETAToSH FROM SO_Main JOIN DB_Main ON DB_Main.DebtorID = SO_Main.DebtorID JOIN v_SH_SO_Main_ETA on SO_Main.InvoiceID = v_SH_SO_Main_ETA.InvoiceID" } }; } } public class PurchaseOrder : BaseCustomFilter { private string originalCustomBaseFindSQLQuery = "SELECT TOP 1 PO_Main.OrderID FROM PO_Main"; public PurchaseOrder(){ CustomFilterToCustomBaseFindSQLQuery = new Dictionary() { { "Missing or Past ETA", "SELECT TOP 1 PO_Main.OrderID, FurthestETAToSH FROM PO_Main JOIN v_SH_PO_Main_ETA on PO_Main.OrderID = v_SH_PO_Main_ETA.OrderID" } }; } } } #endregion