Example #1
0
 public FORM_MAIN()
 {
     EVENTS.LOG_MESSAGE(1, "INITIALIZE");
     InitializeComponent();
     KEY_LOGGER_SETUP();
     DB_SETUP();
 }
        //Constructor
        public FORM_ADD_RECIPE(DataTable CHECKSHEET_TYPE_DATA_TABLE, RECIPE_DATA CURRENT_RECIPE_DATA = null) //Logged and documented.
        {
            InitializeComponent();
            EVENTS.LOG_MESSAGE(1, "INITIALIZE");

            SEQUENCE_DATATABLE.Columns.Add("Keys");
            //For each row in the datatable passed on initialization, add the data to the listbox.
            foreach (DataRow ROW in CHECKSHEET_TYPE_DATA_TABLE.Rows)
            {
                LISTBOX_CHECKSHEET_TYPE.Items.Add(ROW.ItemArray[0].ToString());
            }
            EVENTS.LOG_MESSAGE(3, "Checksheet types loaded.");

            //Format all the color assigners.
            GRP_BOX_COLUMN_ASSIGNERS.Enabled = false;
            EVENTS.LOG_MESSAGE(3, "Assigner controls disabled.");

            BTN_A.BackColor = ColorTranslator.FromHtml("#CC99C9");
            BTN_B.BackColor = ColorTranslator.FromHtml("#9EC1CF");
            BTN_C.BackColor = ColorTranslator.FromHtml("#9EE09E");
            BTN_D.BackColor = ColorTranslator.FromHtml("#FDFD97");
            BTN_E.BackColor = ColorTranslator.FromHtml("#FEB144");
            BTN_F.BackColor = ColorTranslator.FromHtml("#FF6663");
            BTN_G.BackColor = ColorTranslator.FromHtml("#CC99C9");

            BTN_H.BackColor         = ColorTranslator.FromHtml("#9EC1CF");
            BTN_I.BackColor         = ColorTranslator.FromHtml("#9EE09E");
            BTN_J.BackColor         = ColorTranslator.FromHtml("#FDFD97");
            BTN_K.BackColor         = ColorTranslator.FromHtml("#FEB144");
            BTN_L.BackColor         = ColorTranslator.FromHtml("#FF6663");
            BTN_M.BackColor         = ColorTranslator.FromHtml("#CC99C9");
            BTN_TIMESTAMP.BackColor = Color.Pink;
            EVENTS.LOG_MESSAGE(3, "Assigner colors set.");

            //If this form is being created as a edit recipe, rather than a new recipe...
            if (CURRENT_RECIPE_DATA != null)
            {
                EVENTS.LOG_MESSAGE(3, "Form call is an edit request.");
                LOAD_IN_EDIT_DATA(CURRENT_RECIPE_DATA);
                TXT_BOX_PART_NUM.Enabled        = false;
                LISTBOX_CHECKSHEET_TYPE.Enabled = false;
            }
            else
            {
                EVENTS.LOG_MESSAGE(3, "Form call is a new request.");
            }
            KEY_LOGGER_SETUP();
            FORM_MAIN.OK_TO_CLOSE_ADD_RECIPE_FORM += new EventHandler(CLOSE);
            EVENTS.LOG_MESSAGE(3, "Close EventHandler installed.");
            EVENTS.LOG_MESSAGE(1, "EXIT_SUCCESS");
        }
        /// <summary>
        /// This method checks that the part number entered in TXT_BOX_PART_NUM is a valid ASPC part number.
        /// </summary>
        /// <returns>
        /// <para>0: Part number is valid.</para>
        /// <para>1: Part number is not 6 characters long.</para>
        /// <para>2: A non-alpha character was detected in the first two characters.</para>
        /// <para>3: A non-numeric character was detected in the last four characters.</para>
        /// </returns>
        public static int VALIDATE_PART_NUMBER(ref string PART_NUMBER)
        {
            EVENTS.LOG_MESSAGE(1, "ENTER");
            string TEXT = PART_NUMBER.ToUpper(); //Capitalize the text.

            if (TEXT.Length != 6)                //Any ASPC part number should be six digits...
            {
                EVENTS.LOG_MESSAGE(2, "Part number needs to be 6 characters long.");
                EVENTS.LOG_MESSAGE(1, "EXIT_FAIL");
                return(1);
            }
            string COMPANY_CODE = TEXT.Substring(0, 2);       //Extract the company code digits.
            string NUMERIC_CODE = TEXT.Substring(2, 4);       //Extract the numeric code.

            if (!Regex.IsMatch(COMPANY_CODE, @"^[a-zA-Z]+$")) //Check that the company code is only letters, if its not...
            {
                EVENTS.LOG_MESSAGE(2, "Non-alpha character detected in company code.");
                EVENTS.LOG_MESSAGE(1, "EXIT_FAIL");
                return(2);
            }
            foreach (char CHARACTER in NUMERIC_CODE)    //For each character in the numeric code...
            {
                if (CHARACTER < '0' || CHARACTER > '9') //Check its ascii value, if it lies on either side of the numeric set, the data is no good.
                {
                    EVENTS.LOG_MESSAGE(2, "Non-numeric character detected in numeric part of part number.");
                    EVENTS.LOG_MESSAGE(1, "EXIT_FAIL");
                    return(3);
                }
            }
            EVENTS.LOG_MESSAGE(2, "Part number valid."); //If all the above checks passed, the part number is good.
            EVENTS.LOG_MESSAGE(1, "EXIT_SUCCESS");
            PART_NUMBER = TEXT;                          //Reinsert the capitalized version of the part number into the text field.
            return(0);
        }