public string DetermineConfig(IEdmFile5 Part, IEdmVault7 vault, EdmCmdData file) { string retval = "@"; EdmStrLst5 list = Part.GetConfigurations(); IEdmPos5 pos = list.GetHeadPosition(); Config_Select config = new Config_Select(vault, file); pos = list.GetHeadPosition(); for (int i = 0; i < list.Count; i++) { config.config_cbo.Items.Add(list.GetNext(pos)); } config.config_cbo.SelectedIndex = 0; config.ShowDialog(); if (config.DialogResult == System.Windows.Forms.DialogResult.Cancel) return ""; return retval; }
public Config_Select(IEdmVault7 vault, EdmCmdData file) { InitializeComponent(); this.SizeChanged += Config_Select_SizeChanged; Vault = vault; File = file; }
public void AddBill(IEdmVault7 vault, EdmCmdData file,string selected_config, out string config) { config = null; IEdmEnumeratorVariable5 var; IEdmFile7 part = (IEdmFile7)vault.GetObject(EdmObjectType.EdmObject_File, file.mlObjectID1); string file_ext = file.mbsStrData1.Substring(file.mbsStrData1.LastIndexOf('.') + 1).ToUpper(); if (file_ext != "SLDDRW" || UpdateItemRef(file, part, vault)) { var = part.GetEnumeratorVariable(); selected_config = DetermineConfig(part, vault, file, ""); config = selected_config; } #region Drawing Bill if (file_ext == "SLDDRW") { config = "DRAWING"; BW.DoWork += BW_DoWorkDrawing; object[] args = new object[2]; args[0] = part; args[1] = vault; BW.RunWorkerAsync(args); BWForm.ShowDialog(); ProcessBill(vault, file); BW.DoWork -= BW_DoWorkDrawing; } #endregion else { if (selected_config == "") { config = null; return; } BW.DoWork += BW_DoWorkAssy; object[] args = new object[3]; args[0] = part; args[1] = vault; args[2] = selected_config; try { BW.RunWorkerAsync(args); } catch { if (BW.IsBusy == true) { BW.CancelAsync(); while (!BW.CancellationPending) { BW.RunWorkerAsync(args); } } } BWForm.ShowDialog(); ProcessBill(vault, file); BW.DoWork -= BW_DoWorkAssy; } }
public bool HaveUpToDateItemRef(EdmCmdData file,IEdmFile5 Part, IEdmVault7 vault) { bool retval = false; long Local = Part.GetLocalVersionNo(file.mlObjectID3); int Server = Part.CurrentVersion; if (Local == Server) retval = true; return retval; }
public DialogResult GetItemInfo(IEdmVault7 vault, EdmCmdData file, string selected_config) { IEdmFile7 Part = (IEdmFile7)vault.GetObject(EdmObjectType.EdmObject_File, file.mlObjectID1); return GetItemInfo(file, vault, Part, selected_config); }
public DialogResult GetItemInfo(EdmCmdData file, IEdmVault7 vault, IEdmFile7 Part, string selected_config) { IEdmEnumeratorVariable5 var; object partnum_val; object desc_val = ""; object weight_val; object product_val; object class_val; object type_val; object planner_val; if (UpdateItemRef(file,Part, vault)) { try { var = Part.GetEnumeratorVariable(); decimal weight_fallback = 0; if (selected_config == "" || selected_config == null) selected_config = DetermineConfig(Part, vault, file, ""); if (selected_config != "") { var.GetVar("Number", selected_config, out partnum_val); if (partnum_val.ToString().Contains("201")) { DialogResult DR = MessageBox.Show("Part number identified as a frame. Do you want to use the Customer/Model instead of SolidWorks description custom property?", "Information", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (DR == DialogResult.Yes) { object cust_val; var.GetVar("Customer", selected_config, out cust_val); object model_val; var.GetVar("Model", selected_config, out model_val); desc_val = "FRAME " + cust_val.ToString() + " " + model_val.ToString(); } else var.GetVar("Description", selected_config, out desc_val); } else var.GetVar("Description", selected_config, out desc_val); var.GetVar("Brand", selected_config, out planner_val); var.GetVar("Product", selected_config, out product_val); var.GetVar("Class", selected_config, out class_val); var.GetVar("Type", selected_config, out type_val); //Weight is typically @ config var.GetVar("NetWeight", selected_config, out weight_val); if (weight_val == null) var.GetVar("NetWeight", selected_config, out weight_val); if (weight_val != null) decimal.TryParse(weight_val.ToString(), out weight_fallback); if (product_val == null) product_val = ""; if (class_val == null) class_val = ""; if (desc_val == null) desc_val = ""; if (partnum_val != null) { Epicor_Integration.Item_Master item = new Item_Master(partnum_val.ToString(), desc_val.ToString(), weight_fallback, product_val.ToString(), class_val.ToString(), type_val.ToString(), planner_val.ToString()); item.ShowDialog(); return item.DialogResult; } else { //Not necessary anymore //MessageBox.Show("Part number was a null value!\n\nEnsure that custom properties are completely filled out.", "Missing Properties!", MessageBoxButtons.OK, MessageBoxIcon.Hand); return DialogResult.Cancel; } } else return DialogResult.Cancel; } catch (Exception ex) { MessageBox.Show(ex.Message + "\nPlease check the datacard to ensure that all fields are filled in the file.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return DialogResult.Cancel; } } else return DialogResult.Cancel; }
public string DetermineConfig(IEdmFile5 Part, IEdmVault7 vault,EdmCmdData file, string SearchTerm) { string retval = "@"; EdmStrLst5 list = Part.GetConfigurations(); IEdmPos5 pos = list.GetHeadPosition(); Config_Select config; if (SearchTerm != "") config = new Config_Select(vault, Part, SearchTerm); else config = new Config_Select(vault, file); for (int i = 0; i < list.Count; i++) { string name = list.GetNext(pos); if (name != "@") { object number; object area; object mass; IEdmEnumeratorVariable5 var = Part.GetEnumeratorVariable(); var.GetVar("Number", name, out number); var.GetVar("NetWeight", name, out mass); var.GetVar("SurfaceArea", name, out area); if (number != null && mass != null && area != null) { config.config_cbo.Items.Add(name); } } } config.config_cbo.SelectedIndex = 0; config.ShowDialog(); retval = config.SelectedConfig; if (config.DialogResult == System.Windows.Forms.DialogResult.Cancel) return ""; return retval; }
public DialogResult CheckOutPart(IEdmVault7 vault, EdmCmdData file) { object partnum_val; IEdmFile5 part = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, file.mlObjectID1); IEdmEnumeratorVariable5 var = part.GetEnumeratorVariable(); string selected_config = DetermineConfig(part, vault, file, ""); var.GetVar("Number", selected_config, out partnum_val); if (selected_config != "") { CheckOut_Master CM = new CheckOut_Master(partnum_val.ToString()); CM.ShowDialog(); return CM.DialogResult; } else return DialogResult.Cancel; }
public bool CheckBill(List<string> BillNumbers, IEdmVault7 vault, EdmCmdData file) { for (int i = 0; i < BillNumbers.Count; i++) { bool exists = DataList.PartExists(BillNumbers[i]); if (!exists) { string Config; IEdmFile7 Part = FindPartinVault(vault, BillNumbers[i], out Config); if (Part != null) { try { GetItemInfo(file, vault, Part, ""); } catch (Exception ex) { MessageBox.Show(ex.Message + "\nAn error has occured with this item. Check its properties to ensure no errors and try again","Error!",MessageBoxButtons.OK,MessageBoxIcon.Error); } } else { DialogResult DR = MessageBox.Show("File not found in vault.\nDo you want to manually add this item?", "Part Not Found!", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (DR == DialogResult.Yes) { Item_Master IM = new Item_Master(); IM.ShowDialog(); } else return false; } } } return true; }
public void CalcMins(IEdmVault7 vault, EdmCmdData file, string selected_config) { IEdmEnumeratorVariable5 var; IEdmFile7 part = (IEdmFile7)vault.GetObject(EdmObjectType.EdmObject_File, file.mlObjectID1); string file_ext = file.mbsStrData1.Substring(file.mbsStrData1.LastIndexOf('.') + 1).ToUpper(); if (UpdateItemRef(file, part, vault)) { var = part.GetEnumeratorVariable(); selected_config = DetermineConfig(part, vault, file, ""); } if (selected_config != "") { BW.DoWork += BW_DoWorkCalc; object[] args = new object[3]; args[0] = part; args[1] = vault; args[2] = selected_config; BW.RunWorkerAsync(args); BWForm.ShowDialog(); foreach (BillItem item in Bill) { string Config = null; object val = null; IEdmFile7 Part = FindPartinVault(vault, item.ToString(), Config); EdmStrLst5 list = Part.GetConfigurations(); IEdmPos5 pos = list.GetHeadPosition(); Config = list.GetNext(pos); Config = list.GetNext(pos); if (Config == "PreviewCfg") Config = list.GetNext(pos); var = Part.GetEnumeratorVariable(); var.GetVar("HW Code", Config, out val); if (val != null) { if (val.ToString() == "HUCK") Mins[0] += double.Parse(item.Qty); if (val.ToString() == "TEC") Mins[1] += double.Parse(item.Qty); if (val.ToString() == "BOLT") Mins[2] += double.Parse(item.Qty); if (val.ToString() == "RIVET") Mins[3] += double.Parse(item.Qty); if (val.ToString() == "BAND") Mins[4] += double.Parse(item.Qty); if (val.ToString() == "HEAT") Mins[5] += double.Parse(item.Qty); if (val.ToString() == "SPRING") Mins[6] += double.Parse(item.Qty); if (val.ToString() == "ZHOOK") Mins[7] += double.Parse(item.Qty); } } BW.DoWork -= BW_DoWorkCalc; } }
public DialogResult AddRevision(IEdmVault7 vault, EdmCmdData file, string selected_config) { object partnum_val; object rev_val; DialogResult RetVal = DialogResult.Cancel; IEdmFile5 part = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, file.mlObjectID1); IEdmEnumeratorVariable5 var = part.GetEnumeratorVariable(); if (selected_config == null || selected_config == "") selected_config = DetermineConfig(part, vault, file, ""); if (selected_config != "") { var.GetVar("Number", selected_config, out partnum_val); var.GetVar("Revision", selected_config, out rev_val); if (rev_val == null) { MessageBox.Show("Item has not been completed and released. Please make certain that the item has a revision before attempting to add a revision in Epicor.", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } else { Revision_Master RM = new Revision_Master(partnum_val.ToString(), rev_val.ToString(), "", ""); RM.ShowDialog(); RetVal = RM.DialogResult; } } return RetVal; }
public DialogResult AddOOM(IEdmVault7 vault, EdmCmdData file, string selected_config) { object partnum_val; object rev_val; IEdmFile5 part = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, file.mlObjectID1); IEdmEnumeratorVariable5 var = part.GetEnumeratorVariable(); DialogResult RetVal = DialogResult.Cancel; if (selected_config == null || selected_config == "") selected_config = DetermineConfig(part, vault, file, ""); if (selected_config != "") { var.GetVar("Number", selected_config, out partnum_val); var.GetVar("Revision", selected_config, out rev_val); if (rev_val == null) { MessageBox.Show("Revision cannot be null. Check that custom properties are filled out in the selected configuration", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return DialogResult.Cancel; } Operations_Master OM = new Operations_Master(partnum_val.ToString(), rev_val.ToString()); OM.ShowDialog(); RetVal = OM.DialogResult; } return RetVal; }
public bool ValidSelection(EdmCmdData file) { string file_ext = file.mbsStrData1.Substring(file.mbsStrData1.LastIndexOf('.') + 1).ToUpper(); if (file_ext != "SLDASM" && file_ext != "SLDPRT") { MessageBox.Show("Must be run on SolidWorks Parts/Assemblies. Cannot continue!", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } else return true; }
/// <summary> /// Syncs local version of a file with the current version in the vault /// </summary> /// <param name="Part"></param> /// <param name="vault"></param> /// <returns></returns> public bool UpdateItemRef(EdmCmdData file,IEdmFile5 Part, IEdmVault7 vault) { bool retval = false; if (!HaveUpToDateItemRef(file,Part, vault)) { DialogResult dr = MessageBox.Show("This requires that you get the latest version of this file. Continue?", "Warning!", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dr == DialogResult.Yes) { Part.GetFileCopy(0, 0, 0, (int)EdmGetFlag.EdmGet_RefsVerLatest, ""); retval = true; } else retval = false; } else retval = true; return retval; }
//, List<string> BillNumbers, List<string> _BillQty, out List<string> BillQty) public void ProcessBill(IEdmVault7 vault, EdmCmdData file) { for (int i = 0; i < Bill.Count; i++) { if (DataList.PartExists(Bill[i].ToString())) { /*Part exists and we are good*/} else { if (PartExistsSW(vault, Bill[i].ToString())) { //Get it, Add it string Config = null; IEdmFile7 Part = FindPartinVault(vault, Bill[i].ToString(), out Config); DialogResult Dr = GetItemInfo(file, vault, Part, ""); if (Dr == DialogResult.Cancel) Bill.RemoveAt(i); } else { DialogResult Dr = MessageBox.Show(Bill[i].ToString() + " was not found in the vault/Epicor database. Do you want to manually add it?", "Missing Item!", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk); if (Dr == DialogResult.Yes) { //Blank item master Item_Master IM = new Item_Master(Bill[i].ToString(), "", 0); IM.ShowDialog(); if (IM.DialogResult == DialogResult.Cancel) Bill.RemoveAt(i); } else { //Remove from the bill to proceed Bill.RemoveAt(i); } } } } }