Example #1
0
        public IActionResult SettlementRuleCreate(SettlementRule rule)
        {
            SettlementRuleViewModel viewModel = new SettlementRuleViewModel();

            using (var transaction = _unitOfWork.MTDBContext.Database.BeginTransaction())
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        if (rule.Frequency <= 0)
                        {
                            viewModel.MessageText = Notification.Show("Frequency must be grater than 0", "Info", type: ToastType.Info);
                            viewModel             = InitializeData(viewModel);
                            return(View(viewModel));
                        }
                        int ruleCount = 0;
                        ruleCount             = _unitOfWork.SettlementRuleRepo.GetRuleCount();
                        ruleCount             = ruleCount == 0 ? 1 : ruleCount + 1;
                        rule.SettlementRuleId = "SET-" + ruleCount.ToString().PadLeft(5, '0');
                        rule.Commission       = rule.CommissionEnable ? rule.Commission : null;
                        rule.VATPercentage    = rule.VATEnable ? rule.VATPercentage : null;
                        rule.IsActive         = false;
                        rule.IsApprove        = false;
                        rule.IsDeleted        = false;
                        rule.EntryBy          = 1;
                        rule.EntryDate        = Convert.ToDateTime(DateTime.Now);
                        rule.UpdatedBy        = 1;
                        rule.UpdatedDate      = Convert.ToDateTime(DateTime.Now);
                        _unitOfWork.SettlementRuleRepo.Add(rule);
                        _unitOfWork.Save();
                        transaction.Commit();
                        viewModel.MessageText = Notification.Show(CustomMessage.SaveMessage("Settlement Rule"), "Success", type: ToastType.Success);
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        viewModel.MessageText = Notification.Show(CustomMessage.SaveErrorMessage("Settlement Rule"), "Error", type: ToastType.Error);
                    }
                }
                if (!ModelState.IsValid)
                {
                    viewModel.MessageText = Notification.Show("Form data is not valid", "Error", type: ToastType.Error);
                }

                viewModel = InitializeData(viewModel);
                return(View(viewModel));
            }
        }