//public ActionResult IVS040_GetSourceLocationCbo(string SourceLoc)
        //{
        //    ObjectResultData res = new ObjectResultData();
        //    try
        //    {
        //        ICommonHandler comh = ServiceContainer.GetService<ICommonHandler>() as ICommonHandler;
        //        List<string> lst = new List<string>();
        //        List<doMiscTypeCode> dtMisc = new List<doMiscTypeCode>();
        //        List<doMiscTypeCode> ResMisc = new List<doMiscTypeCode>();
        //        lst.Add(MiscType.C_INV_LOC);
        //        dtMisc = comh.GetMiscTypeCodeListByFieldName(lst);

        //        if (SourceLoc == InstrumentLocation.C_INV_LOC_INSTOCK || SourceLoc == InstrumentLocation.C_INV_LOC_RETURNED)
        //            ResMisc = (from c in dtMisc
        //                       where (c.ValueCode == InstrumentLocation.C_INV_LOC_INSTOCK ||
        //                           c.ValueCode == InstrumentLocation.C_INV_LOC_RETURNED)
        //                           && c.ValueCode != SourceLoc
        //                       select c).ToList<doMiscTypeCode>();
        //        else if (SourceLoc != null)
        //            ResMisc = (from c in dtMisc
        //                       where (c.ValueCode == InstrumentLocation.C_INV_LOC_INSTOCK ||
        //                           c.ValueCode == InstrumentLocation.C_INV_LOC_RETURNED || c.ValueCode == InstrumentLocation.C_INV_LOC_PRE_ELIMINATION) &&
        //                           (c.ValueCode != SourceLoc)
        //                       select c).ToList<doMiscTypeCode>();
        //        else
        //            ResMisc = dtMisc;

        //        //res.ResultData = CommonUtil.CommonComboBox<doMiscTypeCode>("BLANKID", ResMisc, "ValueCodeDisplay", "ValueCode", null, true).ToString();
        //        ComboBoxModel cboModel = new ComboBoxModel();
        //        cboModel.SetList<doMiscTypeCode>(ResMisc, "ValueCodeDisplay", "ValueCode");
        //        res.ResultData = cboModel;

        //        return Json(res);
        //    }
        //    catch (Exception ex)
        //    {
        //        res.AddErrorMessage(ex); return Json(res);
        //    }
        //}

        /// <summary>
        /// Validate before confirm screen.<br />
        /// - Check require field.<br />
        /// - Check instrument list not empty.<br />
        /// - Check memo.
        /// </summary>
        /// <param name="Cond"></param>
        /// <returns></returns>
        public ActionResult IVS040_cmdReg(IVS040RegisterCond Cond)
        {
            ObjectResultData res = new ObjectResultData();

            try
            {
                IVS040_ScreenParameter prm = GetScreenObject <IVS040_ScreenParameter>();
                if (prm.ElemInstrument == null)
                {
                    prm.ElemInstrument = new List <IVS040INST>();
                }
                IInventoryHandler InvH = ServiceContainer.GetService <IInventoryHandler>() as IInventoryHandler;

                if (CommonUtil.IsNullOrEmpty(Cond.ApproveNo))
                {
                    res.MessageType = MessageModel.MESSAGE_TYPE.WARNING;
                    res.AddErrorMessage(MessageUtil.MODULE_INVENTORY, "IVS040", MessageUtil.MODULE_INVENTORY, MessageUtil.MessageList.MSG4112, new string[] { "lblApproveNo" }, new string[] { "ApproveNo" });
                    return(Json(res));
                }
                prm.ApproveNo = Cond.ApproveNo;

                if (prm.ElemInstrument.Count <= 0)
                {
                    res.MessageType = MessageModel.MESSAGE_TYPE.WARNING;
                    res.AddErrorMessage(MessageUtil.MODULE_INVENTORY, MessageUtil.MessageList.MSG4006);
                    return(Json(res));
                }
                //6.2.2
                foreach (IVS040INST i in prm.ElemInstrument)
                {
                    i.IsError = false;
                }

                if (Cond.Memo != null && Cond.Memo.Replace(" ", "").Contains("\n\n\n\n"))
                {
                    res.MessageType = MessageModel.MESSAGE_TYPE.WARNING;
                    res.AddErrorMessage(MessageUtil.MODULE_INVENTORY, MessageUtil.MessageList.MSG4022);
                    return(Json(res));
                }
                prm.Memo     = Cond.Memo;
                prm.Location = Cond.SourceLoc;

                UpdateScreenObject(prm);
                res.ResultData = true;
                return(Json(res));
            }
            catch (Exception ex)
            {
                res.AddErrorMessage(ex); return(Json(res));
            }
        }
        /// <summary>
        /// Send pre-eliminate instrument to confirm screen.
        /// </summary>
        /// <param name="Cond"></param>
        /// <returns></returns>
        public ActionResult IVS040_GetEliminateListForConfirm(IVS040RegisterCond Cond)
        {
            ObjectResultData res = new ObjectResultData();

            try
            {
                IVS040_ScreenParameter prm = GetScreenObject <IVS040_ScreenParameter>();
                //List<IVS040INST> lstResult = (
                //        from row in prm.ElemInstrument
                //        orderby row.InstrumentCode, row.AreaCode
                //        select row
                //    ).ToList<IVS040INST>();
                //res.ResultData = CommonUtil.ConvertToXml<IVS040INST>(lstResult, "Inventory\\IVS040_ElemConfirm", CommonUtil.GRID_EMPTY_TYPE.SEARCH);

                res.ResultData = CommonUtil.ConvertToXml <IVS040INST>(prm.ElemInstrument, "Inventory\\IVS040_ElemConfirm", CommonUtil.GRID_EMPTY_TYPE.SEARCH);
                return(Json(res));
            }
            catch (Exception ex)
            {
                res.AddErrorMessage(ex); return(Json(res));
            }
        }