public ActionResult Edit(int id) { UserPermissionAction("MonthlySubscription", RoleAction.detail.ToString()); CheckPermission(); if (id < 0) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } DateTime dt = DateTime.Now; var month = dt.ToString("MMMM"); MonthlySubscription objMonthlySubscription = _MonthlySubscriptionService.GetMonthlySubscription(id); var models = new List <MonthlySubscriptionModel>(); Mapper.CreateMap <Onlo.Entity.MonthlySubscription, Onlo.Models.MonthlySubscriptionModel>(); Onlo.Models.MonthlySubscriptionModel MonthlySubscriptionModelrmodel = Mapper.Map <Onlo.Entity.MonthlySubscription, Onlo.Models.MonthlySubscriptionModel>(objMonthlySubscription); if (objMonthlySubscription == null) { return(HttpNotFound()); } return(View(MonthlySubscriptionModelrmodel)); }
public IEnumerable <Customer> Read(string filePath) { if (filePath == null) { throw new ArgumentNullException(nameof(filePath)); } if (!_fileReader.Exists(filePath)) { throw new FileNotFoundException($"Input file {filePath} in not exists"); } var lines = _fileReader.ReadAllLines(filePath); var customers = new List <Customer>(); foreach (var line in lines) { var columns = line.Split(_inputSettings.ColumnSeparator, StringSplitOptions.RemoveEmptyEntries); if (columns.Length < 2) { throw new InvalidRowException("Invalid row format. less than 2 fields", line); } var name = columns[0]; var mode = Enums.Parse <SubscriptionMode>(columns[1]); var extraParams = Array.Empty <string>(); if (_modesWithExtraInfo.Contains(mode) && columns.Length == 2) { throw new InvalidRowException($"Invalid row format for {mode.ToString()}. missing extra info", line); } if (_modesWithExtraInfo.Contains(mode)) { extraParams = columns[2] .Split(_inputSettings.ColumnValueSeparator, StringSplitOptions.RemoveEmptyEntries); } ISubscription subscription = mode switch { SubscriptionMode.Never => new NeverSubscription(), SubscriptionMode.Daily => new DailySubscription(), SubscriptionMode.Weekly => WeeklySubscription.FromValues(extraParams), SubscriptionMode.Monthly => MonthlySubscription.FromValues(line, extraParams), _ => throw new ArgumentOutOfRangeException() }; customers.Add(new Customer(name, subscription)); } return(customers); } }
public void CustomerWithSubscriptionThatIsExpiredGetsCharged() { var subscription = new MonthlySubscription(); var customer = new Customer { Subscription = subscription }; var processor = TestableBillingProcessor.Create(customer); processor.ProcessMonth(2011, 8); processor.MockCharger.Verify(c => c.ChargeCustomer(customer), Times.Once()); }
public ActionResult Edit([Bind(Include = "MonthlySubscriptionId,SubscriptionMonth,SubscriptionPrice")] MonthlySubscriptionModel MonthlySubscriptionModel) { UserPermissionAction("MonthlySubscription", RoleAction.view.ToString()); CheckPermission(); try { TempData["ShowMessage"] = "error"; TempData["MessageBody"] = "Please fill the required field with valid data"; if (ModelState.IsValid) { //var Location = form["LocationLists"].ToString(); Mapper.CreateMap <Onlo.Models.MonthlySubscriptionModel, Onlo.Entity.MonthlySubscription>(); Onlo.Entity.MonthlySubscription MonthlySubscriptions = Mapper.Map <Onlo.Models.MonthlySubscriptionModel, Onlo.Entity.MonthlySubscription>(MonthlySubscriptionModel); MonthlySubscription MonthlySubscriptionFound = _MonthlySubscriptionService.GetMonthlySubscriptions().Where(x => x.SubscriptionMonth == MonthlySubscriptions.SubscriptionMonth && x.MonthlySubscriptionId != MonthlySubscriptions.MonthlySubscriptionId).FirstOrDefault(); if (MonthlySubscriptionFound == null) { MonthlySubscriptions.IsActive = true; _MonthlySubscriptionService.UpdateMonthlySubscription(MonthlySubscriptions); TempData["ShowMessage"] = "success"; TempData["MessageBody"] = " Monthly Subscription update successfully."; return(RedirectToAction("Index")); // end Update CompanyEquipments } else { TempData["ShowMessage"] = "error"; if (MonthlySubscriptionFound.SubscriptionMonth.Trim().ToLower() == MonthlySubscriptionModel.SubscriptionMonth.Trim().ToLower()) //Check User Name { TempData["MessageBody"] = MonthlySubscriptionFound.SubscriptionMonth + " already exist."; } else { TempData["MessageBody"] = "Some unknown problem occured while proccessing save operation on "; } } } } catch (Exception ex) { string ErrorMsg = ex.Message.ToString();// ErrorLogging.LogError(ex); } return(View(MonthlySubscriptionModel)); }
public void CustomerWithSubscriptionThatIsCurrentThroughNextYearDoesNotGetCharged() { var subscription = new MonthlySubscription { PaidThroughYear = 2012, PaidThroughMonth = 8 }; var customer = new Customer { Subscription = subscription }; var processor = TestableBillingProcessor.Create(customer); processor.ProcessMonth(2011, 8); processor.Charger.Verify(c => c.ChargeCustomer(customer), Times.Never); }
public void CustomerWhoIsCurrentAndDueToPayAndFailsOnceIsStillCurrent() { var subscription = new MonthlySubscription(); var customer = new Customer { Subscription = subscription }; var processor = TestableBillingProcessor.Create(customer); processor.Charger.Setup(c => c.ChargeCustomer(It.IsAny <Customer>())) .Returns(false); processor.ProcessMonth(2011, 8); Assert.True(customer.Subscription.IsCurrent); }
public void CustomerWithSubscriptionThatIsExpiredGetsCharged() { var subscription = new MonthlySubscription() { PaidThroughYear = 2011, PaidThroughMonth = 8 }; var customer = new Customer() { Subscription = subscription }; var processor = TestableBillingProcessor.Create(customer); processor.ProcessMonth(2011, 9); processor.Charger.Verify(c => c.ChargeCustomer(customer), Times.Once); }
public void CustomerWhoIsCurrentAndDueToPayAndFailsMaximumTimesIsNoLongerSubscribed() { var subscription = new MonthlySubscription(); var customer = new Customer { Subscription = subscription }; var processor = TestableBillingProcessor.Create(customer); processor.Charger.Setup(c => c.ChargeCustomer(It.IsAny <Customer>())) .Returns(false); for (int i = 0; i < MonthlySubscription.MAX_FAILURES; i++) { processor.ProcessMonth(2011, 8); } Assert.False(customer.Subscription.IsCurrent); }
public void CustomerWhoIsSubscribedButFailsToPayOnceIsStillSubscribed() { var subscription = new MonthlySubscription() { PaidThroughYear = 2011, PaidThroughMonth = 8 }; var customer = new Customer() { Subscription = subscription }; var processor = TestableBillingProcessor.Create(customer); processor.Charger.Setup(c => c.ChargeCustomer(It.IsAny <Customer>())) .Returns(false); processor.ProcessMonth(2011, 8); Assert.True(customer.Subscription.IsCurrent); }
public void CustomerWithSubscriptionThatIsExpiredGetsCharged() { var subscription = new MonthlySubscription(); var customer = new Customer { Subscription = subscription }; var processor = TestableBillingProcessor.Create(customer); processor.ProcessMonth(2011, 8); processor.Charger.Verify(c => c.ChargeCustomer(customer), Times.Once); }
public void CustomerWhoIsCurrentAndDueToPayAndFailsOnceIsStillCurrent() { var subscription = new MonthlySubscription(); var customer = new Customer { Subscription = subscription }; var processor = TestableBillingProcessor.Create(customer); processor.Charger.Setup(c => c.ChargeCustomer(It.IsAny<Customer>())) .Returns(false); processor.ProcessMonth(2011, 8); Assert.True(customer.Subscription.IsCurrent); }
public void CustomerWhoIsCurrentAndDueToPayAndFailsMaximumTimesIsNoLongerSubscribed() { var subscription = new MonthlySubscription(); var customer = new Customer { Subscription = subscription }; var processor = TestableBillingProcessor.Create(customer); processor.Charger.Setup(c => c.ChargeCustomer(It.IsAny<Customer>())) .Returns(false); for (int i = 0; i < MonthlySubscription.MAX_FAILURES; i++) { processor.ProcessMonth(2011, 8); } Assert.False(customer.Subscription.IsCurrent); }
void LoadMonthlySubsciption(DateTime dt) { db = new nubebfsEntity(); this.Title = $"Monthly Subscription [ {dt.ToString("MMMM - yyyy")} ]"; dataMS = db.MonthlySubscriptions.FirstOrDefault(x => x.date == dt); if (dataMS?.MonthEndClosed == true) { stpFileSelect.Visibility = Visibility.Collapsed; } else { stpFileSelect.Visibility = Visibility.Visible; } if (dataMS != null) { try { var lstBank = dataMS.MonthlySubscriptionBanks.Select(x => new Model.MonthlySubsBank { Id = x.Id, BankName = x.MASTERBANK.BANK_NAME, NoOfMember = x.MonthlySubscriptionMembers.Count(), TotalAmount = x.MonthlySubscriptionMembers.Sum(y => y.Amount), ActiveAmount = x.MonthlySubscriptionMembers.Where(y => y.MonthlySubscriptionMemberStatu?.Id == (int)AppLib.MonthlySubscriptionMemberStatus.Active).Sum(z => z.Amount), DefaulterAmount = x.MonthlySubscriptionMembers.Where(y => y.MonthlySubscriptionMemberStatu?.Id == (int)AppLib.MonthlySubscriptionMemberStatus.Defaulter).Sum(z => z.Amount), StruckOffAmount = x.MonthlySubscriptionMembers.Where(y => y.MonthlySubscriptionMemberStatu?.Id == (int)AppLib.MonthlySubscriptionMemberStatus.StruckOff).Sum(z => z.Amount), ResignedAmount = x.MonthlySubscriptionMembers.Where(y => y.MonthlySubscriptionMemberStatu?.Id == (int)AppLib.MonthlySubscriptionMemberStatus.Resigned).Sum(z => z.Amount), SundryCreditorAmount = x.MonthlySubscriptionMembers.Where(y => y.MonthlySubscriptionMemberStatu?.Id == (int)AppLib.MonthlySubscriptionMemberStatus.SundryCreditor).Sum(z => z.Amount) }).ToList(); var b = new Model.MonthlySubsBank { BankName = "Total", NoOfMember = lstBank.Sum(x => x.NoOfMember), TotalAmount = lstBank.Sum(x => x.TotalAmount), ActiveAmount = lstBank.Sum(x => x.ActiveAmount), DefaulterAmount = lstBank.Sum(x => x.DefaulterAmount), StruckOffAmount = lstBank.Sum(x => x.StruckOffAmount), ResignedAmount = lstBank.Sum(x => x.ResignedAmount), SundryCreditorAmount = lstBank.Sum(x => x.SundryCreditorAmount) }; lstBank.Add(b); dgvBank.ItemsSource = lstBank; lblPaidMembers.Text = dataMS.MonthlySubscriptionBanks.Sum(x => x.MonthlySubscriptionMembers.Count()).ToString(); lblPaidAmount.Text = dataMS.MonthlySubscriptionBanks.Sum(x => x.MonthlySubscriptionMembers.Sum(y => y.Amount)).ToString("N2"); } catch (Exception ex) { } try { var lstMemberStatus = db.MonthlySubscriptionMemberStatus.ToList().Select(x => new Model.MonthlySubsMemberStatus() { Description = x.Status, NoOfMember = x.MonthlySubscriptionMembers.Count(y => y.MonthlySubscriptionBank.MonthlySubscriptionId == dataMS.Id), Amount = x.MonthlySubscriptionMembers.Where(y => y.MonthlySubscriptionBank.MonthlySubscriptionId == dataMS.Id).Sum(z => z.Amount), }).ToList(); var mStatus = new Model.MonthlySubsMemberStatus() { Description = "Total", NoOfMember = lstMemberStatus.Sum(x => x.NoOfMember), Amount = lstMemberStatus.Sum(x => x.Amount), }; lstMemberStatus.Add(mStatus); dgvMemberStatus.ItemsSource = lstMemberStatus; } catch (Exception ex) { } try { var lstMemberMatching = db.MonthlySubscriptionMatchingTypes.ToList().Select(x => new Model.MonthlySubsApprovalStatus() { Description = x.Name, NoOfMember = x.MonthlySubscriptionMemberMatchingResults.Count(y => y.MonthlySubscriptionMember?.MonthlySubscriptionBank?.MonthlySubscriptionId == dataMS.Id), Approved = x.MonthlySubscriptionMemberMatchingResults.Count(y => y.MonthlySubscriptionMember?.MonthlySubscriptionBank?.MonthlySubscriptionId == dataMS.Id && y.ApprovedBy != null), Pending = x.MonthlySubscriptionMemberMatchingResults.Count(y => y.MonthlySubscriptionMember?.MonthlySubscriptionBank?.MonthlySubscriptionId == dataMS.Id && y.ApprovedBy == null), }).ToList(); var aStatus = new Model.MonthlySubsApprovalStatus() { Description = "Total", NoOfMember = lstMemberMatching.Sum(x => x.NoOfMember), Approved = lstMemberMatching.Sum(x => x.Approved), Pending = lstMemberMatching.Sum(x => x.Pending), }; lstMemberMatching.Add(aStatus); dgvMemberMatching.ItemsSource = lstMemberMatching; btnMonthEndClose.IsEnabled = lstMemberMatching.Sum(x => x.Pending) == 0 && lstMemberMatching.Sum(x => x.NoOfMember) != 0; var lstBankCurrent = dataMS.MonthlySubscriptionBanks.Select(x => new Model.MonthlySubsBank { Id = x.Id, BankName = x.MASTERBANK.BANK_NAME, NoOfMember = x.MonthlySubscriptionMembers.Count(), TotalAmount = x.MonthlySubscriptionMembers.Sum(y => y.Amount) }); var dtPre = dataMS.date.AddMonths(-1); var lstBankPrevious = db.MonthlySubscriptionBanks.Where(x => x.MonthlySubscription.date == dtPre).Select(x => new Model.MonthlySubsBank { Id = x.Id, BankName = x.MASTERBANK.BANK_NAME, NoOfMember = x.MonthlySubscriptionMembers.Count(), TotalAmount = x.MonthlySubscriptionMembers.Sum(y => y.Amount) }); List <Model.VariationByBank> variationByBanks = new List <Model.VariationByBank>(); Model.VariationByBank vb; foreach (var d in lstBankCurrent) { var dPre = lstBankPrevious.FirstOrDefault(x => x.BankName == d.BankName); vb = new Model.VariationByBank(); vb.MSBankIdPrevious = dPre?.Id ?? 0; vb.MSBankIdCureent = d.Id; var lstNRIC_Current = db.MonthlySubscriptionMembers.Where(x => x.MonthlySubscriptionBankId == vb.MSBankIdCureent).Select(x => x.NRIC).ToList(); var lstNRIC_Previous = db.MonthlySubscriptionMembers.Where(x => x.MonthlySubscriptionBankId == vb.MSBankIdPrevious).Select(x => x.NRIC).ToList(); var lstNewPaidNRIC = lstNRIC_Current.Except(lstNRIC_Previous); var lstUnpaidNRIC = lstNRIC_Previous.Except(lstNRIC_Current); vb.BankName = d.BankName; vb.NoOfMemberCurrent = d.NoOfMember; vb.NoOfMemberPrevious = dPre?.NoOfMember ?? 0; vb.TotalAmountCurrent = d.TotalAmount; vb.TotalAmountPrevious = dPre?.TotalAmount ?? 0; vb.Different = vb.NoOfMemberCurrent - vb.NoOfMemberPrevious; vb.NewPaid = lstNewPaidNRIC.Count(); // getNotContainCount( lstNRIC_Previous, lstNRIC_Current); vb.Unpaid = lstUnpaidNRIC.Count(); // getNotContainCount(lstNRIC_Current, lstNRIC_Previous); vb.NewPaidNRIC = string.Join(",", lstNewPaidNRIC); vb.UnpaidNRIC = string.Join(",", lstUnpaidNRIC); if (vb.Different != 0 || vb.Unpaid != 0 || vb.NewPaid != 0) { variationByBanks.Add(vb); } } vb = new Model.VariationByBank(); vb.BankName = "Total"; vb.NoOfMemberCurrent = variationByBanks.Sum(x => x.NoOfMemberCurrent); vb.NoOfMemberPrevious = variationByBanks.Sum(x => x.NoOfMemberPrevious); vb.Different = variationByBanks.Sum(x => x.Different); vb.Unpaid = variationByBanks.Sum(x => x.Unpaid); vb.NewPaid = variationByBanks.Sum(x => x.NewPaid); variationByBanks.Add(vb); dgvBankVar.ItemsSource = variationByBanks; } catch (Exception ex) { } } else { dgvBank.ItemsSource = null; dgvMemberStatus.ItemsSource = null; dgvMemberMatching.ItemsSource = null; dgvBankVar.ItemsSource = null; lblPaidAmount.Text = ""; lblPaidMembers.Text = ""; } }
private void BtnBrowse_Click(object sender, RoutedEventArgs e) { try { var bank = cbxBank.SelectedItem as MASTERBANK; var fileType = cbxFileType.SelectedItem as MonthlySubscriptonFileType; if (bank == null) { MessageBox.Show("Select Bank"); cbxBank.Focus(); } else if (fileType == null) { MessageBox.Show("Select file type"); cbxFileType.Focus(); } else if (cdrMonthlySubscription.SelectedDate == null) { MessageBox.Show("Select Month"); cdrMonthlySubscription.Focus(); } else { OpenFileDialog ofd = new OpenFileDialog(); if (ofd.ShowDialog() == true) { var dt = cdrMonthlySubscription.SelectedDate.Value; var ms = db.MonthlySubscriptions.FirstOrDefault(x => x.date == dt); if (ms == null) { ms = new MonthlySubscription() { date = dt, MonthEndClosed = false }; db.MonthlySubscriptions.Add(ms); } var msBank = ms.MonthlySubscriptionBanks.FirstOrDefault(x => x.BankCode == bank.BANK_CODE); if (msBank == null) { msBank = new MonthlySubscriptionBank() { BankCode = bank.BANK_CODE }; ms.MonthlySubscriptionBanks.Add(msBank); } else { MessageBox.Show($"{cbxBank.Text} is already done.\r\n delete old entry and retry If you need."); return; } var msAttachment = msBank.MonthlySubscriptionBankAttachments.FirstOrDefault(x => x.MonthlySubscriptionFileTypeId == fileType.Id); if (msAttachment == null) { msAttachment = new MonthlySubscriptionBankAttachment() { MonthlySubscriptionFileTypeId = fileType.Id }; msBank.MonthlySubscriptionBankAttachments.Add(msAttachment); } msAttachment.FilePath = ofd.FileName; msAttachment.FileContent = File.ReadAllBytes(ofd.FileName); if (fileType.Id == (int)AppLib.MonthlySubscriptionFileType.FromNUBE) { DataTable dataTable = new DataTable(); using (var con = new OleDbConnection("")) { string Import_FileName = ofd.FileName; string sheetName = "Sheet1"; string fileExtension = System.IO.Path.GetExtension(Import_FileName); if (fileExtension == ".xls") { con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Import_FileName + ";" + "Extended Properties='Excel 8.0;HDR=YES;'"; } if (fileExtension == ".xlsx") { con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Import_FileName + ";" + "Extended Properties='Excel 12.0 Xml;HDR=YES;'"; } using (OleDbCommand comm = new OleDbCommand()) { comm.CommandText = "Select * from [" + sheetName + "$]"; comm.Connection = con; using (OleDbDataAdapter da = new OleDbDataAdapter()) { da.SelectCommand = comm; da.Fill(dataTable); for (var i = 0; i < dataTable.Rows.Count; i++) { var NRIC = dataTable.Rows[i]["NRIC"].ToString(); var MemberName = dataTable.Rows[i]["MemberName"].ToString(); var Amount = dataTable.Rows[i]["Amount"].ToString(); if (String.IsNullOrWhiteSpace(NRIC)) { continue; } var msMember = msBank.MonthlySubscriptionMembers.FirstOrDefault(x => x.NRIC == NRIC); if (msMember == null) { msMember = new MonthlySubscriptionMember() { NRIC = NRIC, MonthlySubcriptionMemberStatusId = (int)AppLib.MonthlySubscriptionMemberStatus.SundryCreditor }; msBank.MonthlySubscriptionMembers.Add(msMember); } msMember.MemberName = MemberName; msMember.Amount = Convert.ToDecimal(Amount); } } } } } db.SaveChanges(); MessageBox.Show("Saved"); LoadMonthlySubsciption(cdrMonthlySubscription.SelectedDate.Value); } } }catch (Exception ex) { MessageBox.Show(ex.Message); } }