Example #1
0
 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();
     }
 }
Example #2
0
        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();
            }
        }
Example #3
0
        public void TestCurrentlyIn()
        {
            VillageMember member = new VillageMember();

            member.CurrentlyIn = true;
            Assert.IsTrue(member.CurrentlyIn);
        }
Example #4
0
        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();
            }
        }
Example #5
0
        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();
            }
        }
Example #6
0
        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);
            }
        }
Example #7
0
 private void ShowActiveLoans(VillageMember member)
 {
     if (member.ActiveLoans != null)
     {
         foreach (Loan loan in member.ActiveLoans)
         {
             ShowLoanInListView(member, loan);
         }
     }
 }
Example #8
0
 /// <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);
     }
 }
Example #9
0
        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));
        }
Example #10
0
        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);
        }
Example #11
0
 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;
     }
 }
Example #12
0
        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();
            }
        }
Example #13
0
        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);
        }
Example #14
0
        /// <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;
                }
            }
        }
Example #15
0
        /// <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;
                }
            }
        }
Example #16
0
        /// <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;
                }
            }
        }
Example #17
0
 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;
 }
Example #18
0
        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();
            }
        }
Example #20
0
 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();
            }
        }
Example #23
0
        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);
            }
        }
Example #25
0
 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;
     }
 }
Example #26
0
        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();
            }
        }