public virtual IActionResult Get_Commissions([FromBody] GetCommissionInputs model)
        {
            if (!ModelState.IsValid)
            {
                var error = ModelState.Values.FirstOrDefault().Errors.FirstOrDefault().ErrorMessage;
                return(BadRequest(new { error_occured = true, error_message = error }));
            }

            int userId = Convert.ToInt32(HttpContext.User.Claims
                                         .Where(w => w.Type == "UserId")
                                         .Select(x => x.Value)
                                         .FirstOrDefault());

            try
            {
                _imisModules.GetInsureeModule().GetFamilyLogic().SetUserId(userId);
            }
            catch (Exception)
            {
                _imisModules.GetInsureeModule().GetFamilyLogic().SetUserId(-1);
            }

            var response = _imisModules.GetInsureeModule().GetPolicyLogic().GetCommissions(model);

            return(Json(response));
        }
        public DataMessage GetCommissions(GetCommissionInputs model)
        {
            dynamic response;

            int year  = DateTime.UtcNow.Year;
            int month = DateTime.UtcNow.Month;

            try
            {
                year  = Convert.ToInt32(model.year);
                month = Convert.ToInt32(model.month);
            }
            catch (Exception)
            {
                throw;
            }

            DateTime minDate = new DateTime(year, month, 1);
            DateTime maxDate = new DateTime(year, month, DateTime.DaysInMonth(year, month));

            DataMessage message;

            try
            {
                using (var imisContext = new ImisDB())
                {
                    var res = (from PR in imisContext.TblPremium
                               join P in imisContext.TblPolicy.Where(p => p.ValidityTo == null) on PR.PolicyId equals P.PolicyId
                               join R in imisContext.TblReporting on PR.ReportingCommissionID equals R.ReportingId
                               join O in imisContext.TblOfficer on P.OfficerId equals O.OfficerId
                               where (PR.ReportingCommissionID == null &&
                                      (PR.PayDate >= minDate && PR.PayDate <= maxDate) &&
                                      PR.ValidityTo == null &&
                                      O.Code == model.enrolment_officer_code)
                               select new
                    {
                        Commission = (R.CammissionRate == null ? 0.00M : R.CammissionRate) * PR.Amount,
                        PR.Amount
                    })
                              .ToList();

                    var c = res.Count > 0 ? res.Sum(x => x.Commission) : null;
                    var a = res.Count > 0 ? res.Sum(x => (decimal?)x.Amount) : null;

                    response = new List <dynamic>()
                    {
                        new { Commission = c, Amount = a }
                    };

                    message = new GetCommissionResponse(0, false, response, 0).Message;
                }
            }
            catch (Exception e)
            {
                message = new GetCommissionResponse(e).Message;
            }

            return(message);
        }
        public DataMessage GetCommissions(GetCommissionInputs model)
        {
            DataMessage response;

            response = policyRenewalRepository.GetCommissions(model);

            return(response);
        }
Example #4
0
        public DataMessage GetCommissions(GetCommissionInputs model)
        {
            DataMessage message;

            message = policyRepository.GetCommissions(model);

            return(message);
        }
        public virtual IActionResult GetCommissions([FromBody] GetCommissionInputs model)
        {
            if (!ModelState.IsValid)
            {
                var error = ModelState.Values.FirstOrDefault().Errors.FirstOrDefault().ErrorMessage;
                return(BadRequest(new { error_occured = true, error_message = error }));
            }

            var response = _imisModules.GetPolicyModule().GetPolicyRenewalLogic().GetCommissions(model);

            return(Json(response));
        }
Example #6
0
        public DataMessage GetCommissions(GetCommissionInputs model)
        {
            dynamic response;

            int year  = Convert.ToInt32(model.year);
            int month = Convert.ToInt32(model.month);

            // fix - when no month is choosen - get data for every month in given year
            DateTime minDate = new DateTime(year, 1, 1);
            DateTime maxDate = new DateTime(year, 12, DateTime.DaysInMonth(year, 12));

            if (month > 0)
            {
                minDate = new DateTime(year, month, 1);
                maxDate = new DateTime(year, month, DateTime.DaysInMonth(year, month));
            }

            DataMessage message;

            using (var imisContext = new ImisDB())
            {
                var res = (from PR in imisContext.TblPremium
                           join P in imisContext.TblPolicy.Where(p => p.ValidityTo == null) on PR.PolicyId equals P.PolicyId
                           join R in imisContext.TblReporting on PR.ReportingCommissionID equals R.ReportingId
                           join O in imisContext.TblOfficer on P.OfficerId equals O.OfficerId
                           where ((PR.PayDate >= minDate && PR.PayDate <= maxDate) &&
                                  PR.ValidityTo == null &&
                                  O.Code == model.enrolment_officer_code &&
                                  R.ReportMode == (int)model.mode)
                           select new
                {
                    Commission = (R.CommissionRate == null ? 0.00M : R.CommissionRate) * PR.Amount,
                    PR.Amount
                })
                          .ToList();

                var c = res.Count > 0 ? res.Sum(x => x.Commission) : null;
                var a = res.Count > 0 ? res.Sum(x => (decimal?)x.Amount) : null;

                response = new List <dynamic>()
                {
                    new { Commission = c, Amount = a }
                };

                message = new GetCommissionResponse(0, false, response, 0).Message;
            }

            return(message);
        }