/// <summary>
        /// Fills all user records to gridview control
        /// </summary>
        private void GridBind(LineRestTimeVo conditionInVo)
        {
            LineRestTime_dgv.DataSource = null;
            ValueObjectList <LineRestTimeVo> loadVo = new ValueObjectList <LineRestTimeVo>();

            loadVo.SetNewList(getShiftTemplateVo().GetList());

            try
            {
                ValueObjectList <LineRestTimeVo> outVo = (ValueObjectList <LineRestTimeVo>)base.InvokeCbm(new GetLineRestTimeMasterMntCbm(), conditionInVo, false);

                LineRestTime_dgv.AutoGenerateColumns = false;

                if (outVo != null && outVo.GetList() != null && outVo.GetList().Count > 0)
                {
                    foreach (LineRestTimeVo lineRestVo in outVo.GetList())
                    {
                        if (lineRestVo.Shift == Convert.ToInt32(GlobalMasterDataTypeEnum.SHIFT_DAY.GetValue()))
                        {
                            foreach (LineRestTimeVo restVo in loadVo.GetList().Where(v => v.Shift == Convert.ToInt32(GlobalMasterDataTypeEnum.SHIFT_DAY.GetValue())))
                            {
                                restVo.LineRestTimeId  = lineRestVo.LineRestTimeId;
                                restVo.LineId          = lineRestVo.LineId;
                                restVo.PlanRestMinutes = lineRestVo.PlanRestMinutes;
                            }
                        }
                        else if (lineRestVo.Shift == Convert.ToInt32(GlobalMasterDataTypeEnum.SHIFT_NIGHT.GetValue()))
                        {
                            foreach (LineRestTimeVo restVo in loadVo.GetList().Where(v => v.Shift == Convert.ToInt32(GlobalMasterDataTypeEnum.SHIFT_NIGHT.GetValue())))
                            {
                                restVo.LineRestTimeId  = lineRestVo.LineRestTimeId;
                                restVo.LineId          = lineRestVo.LineId;
                                restVo.PlanRestMinutes = lineRestVo.PlanRestMinutes;
                            }
                        }
                    }
                }

                LineRestTime_dgv.DataSource = loadVo.GetList();

                LineRestTime_dgv.ClearSelection();
            }
            catch (Framework.ApplicationException exception)
            {
                popUpMessage.ApplicationError(exception.GetMessageData(), Text);
                logger.Error(exception.GetMessageData());
            }
        }
        /// <summary>
        /// To save shift rest time
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Ok_btn_Click(object sender, EventArgs e)
        {
            if (LineRestTime_dgv.RowCount == 0)
            {
                return;
            }

            ValueObjectList <LineRestTimeVo> inVo = new ValueObjectList <LineRestTimeVo>();

            inVo.SetNewList((List <LineRestTimeVo>)LineRestTime_dgv.DataSource);

            foreach (LineRestTimeVo restVo in inVo.GetList())
            {
                restVo.LineId = Convert.ToInt32(Line_cmb.SelectedValue);
                if (restVo.PlanRestMinutes == null)
                {
                    restVo.PlanRestMinutes = 0;
                }
            }

            UpdateResultVo outVo = null;

            try
            {
                Cursor.Current = Cursors.WaitCursor;
                outVo          = (UpdateResultVo)base.InvokeCbm(new AddLineRestTimeCbm(), inVo, false);
                Cursor.Current = Cursors.Default;
            }
            catch (Framework.ApplicationException exception)
            {
                Cursor.Current = Cursors.Default;
                popUpMessage.ApplicationError(exception.GetMessageData(), Text);
                logger.Error(exception.GetMessageData());
            }

            if (outVo == null)
            {
                return;
            }
            messageData = new MessageData("mmci00002", Properties.Resources.mmci00002, null);
            logger.Info(messageData);
            popUpMessage.Information(messageData, Text);
            Clear_btn_Click(sender, e);
        }
        /// <summary>
        /// Item code search click
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ItemSearch_btn_Click(object sender, EventArgs e)
        {
            ItemCodeSearchForm frm = new ItemCodeSearchForm();

            frm.ShowDialog();

            if (frm.sapItemSearchVo != null && frm.sapItemSearchVo.GetList() != null && frm.sapItemSearchVo.GetList().Count > 0)
            {
                ValueObjectList <SapItemSearchVo> sapItemSearchVo = frm.sapItemSearchVo;

                sapItemSearchVo.GetList().ForEach(v => v.SapItemName = v.SapItemCode + " - " + v.SapItemName);

                ValueObjectList <LineItemCycleTimeVo> sapItemVo = new ValueObjectList <LineItemCycleTimeVo>();

                foreach (SapItemSearchVo itmVo in sapItemSearchVo.GetList())
                {
                    LineItemCycleTimeVo sapItmVo = new LineItemCycleTimeVo();
                    sapItmVo.SapItemCode = itmVo.SapItemCode;
                    sapItemVo.add(sapItmVo);
                }

                ValueObjectList <LineItemCycleTimeVo> grdCycleVo = new ValueObjectList <LineItemCycleTimeVo>();
                ValueObjectList <LineItemCycleTimeVo> itmCycleVo = new ValueObjectList <LineItemCycleTimeVo>();

                if ((List <LineItemCycleTimeVo>)LineItem_dgv.DataSource != null)
                {
                    itmCycleVo.SetNewList((List <LineItemCycleTimeVo>)LineItem_dgv.DataSource);
                }

                if (itmCycleVo != null && itmCycleVo.GetList() != null && itmCycleVo.GetList().Count > 0)
                {
                    List <string> sapitemlist = itmCycleVo.GetList().Select(v => v.SapItemCode).ToList();

                    List <LineItemCycleTimeVo> selectedItem = sapItemVo.GetList().Where(x => !sapitemlist.Contains(x.SapItemCode)).ToList();

                    itmCycleVo.GetList().AddRange(selectedItem);
                }
                else
                {
                    itmCycleVo.GetList().AddRange(sapItemVo.GetList());
                }


                grdCycleVo.SetNewList(itmCycleVo.GetList().Where(x => !String.IsNullOrWhiteSpace(x.SapItemCode))
                                      .Select(x => new LineItemCycleTimeVo {
                    SapItemCode = x.SapItemCode, StdCycleTimeNull = x.StdCycleTimeNull
                })
                                      .GroupBy(x => x.SapItemCode).Select(x => x.FirstOrDefault()).Distinct().ToList());

                LineItem_dgv.AutoGenerateColumns = false;
                LineItem_dgv.DataSource          = null;
                LineItem_dgv.DataSource          = grdCycleVo.GetList();
                LineItem_dgv.ClearSelection();

                ValueObjectList <LineItemCycleTimeVo> cmbCycleVo = new ValueObjectList <LineItemCycleTimeVo>();

                if ((List <LineItemCycleTimeVo>)LineItem_dgv.DataSource != null)
                {
                    cmbCycleVo.SetNewList((List <LineItemCycleTimeVo>)LineItem_dgv.DataSource);
                    if ((List <LineItemCycleTimeVo>)SapItem_cmb.DataSource != null)
                    {
                        cmbCycleVo.GetList().AddRange((List <LineItemCycleTimeVo>)SapItem_cmb.DataSource);
                    }
                }

                SapItem_cmb.DataSource    = null;
                SapItem_cmb.DisplayMember = "SapItemCode";
                SapItem_cmb.ValueMember   = "SapItemCode";
                SapItem_cmb.DataSource    = cmbCycleVo.GetList().Where(x => !String.IsNullOrWhiteSpace(x.SapItemCode))
                                            .Select(x => new LineItemCycleTimeVo {
                    SapItemCode = x.SapItemCode, StdCycleTimeNull = x.StdCycleTimeNull
                })
                                            .GroupBy(x => x.SapItemCode).Select(x => x.FirstOrDefault()).Distinct().ToList();
                SapItem_cmb.SelectedIndex = -1;
            }
        }