public ActionResult ICS140_SaveInput(doDebtTracingInput input)
        {
            ObjectResultData res = new ObjectResultData();

            try
            {
                if (ModelState.IsValid == false)
                {
                    ValidatorUtil.BuildErrorMessage(res, this);
                    res.MessageType = MessageModel.MESSAGE_TYPE.WARNING;
                    if (res.IsError)
                    {
                        return(Json(res));
                    }
                }

                var handler = ServiceContainer.GetService <IIncomeHandler>() as IIncomeHandler;
                var sparam  = this.GetScreenObject <ICS140_ScreenParameter>();

                // Comment scope by Jirawat Jannet on 2016-10-31
                //using (var scope = new TransactionScope())
                //{
                handler.SaveDebtTracingInput(input, sparam.IsHQUser);
                //scope.Complete(); // Comment scope by Jirawat Jannet on 2016-10-31

                res.ResultData = true;
                //}
            }
            catch (Exception ex)
            {
                res.AddErrorMessage(ex);
            }

            return(Json(res));
        }
        public ActionResult ICS140_SavePaid(string billingTargetCode, string serviceTypeCode)
        {
            ObjectResultData res = new ObjectResultData();

            try
            {
                var handler   = ServiceContainer.GetService <IIncomeHandler>() as IIncomeHandler;
                var common    = ServiceContainer.GetService <ICommonHandler>() as ICommonHandler;
                var inventory = ServiceContainer.GetService <IInventoryHandler>() as IInventoryHandler;

                var sparam = this.GetScreenObject <ICS140_ScreenParameter>();

                // Coment scopy by Jirawat Jannet  on 2016-10-31
                //using (var scope = new TransactionScope())
                //{
                doDebtTracingInput input = new doDebtTracingInput()
                {
                    BillingTargetCode = billingTargetCode,
                    ServiceTypeCode   = serviceTypeCode,
                    Result            = DebtTracingResult.C_DEBT_TRACE_RESULT_WAIT_MATCH,
                };

                int offset;
                var config = common.GetSystemConfig(ConfigName.C_CONFIG_DEBT_TRACING_WAIT_MATCHING_DAY).FirstOrDefault();
                if (config == null || !(int.TryParse(config.ConfigValue, out offset)))
                {
                    offset = 5;
                }
                input.NextCallDate = inventory.GetBusinessDateByOffset(DateTime.Today, 5).Value;

                handler.SaveDebtTracingInput(input, sparam.IsHQUser);

                doMiscTypeCode misc = new doMiscTypeCode();
                misc.FieldName = MiscType.C_DEBT_TRACING_STATUS;
                if (sparam.IsHQUser)
                {
                    misc.ValueCode = DebtTracingSubStatus.C_DEBT_TRACE_SUBSTATUS_HQ_PENDING_MATCH;
                }
                else
                {
                    misc.ValueCode = DebtTracingSubStatus.C_DEBT_TRACE_SUBSTATUS_BR_PENDING_MATCH;
                }
                var status = common.GetMiscTypeCodeList(new List <doMiscTypeCode>()
                {
                    misc
                }).FirstOrDefault();

                res.ResultData = new {
                    DebtTracingSubStatus  = misc.ValueCode,
                    DebtTracingStatusDesc = (status != null ? status.ValueDisplay : "")
                };

                //scope.Complete(); // Coment scopy by Jirawat Jannet  on 2016-10-31
                //} // Coment scopy by Jirawat Jannet  on 2016-10-31
            }
            catch (Exception ex)
            {
                res.AddErrorMessage(ex);
            }

            return(Json(res));
        }