Exemplo n.º 1
0
        ///<summary>
        ///Purpose:
        ///     Mandatory check  when billing client code is not specified.
        ///
        ///Parameters:
        ///     strBillingClientCode: NULL
        ///
        ///Expected:
        ///     MSG0007: "These field was required: strBillingClientCode."
        ///</summary>
        public string Case1()
        {
            IMaintenanceHandler target = ServiceContainer.GetService <IMaintenanceHandler>() as IMaintenanceHandler;

            string expected = "ttt";
            string actual   = null;

            tbt_MaintenanceCheckup doInsert = new tbt_MaintenanceCheckup()
            {
                ContractCode = "N0000000008", ProductCode = "009", InstructionDate = DateTime.Now, Remark = "ฟหกด"
            };

            try {
                target.InsertTbt_MaintenanceCheckup(doInsert);
            } catch (ApplicationErrorException ex) {
                actual = ex.ErrorResult.Message.Code;
            } catch (Exception ex) {
                actual = ex.StackTrace;
            }

            return(string.Format(RESULT_FORMAT, 1, expected, actual, CompareResult_String(expected, actual)));
        }
        /// <summary>
        /// Download data
        /// </summary>
        /// <param name="bChkListFlag"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        public ActionResult CTS270_Download(bool bChkListFlag, List <CTS270_CheckResultItem> list)
        {
            ObjectResultData res = new ObjectResultData();
            IReportHandler   rptHandler;

            try
            {
                rptHandler = ServiceContainer.GetService <IReportHandler>() as IReportHandler;

                CTS270_ScreenParameter CTS270Param = GetScreenObject <CTS270_ScreenParameter>();
                CTS270Param.csvRpt = null;
                CTS270Param.pdfRpt = null;

                List <tbt_MaintenanceCheckup> nList = new List <tbt_MaintenanceCheckup>();
                if (bChkListFlag == true)
                {
                    foreach (dtSearchMACheckupResult r in CTS270Param.data.dtSearchResult)
                    {
                        nList.Add(new tbt_MaintenanceCheckup()
                        {
                            ContractCode    = r.ContractCode,
                            ProductCode     = r.ProductCode,
                            InstructionDate = r.InstructionDate
                        });
                    }
                }
                else
                {
                    foreach (CTS270_CheckResultItem l in list)
                    {
                        if (l.CheckedFlag == true)
                        {
                            foreach (dtSearchMACheckupResult r in CTS270Param.data.dtSearchResult)
                            {
                                if (l.KeyIndex == r.KeyIndex)
                                {
                                    nList.Add(new tbt_MaintenanceCheckup()
                                    {
                                        ContractCode    = r.ContractCode,
                                        ProductCode     = r.ProductCode,
                                        InstructionDate = r.InstructionDate
                                    });

                                    break;
                                }
                            }
                        }
                    }
                }

                IMaintenanceHandler mainHand = ServiceContainer.GetService <IMaintenanceHandler>() as IMaintenanceHandler;
                if (bChkListFlag)
                {
                    //string csv = mainHand.GenerateMACheckupList(list);
                    string csv = rptHandler.GetMaintenanceCheckupList(nList);
                    if (!CommonUtil.IsNullOrEmpty(csv))
                    {
                        CTS270Param.csvRpt = csv;
                    }

                    //return File(csv, "text/csv");
                }
                else
                {
                    bool isEmptyList = true;
                    if (nList != null)
                    {
                        if (nList.Count > 0)
                        {
                            isEmptyList = false;
                        }
                    }
                    if (isEmptyList == true)
                    {
                        res.AddErrorMessage(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0017);
                        return(Json(res));
                    }
                    else
                    {
                        doMACheckupSlipResult rm = mainHand.GenerateMACheckupSlip(nList);
                        if (!CommonUtil.IsNullOrEmpty(rm.ResultData))
                        {
                            //Stream result = new MemoryStream(merge);
                            CTS270Param.pdfRpt = rm.ResultData;
                        }

                        List <dtSearchMACheckupResult> nSort = new List <dtSearchMACheckupResult>();
                        foreach (CTS270_CheckResultItem ma in list)
                        {
                            string CheckupNo = null;
                            foreach (tbt_MaintenanceCheckup n in nList)
                            {
                                if (ma.KeyIndex == n.KeyIndex)
                                {
                                    CheckupNo = n.CheckupNo;
                                    break;
                                }
                            }
                            foreach (dtSearchMACheckupResult r in CTS270Param.data.dtSearchResult)
                            {
                                if (r.KeyIndex == ma.KeyIndex)
                                {
                                    if (CommonUtil.IsNullOrEmpty(CheckupNo) == false)
                                    {
                                        r.CheckedFlag = "";
                                        r.CheckupNo   = CheckupNo;
                                    }
                                    else if (ma.CheckedFlag == true)
                                    {
                                        r.CheckedFlag = "1";
                                    }
                                    else
                                    {
                                        r.CheckedFlag = "";
                                    }

                                    nSort.Add(r);
                                    break;
                                }
                            }
                        }
                        CTS270Param.data.dtSearchResult = nSort;

                        //Set disable/show Action Buttons
                        setPermissionFlag(CTS270Param.data.dtSearchResult
                                          , CTS270Param.data.doSearchCondition.MaintenanceCheckupListFlag ?? false
                                          , CTS270Param.data.doSearchCondition.MaintenanceCheckupSlipFlag ?? false
                                          , CTS270Param);

                        //return File(result, "application/pdf");

                        if (rm.Error != null)
                        {
                            res.ResultData = new object[] {
                                rm.Error.ErrorResult.Message,
                                rm.ErrorDetail
                            };
                        }
                    }
                }

                UpdateScreenObject(CTS270Param);
                if (res.ResultData == null)
                {
                    res.ResultData = true;
                }
            }
            catch (Exception ex)
            {
                res.AddErrorMessage(ex);
            }

            return(Json(res));
        }
        /// <summary>
        /// Delete selected data from session
        /// </summary>
        /// <param name="DeleteItem"></param>
        /// <param name="CheckItemList"></param>
        /// <returns></returns>
        public ActionResult CTS270_Delete(CTS270_CheckResultItem DeleteItem, List <CTS270_CheckResultItem> CheckItemList)
        {
            ObjectResultData res = new ObjectResultData();

            try
            {
                //Check System Suspending
                res = checkSystemSuspending();
                if (res.IsError)
                {
                    return(Json(res));
                }

                //Validate business
                //Cannot delete maintenance schedule if maintenance check-up schedule of maintenance contract that has many products and there is some registered results in the same cycle
                IMaintenanceHandler mainHand = ServiceContainer.GetService <IMaintenanceHandler>() as IMaintenanceHandler;

                bool isSomeResultRegistered = mainHand.IsSomeResultRegistered(DeleteItem.ContractCode, DeleteItem.InstructionDate.Value);
                if (isSomeResultRegistered)
                {
                    res.AddErrorMessage(MessageUtil.MODULE_CONTRACT, MessageUtil.MessageList.MSG3193);
                    return(Json(res));
                }

                //Delete data from search result list in session
                CTS270_ScreenParameter CTS270Param = GetScreenObject <CTS270_ScreenParameter>();
                var objects = from l in CTS270Param.data.dtSearchResult
                              where l.ContractCode == DeleteItem.ContractCode &&
                              l.ProductCode == DeleteItem.ProductCode &&
                              l.InstructionDate == DeleteItem.InstructionDate.Value
                              select l;

                foreach (dtSearchMACheckupResult obj in objects)
                {
                    //Delete maintainence checkup schedule
                    mainHand.DeleteMaintenanceCheckupSchedule(DeleteItem.ContractCode, DeleteItem.ProductCode, DeleteItem.InstructionDate.Value, obj.UpdateDate.Value);

                    //Remove data from session
                    CTS270Param.data.dtSearchResult.Remove(obj);

                    if (CheckItemList != null)
                    {
                        List <dtSearchMACheckupResult> nSort = new List <dtSearchMACheckupResult>();
                        foreach (CTS270_CheckResultItem ma in CheckItemList)
                        {
                            foreach (dtSearchMACheckupResult r in CTS270Param.data.dtSearchResult)
                            {
                                if (r.KeyIndex == ma.KeyIndex)
                                {
                                    if (ma.CheckedFlag == true)
                                    {
                                        r.CheckedFlag = "1";
                                    }

                                    nSort.Add(r);
                                    break;
                                }
                            }
                        }
                        CTS270Param.data.dtSearchResult = nSort;
                    }

                    UpdateScreenObject(CTS270Param);
                    break;
                }

                //when finish with out error
                res.ResultData = MessageUtil.GetMessage(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0047);
            }
            catch (Exception ex)
            {
                res.AddErrorMessage(ex);
            }

            return(Json(res));
        }
        /// <summary>
        /// Load search result data to grid
        /// </summary>
        /// <param name="cond"></param>
        /// <returns></returns>
        public ActionResult CTS270_Search(doSearchMACheckupCriteria cond)
        {
            ObjectResultData res = new ObjectResultData();

            try
            {
                CTS270_ScreenParameter         CTS270Param = GetScreenObject <CTS270_ScreenParameter>();
                dsCTS270Data                   data        = CTS270Param.data;
                List <dtSearchMACheckupResult> list        = new List <dtSearchMACheckupResult>();

                if (data == null)
                {
                    //Save search condition value
                    dsCTS270Data dsData = new dsCTS270Data();
                    cond.HasCheckupResult          = cond.HasCheckupResult ?? false;
                    cond.HaveInstrumentMalfunction = cond.HaveInstrumentMalfunction ?? false;
                    cond.NeedToContactSalesman     = cond.NeedToContactSalesman ?? false;
                    dsData.doSearchCondition       = cond;

                    //Set default to some search condition
                    CommonUtil c = new CommonUtil();
                    cond.UserCode     = cond.UserCodeContractCode;
                    cond.ContractCode = c.ConvertContractCode(cond.UserCodeContractCode, CommonUtil.CONVERT_TYPE.TO_LONG);
                    //cond.MACheckupNo = (cond.MACheckupNo == null) ? null : System.Text.RegularExpressions.Regex.Replace(cond.MACheckupNo, "^0+", "");

                    if (cond.OperationOffice == null)
                    {
                        List <OfficeDataDo> clst = CommonUtil.dsTransData.dtOfficeData;
                        StringBuilder       sbOperationOffice = new StringBuilder("");
                        foreach (OfficeDataDo off in clst)
                        {
                            if (off.FunctionSecurity != SECOM_AJIS.Common.Util.ConstantValue.FunctionSecurity.C_FUNC_SECURITY_NO)// filter follow by the combobox
                            {
                                sbOperationOffice.AppendFormat("\'{0}\',", off.OfficeCode);
                            }
                        }
                        cond.OperationOffice = sbOperationOffice.ToString();
                    }

                    //Query for maintenance
                    IMaintenanceHandler hand = ServiceContainer.GetService <IMaintenanceHandler>() as IMaintenanceHandler;
                    list = hand.SearchMACheckup(cond);

                    //Set disable/show Action Buttons
                    setPermissionFlag(list
                                      , (cond.MaintenanceCheckupListFlag.HasValue) ? cond.MaintenanceCheckupListFlag.Value : false
                                      , (cond.MaintenanceCheckupSlipFlag.HasValue) ? cond.MaintenanceCheckupSlipFlag.Value : false
                                      , CTS270Param);

                    //Save search result list
                    dsData.dtSearchResult = list;

                    //Save condition and result into session
                    CTS270Param.data = dsData;
                    UpdateScreenObject(CTS270Param);
                }
                else
                {
                    list = data.dtSearchResult;

                    //Set disable/show Action Buttons
                    setPermissionFlag(list
                                      , data.doSearchCondition.MaintenanceCheckupListFlag ?? false
                                      , data.doSearchCondition.MaintenanceCheckupSlipFlag ?? false
                                      , CTS270Param);
                }

                res.ResultData = CommonUtil.ConvertToXml <dtSearchMACheckupResult>(list, "Contract\\CTS270", CommonUtil.GRID_EMPTY_TYPE.SEARCH);
            }
            catch (Exception ex)
            {
                res.AddErrorMessage(ex);
            }
            return(Json(res));
        }