예제 #1
0
        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;
        }
예제 #2
0
        public Config_Select(IEdmVault7 vault, EdmCmdData file)
        {
            InitializeComponent();

            this.SizeChanged += Config_Select_SizeChanged;

            Vault = vault;

            File = file;
        }
예제 #3
0
        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;
            }
        }
예제 #4
0
        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;
        }
예제 #5
0
        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);
        }
예제 #6
0
        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;
        }
예제 #7
0
        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;
        }
예제 #8
0
        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;
        }
예제 #9
0
        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;
        }
예제 #10
0
        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;
            }
        }
예제 #11
0
        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;
        }
예제 #12
0
        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;
        }
예제 #13
0
        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;
        }
예제 #14
0
        /// <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;
        }
예제 #15
0
        //, 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);
                        }
                    }
                }
            }
        }