Ejemplo n.º 1
0
		// 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;
			}

		}
Ejemplo n.º 14
0
		// Constructor
		public infnvAddIn(IslAppContext appContext) : base(appContext) { }