// Override init public override void Init(IslAppContext appContext) { // Call method base.Init(appContext); // Fix UI this.Text = infnvObjectNames.sObjSNEntry; this.Description = infnvObjectNames.sObjSNEntry; this.ShowFormStatusContextMenu = false; // Add button this.UICommands.Add(new slsUICommandBinding( new slsUICommand(infnvResources.sSaveAndClose, "SaveAndClose", slsUICommandType.Button))); this.UICommands["SaveAndClose"].OnCommandExecute += new slsUICommandBindingCommandExecuteEvent(OnCommandExecute); // Give Galaxy default values for grid FormHelper.SetDefaultGlxGridViewProps(grvSNList, new gxGridSettings() { Mode = gxGridMode.EmbededEditable, AllowGroup = false, ShowDetailButtons = false, UseEmbeddedNavigator = true, PlaceDeleteColumn = true, NewRowPosition = gxNewRowPosition.Top }, null, null); // Grid data bsSNList.DataSource = _entries; // Item name if (this.InArgs.NamedArgs.ContainsKey("Item")) ctrlItem.Text = "<size=12>" + this.InArgs.NamedArgs["Item"].ToString() + "</size>"; }
/// <summary> /// Executes the object's server operation /// </summary> /// <param name="appContext">AppContext</param> /// <param name="objName">Object name</param> /// <param name="operation">Operation name</param> /// <param name="args">Operation arguments</param> /// <returns> /// The execution result /// </returns> public static object ExecuteServerOperation(IslAppContext appContext, string objName, string operation, params object[] args) { IslObjectProxyActivator ProxyActivator = appContext.ServiceLocator.GetService<IslObjectProxyActivator>(); using (var obj = ProxyActivator.GetObjectProxy<IslOperations>(objName, false)) { return obj.ExecuteOperation(operation, args); } }
/// <summary> /// Executes the object's operation /// </summary> /// <param name="appContext">AppContext</param> /// <param name="objName">Object name</param> /// <param name="operation">Operation name</param> /// <param name="args">Operation arguments</param> /// <returns> /// The execution result /// </returns> public static object ExecuteOperation(IslAppContext appContext, string objName, string operation, params object[] args) { IslObjectActivator oActivator = appContext.ServiceLocator.GetService<IslObjectActivator>(); using (var obj = oActivator.CreateObject(objName)) { return obj.ExecuteOperation(operation, args); } }
// Hook event public void Init(IslAppContext appContext, IslsForm form) { switch (form.GetType().ToString()) { case "Glx.WUI.CO.CommercialEntry.gxPurchaseEntryF": _appContext = appContext; _form = form; (_form as gxPurchaseEntryF).Items.PreviewPropertyChanged += new EventHandler<slEventArgs<slPreviewPropChangedArgs>>(Items_PreviewPropertyChanged); break; default: break; } }
// Hook event public void Init(IslAppContext appContext, IslsForm form) { switch (form.GetType().ToString()) { case "Glx.WUI.CO.CommercialEntry.gxSalesEntryF": _form = form; _appContext = appContext; (_form as gxSalesEntryF).Items.PreviewPropertyChanged += Items_PreviewPropertyChanged; break; default: break; } }
// Add custom action to user menu public Dictionary<string, string> GetLinks(IslAppContext appContext, IslsForm form) { Dictionary<string, string> dc = null; switch (form.GetType().ToString()) { case "Glx.WUI.CO.CommercialEntry.gxSalesEntryF": case "Glx.WUI.CO.CommercialEntry.gxPurchaseEntryF": dc = new Dictionary<string, string>(); dc.Add(cmdSNEntry, infnvObjectNames.sObjSNEntry); dc.Add(cmdSNEntryExcel, infnvObjectNames.sObjSNEntry + " - " + infnvResources.sEntryExcel); break; case "Glx.WUI.CO.ItemEntry.gxItemEntryF": dc = new Dictionary<string, string>(); dc.Add(cmdSNEntry, infnvObjectNames.sObjSNEntry); dc.Add(cmdSNEntryComposite, infnvObjectNames.sObjSNEntry + " - " + infnvResources.sComposite); dc.Add(cmdSNEntryExcel, infnvObjectNames.sObjSNEntry + " - " + infnvResources.sEntryExcel); dc.Add(cmdSNEntryExcelComposite, infnvObjectNames.sObjSNEntry + " - " + infnvResources.sEntryExcelComposite); break; default: break; } return dc; }
public Dictionary<string, string> GetLinks(IslAppContext appContext, IslsForm form) { Dictionary<string, string> dc = null; return dc; }
public void ExecuteLink(IslAppContext appContext, IslsForm form, string command) { }
public void Create(IslAppContext appContext, IslsForm form) { }
public void SyncScreen(IslAppContext appContext, IslsForm form) { }
// Handle custom action execution public void ExecuteLink(IslAppContext appContext, IslsForm form, string command) { switch (form.GetType().ToString()) { case "Glx.WUI.CO.CommercialEntry.gxSalesEntryF": case "Glx.WUI.CO.CommercialEntry.gxPurchaseEntryF": if (command == cmdSNEntry) { // Get commercail entry lines collection current item var bsCenl = slsBaseF.GetDataSources(form)["bsItemLines"]; if (bsCenl.Current != null) { var cenlObj = (bsCenl.Current as slObjectView<gxCommercEntryLinesDataObject>).DataObjectItem; if (cenlObj != null) { // Prepare args var fArgs = new slsFormArgs(); fArgs.NamedArgs["Item"] = String.Format("{0} - {1}", cenlObj.ItemCode, cenlObj.ItemDescr); // Open form var fa = appContext.ServiceLocator.GetService<IslsFormActivator>(); using (var f = fa.CreateForm(infnvSys.GetRegName(infnvObjRegName.SNEntry), fArgs)) if (f.ShowDialog(form) == slsDialogResult.OK) { var entries = (f as infnvSNEntryF).Entries; foreach (var item in entries) AddSerialNumber(cenlObj, appContext, item); } } } } else if (command == cmdSNEntryExcel) { // Get commercail entry lines collection current item var bsCenl = slsBaseF.GetDataSources(form)["bsItemLines"]; if (bsCenl.Current != null) { var cenlObj = (bsCenl.Current as slObjectView<gxCommercEntryLinesDataObject>).DataObjectItem; if (cenlObj != null) { // Prepare args var fArgs = new slsFormArgs(); fArgs.NamedArgs["Item"] = String.Format("{0} - {1}", cenlObj.ItemCode, cenlObj.ItemDescr); // Select file var path = GetFilePath(); if (path !=String.Empty) { var list = PopulateFromXls(path); foreach(var sn in list) { AddSerialNumber(cenlObj, appContext, sn); } } } } } break; case "Glx.WUI.CO.ItemEntry.gxItemEntryF": if (command == cmdSNEntry || command == cmdSNEntryComposite) { // Get commercail entry lines collection current item var bsIenl = slsBaseF.GetDataSources(form)["bsItemLines"]; if (bsIenl.Current != null) { gxItemEntryLinesDataObject ienlObj = null; if (command == cmdSNEntry) ienlObj = (bsIenl.Current as slObjectView<gxItemEntryLinesDataObject>).DataObjectItem; if (command == cmdSNEntryComposite) { var col = (bsIenl.DataSource as slBindingCollectionView<gxItemEntryLinesDataObject>).Collection as gxItemEntryLinesCollection; ienlObj = col.Find(i => i.Linenum == -1); } if (ienlObj != null) { // Prepare args var fArgs = new slsFormArgs(); fArgs.NamedArgs["Item"] = String.Format("{0} - {1}", ienlObj.ItemCode, ienlObj.ItemDescr); // Open form var fa = appContext.ServiceLocator.GetService<IslsFormActivator>(); using (var f = fa.CreateForm(infnvSys.GetRegName(infnvObjRegName.SNEntry), fArgs)) if (f.ShowDialog(form) == slsDialogResult.OK) { var entries = (f as infnvSNEntryF).Entries; foreach (var item in entries) AddSerialNumber(ienlObj, appContext, item); } } } } else if (command == cmdSNEntryExcel || command == cmdSNEntryExcelComposite) { // Get commercail entry lines collection current item var bsIenl = slsBaseF.GetDataSources(form)["bsItemLines"]; if (bsIenl.Current != null) { gxItemEntryLinesDataObject ienlObj = null; //var ienlObj = (bsIenl.Current as slObjectView<gxItemEntryLinesDataObject>).DataObjectItem; if (command == cmdSNEntryExcel) ienlObj = (bsIenl.Current as slObjectView<gxItemEntryLinesDataObject>).DataObjectItem; if (command == cmdSNEntryExcelComposite) { var col = (bsIenl.DataSource as slBindingCollectionView<gxItemEntryLinesDataObject>).Collection as gxItemEntryLinesCollection; ienlObj = col.Find(i => i.Linenum == -1); } if (ienlObj != null) { // Prepare args var fArgs = new slsFormArgs(); fArgs.NamedArgs["Item"] = String.Format("{0} - {1}", ienlObj.ItemCode, ienlObj.ItemDescr); // Select file var path = GetFilePath(); if (path !=String.Empty) { var list = PopulateFromXls(path); foreach (var sn in list) { AddSerialNumber(ienlObj, appContext, sn); } } } } } break; default: break; } }
// Helper method private string GetSerialNumberID(string itemID, string srlnCode, IslAppContext appContext) { var oa = appContext.ServiceLocator.GetService<IslObjectActivator>(); using (var obj = oa.CreateObject(infnvSys.GetRegName(infnvObjRegName.AddIn))) return (string)obj.ExecuteOperation("GetSerialNumberID", itemID, srlnCode); }
// Helper method private void AddSerialNumber(gxItemEntryLinesDataObject ienlObj, IslAppContext appContext, string srlnCode) { // Check if given SN exists string srlnID = GetSerialNumberID(ienlObj.ItemID, srlnCode, appContext); // Prepare SNTradeLine object var srlnObj = ienlObj.SerialNumberLines.New(); srlnObj.TentID = ienlObj.TentID; srlnObj.ItemID = ienlObj.ItemID; srlnObj.IenlID = ienlObj.ID; srlnObj.IentID = ienlObj.IentID; srlnObj.AMeunID = ienlObj.AMeunID; srlnObj.AQty = 1; srlnObj.Linenum = ienlObj.SerialNumberLines.Count + 1; ienlObj.SerialNumberLines.Add(srlnObj); ienlObj.AQty = ienlObj.SerialNumberLines.DefaultView.Sum(i => i.AQty); if (String.IsNullOrEmpty(srlnID)) { // NEW Serial Number srlnObj.SNTracking = gxSNTradeLinesDataObject.SNTrackingEnum.Insert; srlnObj.EntrySNCode = srlnCode; srlnObj.EntrySNAlterCode = srlnCode; srlnObj.SNCode = srlnCode; // Create SN Collection var snCol = gxSerialNumberCollectionFactory.Create(appContext); var snObj = snCol.New(); snObj.Code = srlnCode; snObj.ItemID = ienlObj.ItemID; snObj.Active = 1; snObj.ActiveDate = DateTime.Now.Date; snCol.Add(snObj); // Copy new SN collection on SNTradeLines using (var ms = new MemoryStream()) { var bf = new BinaryFormatter(); bf.Serialize(ms, snCol.DataContext); ms.Position = 0; srlnObj.SNEntryCollection = ms.ToArray(); } } else { // EXISTING Serial Number srlnObj.SNTracking = gxSNTradeLinesDataObject.SNTrackingEnum.Select; srlnObj.SrlnID = srlnID; } }
// Constructor public infnvAddIn(IslAppContext appContext) : base(appContext) { }