private Boolean _SaveFG()
        {
            if (tbEmpID.Text.Length == 0)
            {
                MessageBox.Show("Select person who will release the item.");
                cboReceiver.Focus();
                return(false);
            }

            string value = string.Empty;

            value = tbLotCardNo.Text.Trim();

            tbLotCardNo.Clear();

            tbLotCardNo.Focus();

            string data = string.Empty;

            string data2 = string.Empty;

            if (value.ToUpper().Replace(@"\", "|").Contains("|Z6") && value.Replace(@"\", "|").ToUpper().Contains("EPPI"))
            {
                DataTable table = new DataTable();

                table.Clear();

                foreach (var column in table.Columns.Cast <DataColumn>().ToArray())
                {
                    if (table.AsEnumerable().All(dr => dr.IsNull(column)))
                    {
                        table.Columns.Remove(column);
                    }
                }

                DataColumn colID = table.Columns.Add("LotCardNo", typeof(string));

                string[] list = value.ToUpper().Replace(@"\", "|").Split('|');

                foreach (string author in list)
                {
                    DataRow row = table.NewRow();
                    row[0] = author;
                    table.Rows.Add(row);
                }

                sLotCardRefNo = table.Rows[6][0].ToString().ToUpper().Replace("Z6", "");
            }
            else if (!value.ToUpper().Replace(@"\", "|").Contains("|Z6") && value.Contains("EPPI-"))
            {
                sLotCardRefNo = value.ToUpper();
                tbLotCardNo.Focus();
            }
            else
            {
                sLotCardRefNo = value.ToUpper();
                tbLotCardNo.Focus();

                var count = sLotCardRefNo.Count(x => x == '-');

                if (count > 4)
                {
                    MessageBox.Show("Invalid Barcode Format. Please try again.", "Invalid Barcode");
                    sLotCardRefNo = string.Empty;
                    tbLotCardNo.Focus();
                    return(false);
                }
            }

            var count2 = sLotCardRefNo.Count(x => x == '-');

            if (count2 == 4)
            {
                var input = sLotCardRefNo.Trim();

                var outerlot = SplitForward(input, '-', 3).ToArray();

                var innerlot = SplitForward(input, '-', 4).ToArray();

                foreach (string author in outerlot)
                {
                    data = author;
                }

                foreach (string author in innerlot)
                {
                    data2 = author;
                }

                lotGroupNo = sLotCardRefNo.Replace("-" + data + "-" + data2, "").Replace("Z6", "").ToUpper();
            }
            else
            {
                data2 = string.Empty;

                var input = sLotCardRefNo.Trim();

                var forwards = SplitForward(input, '-', 3).ToArray();

                string[] ssd = forwards;

                foreach (string author in ssd)
                {
                    data = author;
                }

                lotGroupNo = sLotCardRefNo.Replace("-" + data, "").Replace("Z6", "").ToUpper();
            }

            Boolean _FGbarcodeScanned = false;

            _FGbarcodeScanned = FGbarcodeScanned(sLotCardRefNo);
            if (!_FGbarcodeScanned)
            {
                return(false);
            }

            DataTable dt = null;

            string lmonth = string.Empty, lyear = string.Empty, lday = string.Empty;

            if (count2 == 4)
            {
                dt = ClsCantierDB.GetInnerLotCardQty(lotGroupNo, data, data2);

                if (dt.Rows.Count == 0)
                {
                    lQtyPerBox = 0;
                }
                else
                {
                    lQtyPerBox = Convert.ToInt32(dt.Rows[0][10].ToString());
                    dt         = ClsCantierDB.GetFGwithBarcode4delivery(sLotCardRefNo);
                }
            }
            else if (count2 == 3)
            {
                dt = ClsCantierDB.GetFGwithBarcode4delivery(sLotCardRefNo);

                if (dt.Rows.Count == 0)
                {
                    lQtyPerBox = 0;
                }
                else
                {
                    lQtyPerBox = Convert.ToInt32(dt.Rows[0][9].ToString());
                }
            }
            else
            {
                MessageBox.Show("No Records Found");
                return(false);
            }

            if (dt.Rows.Count > 0)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    lCust_ID = Convert.ToInt32(dr["Cust_ID"]);

                    sCustName = dr["Cust_Name"].ToString().Trim();

                    sPartCode = dr["PartCode"].ToString().Trim();

                    sPartRevNo = dr["RevNo"].ToString().Trim();

                    sPartName = dr["PartName"].ToString().Trim();

                    sLocation = dr["RackNo"].ToString().Trim();

                    sLotNumber = dr["LotNo"].ToString().Trim();

                    sLotControlNo = dr["LotControlNo"].ToString().Trim();
                }
            }
            else
            {
                MessageBox.Show("There is no more stock for this LotCard Control No.");
                tbLotCardNo.Clear();
                tbLotCardNo.Focus();
                return(false);
            }

            SaveFG();

            FillGrid();

            return(true);
        }