private void btnRemove_Click(object sender, EventArgs e) { try { if (1 == lvMembers.SelectedItems.Count && lvMembers.SelectedItems[0].BackColor != Color.Red) { VillageMember member = (VillageMember)lvMembers.SelectedItems[0].Tag; if (member.ActiveLoans != null && member.ActiveLoans.Count > 0) { MessageBox.Show(MultiLanguageStrings.GetString(Ressource.VillageForm, "RemoveProhibited.Text"), MultiLanguageStrings.GetString(Ressource.VillageForm, "RemoveProhibited.Caption"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { if (DialogResult.Yes == MessageBox.Show(MultiLanguageStrings.GetString(Ressource.VillageForm, "RemoveConfirm.Text"), MultiLanguageStrings.GetString(Ressource.VillageForm, "RemoveConfirm.Caption"), MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { ServicesProvider.GetInstance().GetClientServices().RemoveMember(_village, member); membersSaved = false; DisplayMembers(); DisplayLoans(); } } } } catch (Exception ex) { new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog(); } }
private void btnAdd_Click(object sender, EventArgs e) { ClientForm frm = new ClientForm(OClientTypes.Person, MdiParent, true); if (frm.ShowDialog() != DialogResult.OK) { return; } try { Person person = frm.Person; if (ServicesProvider.GetInstance().GetClientServices().ClientIsAPerson(person)) { var member = new VillageMember { Tiers = person, JoinedDate = TimeProvider.Now, CurrentlyIn = true, IsLeader = false, IsSaved = false }; member.ActiveLoans = ServicesProvider.GetInstance().GetContractServices(). FindActiveContracts(member.Tiers.Id); _village.AddMember(member); membersSaved = false; DisplayMembers(); DisplayLoans(); } } catch (Exception ex) { new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog(); } }
public void TestCurrentlyIn() { VillageMember member = new VillageMember(); member.CurrentlyIn = true; Assert.IsTrue(member.CurrentlyIn); }
private void listViewLoans_DoubleClick(object sender, EventArgs e) { VillageMember member = (VillageMember)listViewLoans.SelectedItems[0].Tag; var mem = member.ActiveLoans[0]; if (member != null) { ClientForm frm; if (member.ActiveLoans != null) { if (member.ActiveLoans.Count > 0) { IClient client = ServicesProvider.GetInstance().GetClientServices().FindTiersByContractId(member.ActiveLoans[0].Id); if (client.Projects != null) { foreach (Project project in client.Projects) { if (project.Credits != null) { foreach (Loan loan in project.Credits) { loan.CompulsorySavings = ServicesProvider.GetInstance().GetSavingServices().GetSavingForLoan(loan.Id, true); } } } } frm = new ClientForm(client, member.ActiveLoans[0].Id, MdiParent, "tabPageLoansDetails"); } else { frm = new ClientForm((Person)member.Tiers, MdiParent); } } else { frm = new ClientForm((Person)member.Tiers, MdiParent); } frm.ShowDialog(); if (_village.Members != null) { if (_village.Members.Count != 0) { for (int i = 0; i < _village.Members.Count; i++) { if (_village.Members[i] == member) { _village.Members[i].ActiveLoans = ServicesProvider.GetInstance().GetContractServices().FindActiveContracts(member.Tiers.Id); } } } } DisplayLoans(); ((LotrasmicMainWindowForm)MdiParent).ReloadAlerts(); } }
private void lvMembers_DoubleClick(object sender, EventArgs e) { VillageMember member = (VillageMember)lvMembers.SelectedItems[0].Tag; if (member != null) { ClientForm frm; if (member.ActiveLoans != null && member.ActiveLoans.Count != 0) { IClient client = ServicesProvider.GetInstance().GetClientServices().FindTiersByContractId(member.ActiveLoans[0].Id); if (client.Projects != null) { foreach (Project project in client.Projects) { if (project.Credits != null) { foreach (Loan loan in project.Credits) { loan.CompulsorySavings = ServicesProvider.GetInstance().GetSavingServices().GetSavingForLoan(loan.Id, true); } } } } frm = new ClientForm(client, member.ActiveLoans[0].Id, MdiParent, "tabPageDetails"); } else { frm = new ClientForm((Person)member.Tiers, MdiParent); } frm.ShowDialog(); } }
private void ShowLoanInListView(VillageMember member, Loan loan) { Person person = (Person)member.Tiers; ApplicationSettings dataParam = ApplicationSettings.GetInstance(string.Empty); int decimalPlaces = dataParam.InterestRateDecimalPlaces; ListViewItem item = new ListViewItem(person.Name) { Tag = member }; if (loan == null || _village.EstablishmentDate == null) { return; } if (loan.CreationDate.Date >= _village.EstablishmentDate.Value.Date && _village.Id == loan.NsgID) { item.SubItems.Add(loan.ProductName); item.SubItems.Add(loan.Code); item.SubItems.Add(MultiLanguageStrings.GetString(Ressource.ClientForm, loan.ContractStatus + ".Text")); item.SubItems.Add(loan.Amount.GetFormatedValue(loan.UseCents)); item.SubItems.Add( loan.CalculateActualOlbBasedOnRepayments().GetFormatedValue(loan.UseCents)); item.SubItems.Add(loan.Product.Currency.Name); item.SubItems.Add(Math.Round(loan.InterestRate * 100m, decimalPlaces).ToString()); item.SubItems.Add(loan.InstallmentType.Name); item.SubItems.Add(loan.NbOfInstallments.ToString()); item.SubItems.Add(loan.AlignDisbursementDate.ToShortDateString()); if (loan.GetLastNonDeletedEvent() != null) { item.SubItems.Add(loan.GetLastNonDeletedEvent().Date.ToShortDateString()); } else { item.SubItems.Add("-"); } if (loan.NextInstallment != null) { item.SubItems.Add(loan.NextInstallment.ExpectedDate.ToShortDateString()); item.SubItems.Add( ServicesHelper.ConvertDecimalToString(loan.NextInstallment.Amount.Value)); } else { item.SubItems.Add("-"); item.SubItems.Add("-"); } item.SubItems.Add(loan.CloseDate.ToShortDateString()); if (member.LeftDate != null) { item.BackColor = Color.Red; } listViewLoans.Items.Add(item); } }
private void ShowActiveLoans(VillageMember member) { if (member.ActiveLoans != null) { foreach (Loan loan in member.ActiveLoans) { ShowLoanInListView(member, loan); } } }
/// <summary> /// The method sets to the village member cycle parameters such as /// loan amount, rate and number of installments /// according to the loan cycle /// </summary> /// <param name="member">Member of the NonSolidaryGroup</param> /// <param name="productId">Product id</param> /// <param name="loanCycle">LoanCycle of the member</param> public void SetVillageMemberCycleParams(VillageMember member, int productId, int loanCycle) { member.Product = ServicesProvider.GetInstance().GetProductServices().FindPackage(productId); if (member.Product.LoanAmountCycleParams.Count != 0 && member.Product.RateCycleParams.Count != 0 && member.Product.MaturityCycleParams.Count != 0) { SetLoanAmountCycle(member, loanCycle); SetRateCycle(member, loanCycle); SetMaturityCycle(member, loanCycle); } }
public void TestAddDeleteLeftDate() { Person person = new Person { Id = 1 }; VillageMember member = new VillageMember { Tiers = person, JoinedDate = TimeProvider.Now, CurrentlyIn = true, IsLeader = false }; _village.AddMember(member); _village.DeleteMember(member); Assert.IsTrue(TimeProvider.Now.Equals(member.LeftDate)); }
public void TestAddSameTwice() { Person person = new Person { Id = 1 }; VillageMember member = new VillageMember { Tiers = person, JoinedDate = TimeProvider.Now, CurrentlyIn = true, IsLeader = false }; _village.AddMember(member); _village.AddMember(member); Assert.AreEqual(1, _village.Members.Count); }
private void lvMembers_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) { if (lvMembers.SelectedItems.Count != 0) { VillageMember member = (VillageMember)lvMembers.SelectedItems[0].Tag; if (member != null) { btnRemove.Enabled = (1 == lvMembers.SelectedItems.Count && member.CurrentlyIn); btnSetAsLeader.Enabled = (1 == lvMembers.SelectedItems.Count && member.CurrentlyIn); } } else { btnRemove.Enabled = false; btnSetAsLeader.Enabled = false; } }
private void btnSearch_Click(object sender, EventArgs e) { SearchClientForm frm = SearchClientForm.GetInstanceForVillage(); frm.ShowDialog(); if (DialogResult.OK != frm.DialogResult) { return; } try { var clientServices = ServicesProvider.GetInstance().GetClientServices(); var client = frm.Client; if (clientServices.ClientIsAPerson(client)) { var personId = client.Id; clientServices.CheckPersonGroupCount(personId); var member = new VillageMember { Tiers = client, JoinedDate = TimeProvider.Now, CurrentlyIn = true, IsLeader = false, IsSaved = false }; member.ActiveLoans = ServicesProvider.GetInstance().GetContractServices(). FindActiveContracts(personId); List <ISavingsContract> savingsContracts = ServicesProvider.GetInstance().GetSavingServices().GetSavingsByClientId(member.Tiers.Id); foreach (ISavingsContract contract in savingsContracts) { member.Tiers.Savings.Add(contract); } clientServices.AddExistingMember(_village, member); membersSaved = false; DisplayMembers(); DisplayLoans(); DisplaySavings(); } } catch (Exception ex) { new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog(); } }
public void TestAddDeleteDifferent() { Person person1 = new Person { Id = 1 }; Person person2 = new Person { Id = 2 }; VillageMember member1 = new VillageMember { Tiers = person1, JoinedDate = TimeProvider.Now, CurrentlyIn = true, IsLeader = false }; VillageMember member2 = new VillageMember { Tiers = person2, JoinedDate = TimeProvider.Now, CurrentlyIn = true, IsLeader = false }; _village.AddMember(member1); _village.DeleteMember(member2); Assert.AreEqual(1, _village.Members.Count); }
/// <summary> /// The method sets loan amount limitation /// for the village member according to the loan cycle /// </summary> /// <param name="member">VillageMember</param> /// <param name="loanCycle">Value of the loan cycle</param> private void SetLoanAmountCycle(VillageMember member, int loanCycle) { List <LoanAmountCycle> loanAmountCycleParams = member.Product.LoanAmountCycleParams; member.Product.Amount = null; for (int i = 0; i < loanAmountCycleParams.Count; i++) { if (i == loanAmountCycleParams.Count - 1) { member.Product.AmountMin = loanAmountCycleParams[i].Min; member.Product.AmountMax = loanAmountCycleParams[i].Max; break; } if (loanAmountCycleParams[i].LoanCycle == loanCycle) { member.Product.AmountMin = loanAmountCycleParams[i].Min; member.Product.AmountMax = loanAmountCycleParams[i].Max; break; } } }
/// <summary> /// The method sets interest rate limitation /// for the village member according to the loan cycle /// </summary> /// <param name="member">Member of the NonSolidaryGroup</param> /// <param name="loanCycle">LoanCycle of the member</param> private void SetRateCycle(VillageMember member, int loanCycle) { List <RateCycle> rateCycles = member.Product.RateCycleParams; member.Product.InterestRate = null; for (int i = 0; i < rateCycles.Count; i++) { if (i == rateCycles.Count - 1) { member.Product.InterestRateMin = rateCycles[i].Min.Value; member.Product.InterestRateMax = rateCycles[i].Max.Value; break; } if (rateCycles[i].LoanCycle == loanCycle) { member.Product.InterestRateMin = rateCycles[i].Min.Value; member.Product.InterestRateMax = rateCycles[i].Max.Value; break; } } }
/// <summary> /// The method sets number of installments limitation /// for the village member according to the loan cycle /// </summary> /// <param name="member">Member of the NonSolidaryGroup</param> /// <param name="loanCycle">LoanCycle of the member</param> private void SetMaturityCycle(VillageMember member, int loanCycle) { List <MaturityCycle> maturityCycles = member.Product.MaturityCycleParams; member.Product.NbOfInstallments = null; for (int i = 0; i < maturityCycles.Count; i++) { if (i == maturityCycles.Count - 1) { member.Product.NbOfInstallmentsMin = (int)maturityCycles[i].Min.Value; member.Product.NbOfInstallmentsMax = (int)maturityCycles[i].Max.Value; break; } if (maturityCycles[i].LoanCycle == loanCycle) { member.Product.NbOfInstallmentsMin = (int)maturityCycles[i].Min.Value; member.Product.NbOfInstallmentsMax = (int)maturityCycles[i].Max.Value; break; } } }
private VillageMember InitRole(XmlNode roleNode, VillageMember member) { member.RoleName = roleNode.SelectSingleNode("Name").InnerText; if(roleNode.SelectSingleNode("Investigate") != null) { member.AddPower(new Powers.InvestigatePower()); } if(roleNode.SelectSingleNode("Protect") != null) { member.AddPower(new Powers.ProtectPower()); } if(roleNode.SelectSingleNode("Roleblock") != null) { member.AddPower(new Powers.RoleblockPower()); } if(roleNode.SelectSingleNode("Daykill") != null) { bool endsDay = !String.IsNullOrEmpty(roleNode.SelectSingleNode("Daykill").InnerText); member.AddPower(new Powers.DaykillPower(endsDay)); } if (roleNode.SelectSingleNode("Kingmake") != null) { member.ApplyEffect(new Effects.KingmakerEffect()); } if(roleNode.SelectSingleNode("Hero") != null) { member.ApplyEffect(new Effects.HeroEffect()); } return member; }
private void ShowAllLoans(VillageMember member) { List <Loan> allLoansOfMember = ServicesProvider.GetInstance().GetContractServices().FindAllLoansOfClient(member.Tiers.Id); foreach (Loan item in allLoansOfMember) { if (item.CreationDate.Date >= member.JoinedDate.Date) { if (member.LeftDate != null) { if (member.LeftDate.Value.Date >= item.CreationDate.Date && member.JoinedDate.Date <= item.CreationDate.Date) { ShowLoanInListView(member, item); } } else { ShowLoanInListView(member, item); } } } }
private void btnSave_Click(object sender, EventArgs e) { bool isError = false; try { if (_notEnoughMoney) { if (!MessageBox.Show(MultiLanguageStrings.GetString(Ressource.VillageForm, "MoneyNotEnoughForAll.Text"), "!", MessageBoxButtons.YesNo).Equals(DialogResult.Yes)) { return; } } foreach (ListViewItem item in lvMembers.Items) { if (!item.Checked || item == _itemTotal) { continue; } var loan = item.Tag as Loan; DateTime date = Convert.ToDateTime(item.SubItems[IdxDDate].Text); VillageMember activeMember = null; int index = 0; foreach (VillageMember member in _village.NonDisbursedMembers) { int tIndex = member.ActiveLoans.IndexOf(loan); if (tIndex > -1) { activeMember = member; index = tIndex; } } if (loan != null) { loan.CompulsorySavings = ServicesProvider.GetInstance().GetSavingServices().GetSavingForLoan(loan.Id, true); if (loan.Product.UseCompulsorySavings) { if (loan.CompulsorySavings == null) { string text = string.Format("The loan with the code {0} requires a compulsory savings account to be disbursed!", loan.Code); MessageBox.Show(text, @"No compulsory savings", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } decimal totalAmountPercentage = 0; decimal savingsBalance = loan.CompulsorySavings.GetBalance().Value; foreach (Loan assosiatedLoan in loan.CompulsorySavings.Loans) { if (assosiatedLoan.ContractStatus != OContractStatus.Closed && assosiatedLoan.ContractStatus != OContractStatus.Abandoned && assosiatedLoan.ContractStatus != OContractStatus.Postponed && assosiatedLoan.CompulsorySavingsPercentage != null) { totalAmountPercentage += (assosiatedLoan.Amount.Value * ((decimal)assosiatedLoan.CompulsorySavingsPercentage / 100)); } } if (totalAmountPercentage > savingsBalance) { MessageBox.Show(String.Format( "The balance on savings account {2} of {0} is not enough to cover total loans amount percentage of {1}.\nClient name: {3}", ServicesHelper.ConvertDecimalToString(savingsBalance), ServicesHelper.ConvertDecimalToString(totalAmountPercentage), loan.CompulsorySavings.Code, item.SubItems[0].Text), @"Insufficient savings balance", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } } date = DateTime.Parse(item.SubItems[2].Text); loan.StartDate = date; if (loan.AlignDisbursementDate.Date != DateTime.Parse(item.SubItems[3].Text).Date) { loan.FirstInstallmentDate = DateTime.Parse(item.SubItems[3].Text).Date; loan.AlignDisbursementDate = loan.CalculateAlignDisbursementDate(DateTime.Parse(item.SubItems[3].Text).Date); if (!loan.ScheduleChangedManually) { loan.InstallmentList = loan.CalculateInstallments(true); loan.CalculateStartDates(); } } if (item.SubItems[IdxPaymentMethod].Tag != null && item.SubItems[IdxPaymentMethod].Tag.ToString() == OPaymentMethods.Savings.ToString()) { if (loan.Product.UseCompulsorySavings && loan.CompulsorySavings != null) { if (loan.CompulsorySavings.Status == OSavingsStatus.Active) { ServicesProvider.GetInstance().GetSavingServices().LoanDisbursement(loan.CompulsorySavings, loan, loan.AlignDisbursementDate, "Disbursement of the loan: " + loan.Code, User.CurrentUser, false); } else { throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.CompulsorySavingsContractIsNotActive); } } else { string text = string.Format(@"The loan of client '{0}' requires a compulsory savings account!", ((VillageMember)item.Tag).Tiers.Name); MessageBox.Show(text, @"No compulsory savings", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } PaymentMethod method = ServicesProvider.GetInstance().GetPaymentMethodServices().GetPaymentMethodByName(item.SubItems[IdxPaymentMethod].Text); activeMember.ActiveLoans[index] = ServicesProvider.GetInstance().GetContractServices().Disburse(loan, date, true, false, method); } } catch (Exception ex) { isError = true; new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog(); } if (!isError) { Close(); } }
private void _ChangeLeader(VillageMember newLeader) { _village.Leader = newLeader; DisplayMembers(); }
public IActionResult VillageMemberImport(IFormFile excelfile) { var response = ResponseModelFactory.CreateInstance; using (_dbContext) { DateTime beginTime = DateTime.Now; string sWebRootFolder = _hostingEnvironment.WebRootPath + "\\UploadFiles\\ImportEmergencyExcel"; //var schoolinfo = _dbContext.SchoolInforManagement.AsQueryable(); string uploadtitle = "村干部信息导入" + DateTime.Now.ToString("yyyyMMddHHmmss"); string sFileName = $"{uploadtitle}.xlsx"; FileInfo file = new FileInfo(Path.Combine(sWebRootFolder, sFileName)); //string conStr = ConnectionStrings.DefaultConnection; string responsemsgsuccess = ""; string responsemsgrepeat = ""; string responsemsgdefault = ""; int successcount = 0; int repeatcount = 0; int defaultcount = 0; //string today = DateTime.Now.ToString("yyyy-MM-dd"); try { //把excelfile中的数据复制到file中 using (FileStream fs = new FileStream(file.ToString(), FileMode.Create)) //初始化一个指定路径和创建模式的FileStream { excelfile.CopyTo(fs); fs.Flush(); //清空stream的缓存,并且把缓存中的数据输出到file } DataTable dt = Haikan3.Utils.ExcelTools.ExcelToDataTable(file.ToString(), "Sheet1", true); if (dt == null || dt.Rows.Count == 0) { response.SetFailed("表格无数据"); return(Ok(response)); } else { if (!dt.Columns.Contains("村庄名称")) { response.SetFailed("无‘村庄名称’列"); return(Ok(response)); } if (!dt.Columns.Contains("姓名")) { response.SetFailed("无‘姓名’列"); return(Ok(response)); } if (!dt.Columns.Contains("性别")) { response.SetFailed("无‘性别’列"); return(Ok(response)); } if (!dt.Columns.Contains("联系电话")) { response.SetFailed("无‘联系电话’列"); return(Ok(response)); } for (int i = 0; i < dt.Rows.Count; i++) { var entity = new VillageMember(); entity.VillageMemberUuid = Guid.NewGuid(); if (!string.IsNullOrEmpty(dt.Rows[i]["村庄名称"].ToString())) { var village = _dbContext.Village.FirstOrDefault(x => x.VillageName == dt.Rows[i]["村庄名称"].ToString()); if (village == null) { responsemsgdefault += "<p style='color:red'>" + "第" + (i + 2) + "行村庄名称不存在" + "</p></br>"; defaultcount++; continue; } else { entity.VillageUuid = village.VillageUuid; } } else { responsemsgdefault += "<p style='color:red'>" + "第" + (i + 2) + "行村庄名称为空" + "</p></br>"; defaultcount++; continue; } if (!string.IsNullOrEmpty(dt.Rows[i]["姓名"].ToString())) { entity.MemberName = dt.Rows[i]["姓名"].ToString(); } else { responsemsgdefault += "<p style='color:red'>" + "第" + (i + 2) + "行姓名为空" + "</p></br>"; defaultcount++; continue; } if (!string.IsNullOrEmpty(dt.Rows[i]["性别"].ToString())) { entity.MemberSex = dt.Rows[i]["性别"].ToString(); } else { responsemsgdefault += "<p style='color:red'>" + "第" + (i + 2) + "行性别为空" + "</p></br>"; defaultcount++; continue; } if (!string.IsNullOrEmpty(dt.Rows[i]["联系电话"].ToString())) { entity.MemberPhone = dt.Rows[i]["联系电话"].ToString(); } else { responsemsgdefault += "<p style='color:red'>" + "第" + (i + 2) + "行联系电话为空" + "</p></br>"; defaultcount++; continue; } //entity.AddTime = DateTime.Now.ToString("yyyy-MM-dd"); entity.AddPeople = AuthContextService.CurrentUser.DisplayName; entity.IsDelete = 0; _dbContext.VillageMember.Add(entity); _dbContext.SaveChanges(); successcount++; } } responsemsgsuccess = "<p style='color:green'>导入成功:" + successcount + "条</p></br>" + responsemsgsuccess; responsemsgrepeat = "<p style='color:orange'>重复需手动修改数据:" + repeatcount + "条</p></br>" + responsemsgrepeat; responsemsgdefault = "<p style='color:red'>导入失败:" + defaultcount + "条</p></br>" + responsemsgdefault; ToLog.AddLog("导入", "成功:导入:村干部信息数据", _dbContext); //DateTime endTime = DateTime.Now; //TimeSpan useTime = endTime - beginTime; //string taketime = "导入时间" + useTime.TotalSeconds.ToString() + "秒 "; response.SetData(JsonConvert.DeserializeObject(JsonConvert.SerializeObject(new { //time = taketime, successmsg = responsemsgsuccess , repeatmsg = responsemsgrepeat, defaultmsg = responsemsgdefault }))); return(Ok(response)); } catch (Exception ex) { response.SetFailed(ex.Message); return(Ok(response)); } } }
private void btnSave_Click(object sender, EventArgs e) { try { foreach (ListViewItem item in lvMembers.Items) { if (!item.Checked) { continue; } var loan = item.Tag as Loan; var comment = item.SubItems[IdxComment].Text; var currentStatus = loan.ContractStatus; var status = (OContractStatus)item.SubItems[IdxStatus].Tag; if (currentStatus == status) { continue; } string code = item.SubItems[IdxValidationCode].Text; DateTime date = Convert.ToDateTime(item.SubItems[IdxCreditCommitteeDate].Tag); VillageMember activeMember = null; foreach (VillageMember member in _village.Members) { int tIndex = member.ActiveLoans.IndexOf(loan); if (tIndex > -1) { activeMember = member; } } IClient client = activeMember.Tiers; loan.CreditCommiteeDate = date; loan.ContractStatus = status; loan.CreditCommitteeCode = code; loan.CreditCommiteeComment = comment; Project project = client.Projects[0]; loan = ServicesProvider.GetInstance().GetContractServices().UpdateContractStatus(loan, project, client, currentStatus == OContractStatus.Validated); if (OContractStatus.Refused == status || OContractStatus.Abandoned == status || OContractStatus.Closed == status) { loan.Closed = true; activeMember.ActiveLoans.Remove(loan); if (activeMember.ActiveLoans.Count == 0) { client.Active = false; client.Status = OClientStatus.Inactive; } } else { loan.Closed = false; client.Active = true; client.Status = OClientStatus.Active; } } DialogResult = DialogResult.OK; Close(); } catch (Exception ex) { new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog(); } }
public void TestLeftDateIsNull() { VillageMember member = new VillageMember(); Assert.IsNull(member.LeftDate); }
private void BtnOkClick(object sender, EventArgs e) { foreach (ListViewItem item in lvContracts.Items) { if (item == _itemTotal) { continue; } if (!item.Checked) { continue; } var loan = item.Tag as Loan; VillageMember activeMember = null; int index = 0; foreach (VillageMember member in _village.Members) { int tIndex = member.ActiveLoans.IndexOf(loan); if (tIndex > -1) { activeMember = member; index = tIndex; } } if (activeMember != null) { Person person = activeMember.Tiers as Person; if (loan != null) { int number = loan.GetFirstUnpaidInstallment().Number; OCurrency total = (OCurrency)item.SubItems[5].Tag; bool doProportionPayment = cbItem.SelectedIndex == 2; OCurrency penalties = (OCurrency)item.SubItems[4].Tag; bool disableFees = penalties != loan.CalculateDuePenaltiesForInstallment(number, TimeProvider.Today); string comment = item.SubItems[10].Text; PaymentMethod paymentMethod = ServicesProvider.GetInstance().GetPaymentMethodServices().GetPaymentMethodById(1); try { activeMember.ActiveLoans[index] = ServicesProvider.GetInstance().GetContractServices().Repay(loan, person, number, TimeProvider.Now, total, disableFees, penalties, 0, false, 0, true, doProportionPayment, paymentMethod, comment, false); } catch (Exception ex) { new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog(); } } } if (loan != null) { if (loan.Closed) { if (activeMember != null) { activeMember.ActiveLoans[index] = null; } } } } if (_AllContractsClosed()) { _village.Active = false; ServicesProvider.GetInstance().GetContractServices().UpdateVillageStatus(_village); } }
private bool GetResult(VillageMember target) { if(this.Sanity == SanityType.Naive) { return false; } if(this.Sanity == SanityType.Paranoid) { return true; } bool saneResult = (target.Faction.Alignment == Alignment.Evil); if(this.Sanity == SanityType.Sane) { return saneResult; } else { return !saneResult; } }
private void btnSave_Click(object sender, EventArgs e) { try { foreach (ListViewItem item in lvMembers.Items) { if (!item.Checked) { continue; } var loan = item.Tag as Loan; var status = (OContractStatus)item.SubItems[IdxStatus].Tag; var currentStatus = loan.ContractStatus; string code = item.SubItems[IdxValidationCode].Text; var comment = item.SubItems[IdxComment].Text; DateTime creditCommDate = Convert.ToDateTime(item.SubItems[IdxCreditCommitteeDate].Tag); DateTime disbursementDate = Convert.ToDateTime(item.SubItems[IdxDisbursementDate].Tag); VillageMember activeMember = null; loan.CreditCommiteeDate = creditCommDate + DateTime.Now.TimeOfDay; loan.StartDate = disbursementDate + DateTime.Now.TimeOfDay; loan.ContractStatus = status; loan.CreditCommitteeCode = code; loan.CreditCommiteeComment = comment; foreach (VillageMember member in _village.Members) { int tIndex = member.ActiveLoans.IndexOf(loan); if (tIndex > -1) { activeMember = member; } } IClient client = activeMember.Tiers; Project project = client.Projects[0]; if (loan.StartDate.Date < ((DateTime)loan.CreditCommiteeDate).Date) { MessageBox.Show(GetString("CCLateError.Text"), GetString("Notification.Caption")); return; } if (_isSaveLoanNeeded) { DateTime firstInstDate = Convert.ToDateTime(item.SubItems[IdxFirstInstallmentDate].Tag); loan.AlignDisbursementDate = loan.CalculateAlignDisbursementDate(firstInstDate); loan.FirstInstallmentDate = firstInstDate + DateTime.Now.TimeOfDay; loan.InstallmentList = ServicesProvider.GetInstance().GetContractServices().SimulateScheduleCreation(loan); if (loan.FirstInstallmentDate.Date < (DateTime)loan.StartDate.Date) { MessageBox.Show(GetString("FILateError.Text"), GetString("Notification.Caption")); return; } ServicesProvider.GetInstance().GetContractServices().SaveLoan(ref loan, project.Id, ref client); } loan = ServicesProvider.GetInstance().GetContractServices().UpdateContractStatus(loan, project, client, currentStatus == OContractStatus.Validated); if (OContractStatus.Refused == status || OContractStatus.Abandoned == status || OContractStatus.Closed == status) { loan.Closed = true; activeMember.ActiveLoans.Remove(loan); if (activeMember.ActiveLoans.Count == 0) { client.Active = false; client.Status = OClientStatus.Inactive; } } else { loan.Closed = false; client.Active = true; client.Status = OClientStatus.Active; } } DialogResult = DialogResult.OK; Close(); } catch (Exception ex) { new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog(); } }