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 IActionResult Get_CommissionsChf([FromBody] ChfGetCommissionInputs model) { if (!ModelState.IsValid) { var error = ModelState.Values.FirstOrDefault().Errors.FirstOrDefault().ErrorMessage; return(BadRequest(new { success = false, message = error })); } USSDGetCommissionInputs commision = new USSDGetCommissionInputs() { enrolment_officer_code = model.officer_code, insurance_product_code = model.product_code, mode = CommissionMode.Paid, year = model.year, month = model.month, payer = model.payer }; JsonResult resp = (JsonResult)base.Get_Commissions(commision); DataMessage message = (DataMessage)resp.Value; var commissionString = JsonConvert.SerializeObject(message.Data); var commissionAmount = JsonConvert.DeserializeObject <List <CommissionAmount> >(commissionString).FirstOrDefault(); var response = new GetCommissionResponse(message.Code, false, 0).Message; Language language = Language.Secondary; if (model.language == 2) { language = Language.Primary; } ImisSms sms = new ImisSms(_configuration, _hostingEnvironment, language); var txtmsgTemplate = sms.GetMessage("CommissionInformSms"); var txtmsg = string.Format(txtmsgTemplate, new DateTime(Convert.ToInt32(model.year), Convert.ToInt32(model.month), 1).ToString("MMMM", CultureInfo.CreateSpecificCulture("en")), model.year, commissionAmount.Amount ); sms.QuickSms(txtmsg, model.msisdn); if (!response.ErrorOccured) { return(Ok(new { success = true, message = response.MessageValue })); } else { return(BadRequest(new { success = false, message = response.MessageValue })); } }
public DataMessage GetCommissions(USSDGetCommissionInputs model) { var sSQL = @"SELECT ISNULL(SUM(ISNULL(R.CammissionRate, 0.00) * PR.Amount),0.00) AS Commission, ISNULL(SUM(ISNULL(PR.Amount,0.00)),0.00) AS Amount FROM tblPremium AS PR INNER JOIN tblPolicy AS P ON P.PolicyID = PR.PolicyID AND P.ValidityTo IS NULL INNER JOIN tblReporting AS R ON R.ReportingId = PR.ReportingCommissionID INNER JOIN tblOfficer O ON P.OfficerID = O.OfficerID WHERE (PR.ReportingCommissionID IS NOT NULL) AND (PR.PayDate BETWEEN @MinDate and @MaxDate) AND (PR.ValidityTo IS NULL) AND (O.Code = @EnrollmentOfficerCode)"; 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)); DataHelper helper = new DataHelper(Configuration); SqlParameter[] sqlParameters = { new SqlParameter("@MaxDate", maxDate), new SqlParameter("@MinDate", minDate), new SqlParameter("@Mode", model.mode), new SqlParameter("@EnrollmentOfficerCode", (model.enrolment_officer_code != null)?model.enrolment_officer_code:(object)DBNull.Value), new SqlParameter("@Payer", (model.payer != null)? model.payer:(object)DBNull.Value), new SqlParameter("@ProductCode", (model.insurance_product_code != null)? model.insurance_product_code:(object)DBNull.Value) }; DataMessage message; try { var response = helper.GetDataTable(sSQL, sqlParameters, System.Data.CommandType.Text); message = new GetCommissionResponse(0, false, response, 0).Message; } catch (Exception e) { message = new GetCommissionResponse(e).Message; } return(message); }
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); }