Example #1
0
 public ClientServices(User pUser, string testDB)
 {
     _user = pUser;
     _clientManagement = new ClientManager(testDB);
     _dataParam = ApplicationSettings.GetInstance(pUser.Md5);
     _picturesServices = new PicturesServices(testDB);
 }
        public void InitManager()
        {
            ApplicationSettings.GetInstance("").DeleteAllParameters();
            ApplicationSettings.GetInstance("").AddParameter(OGeneralSettings.CALCULATIONLATEFEESDURINGPUBLICHOLIDAYS, true);
            ApplicationSettings.GetInstance("").AddParameter(OGeneralSettings.ACCOUNTINGPROCESS, OAccountingProcesses.Cash);
            TechnicalSettings.UseOnlineMode = false;
            //Create Manager
            FundingLineManager fundingLineManager = new FundingLineManager(DataUtil.TESTDB);
            ClientManager clientManagement = new ClientManager(DataUtil.TESTDB);
            ConnectionManager connectionManager = ConnectionManager.GetInstance(DataUtil.TESTDB);
            //Create Service
            EconomicActivityServices economicActivityServices = new EconomicActivityServices(DataUtil.TESTDB);
            ClientServices clientService = new ClientServices(clientManagement);
            FundingLineServices fundingLineService = new FundingLineServices(fundingLineManager, clientManagement);
            ProjectServices projectService = new ProjectServices(DataUtil.TESTDB);

            container = new Hashtable
                            {
                                {"EconomicActivityServices", economicActivityServices},
                                {"ClientServices", clientService},
                                {"FundingLineServices", fundingLineService},
                                {"ProjectServices", projectService},
                                {"ConnectionManager", connectionManager}
                            };
        }
Example #3
0
 public ClientServices(User pUser)
 {
     _user = pUser;
     _clientManagement = new ClientManager(pUser, true, true);
     _clientManagement.ClientSelected += ClientSelected;
     _dataParam = ApplicationSettings.GetInstance(pUser.Md5);
     _picturesServices = new PicturesServices(pUser);
 }
 public AddDataForTestingTransaction()
 {
     ConnectionManager connectionManager = ConnectionManager.GetInstance(DataUtil.TESTDB);
     _connection = connectionManager.SqlConnection;
     _domainOfApplicationManagement = new EconomicActivityManager(DataUtil.TESTDB);
     _clientManagement = new ClientManager(DataUtil.TESTDB);
     _branch = new Branch {Id = 1, Name = "Default"};
 }
Example #5
0
 public SavingManager(User pUser)
     : base(pUser)
 {
     _savingProductManager = new SavingProductManager(pUser);
     _savingEventManager = new SavingEventManager(pUser);
     _loanManager = new LoanManager(pUser);
     _clientManager = new ClientManager(pUser, false, false);
     _user = pUser;
 }
Example #6
0
 public ProjectManager(User pUser, bool pInitializeAll)
     : base(pUser)
 {
     if (pInitializeAll)
     {
         _creditManager = new LoanManager(pUser);
         _locations = new LocationsManager(pUser);
     }
     else
         _clientManager = new ClientManager(pUser, false, false);
 }
Example #7
0
        public void InitManager()
        {
            TechnicalSettings.CheckSettings();

            LoanProductManager loanProductManager = new LoanProductManager(DataUtil.TESTDB);
            AccountingTransactionManager accountingTransactionManager = new AccountingTransactionManager(DataUtil.TESTDB);
            EventManager eventManager = new EventManager(DataUtil.TESTDB);
            ExchangeRateManager exchangeRateManager = new ExchangeRateManager(DataUtil.TESTDB);
            ProvisioningRuleManager provisioningRuleManager = new ProvisioningRuleManager(DataUtil.TESTDB);
            AccountManager accountManager = new AccountManager(DataUtil.TESTDB);
            InstallmentTypeManager installmentTypeManager = new InstallmentTypeManager(DataUtil.TESTDB);
            UserManager userManager = new UserManager(DataUtil.TESTDB);
            EconomicActivityManager economicActivityManager = new EconomicActivityManager(DataUtil.TESTDB);
            InstallmentManager installmentManager = new InstallmentManager(DataUtil.TESTDB);
            FundingLineManager fundingLineManager = new FundingLineManager(DataUtil.TESTDB);
            ClientManager clientManager = new ClientManager(DataUtil.TESTDB);
            LocationsManager locationsManager = new LocationsManager(DataUtil.TESTDB);
            LoanManager loanManager = new LoanManager(DataUtil.TESTDB);
            ProjectManager projectManager = new ProjectManager(DataUtil.TESTDB);
            MFIManager mfiManager = new MFIManager(DataUtil.TESTDB);
            SavingManager savingManager = new SavingManager(DataUtil.TESTDB);
            SavingProductManager savingProductManager = new SavingProductManager(DataUtil.TESTDB);
            SavingEventManager savingEventManager = new SavingEventManager(DataUtil.TESTDB);
            CurrencyManager currencyManager = new CurrencyManager(DataUtil.TESTDB);
            AccountingRuleManager accountingRuleManager = new AccountingRuleManager(DataUtil.TESTDB);
            FundingLineServices fundingLineServices = new FundingLineServices(DataUtil.TESTDB);

            container = new Hashtable
                            {
                                {"LoanProductManager", loanProductManager},
                                {"AccountingTransactionManager", accountingTransactionManager},
                                {"EventManager", eventManager},
                                {"ExchangeRateManager", exchangeRateManager},
                                {"ProvisioningRuleManager", provisioningRuleManager},
                                {"AccountManager", accountManager},
                                {"InstallmentTypeManager", installmentTypeManager},
                                {"UserManager", userManager},
                                {"FundingLineManager", fundingLineManager},
                                {"LoanManager", loanManager},
                                {"ClientManager", clientManager},
                                {"LocationsManager", locationsManager},
                                {"ProjectManager", projectManager},
                                {"EconomicActivityManager", economicActivityManager},
                                {"InstallmentManager", installmentManager},
                                {"MFIManager", mfiManager},
                                {"SavingManager", savingManager},
                                {"SavingProductManager", savingProductManager},
                                {"SavingEventManager", savingEventManager},
                                {"CurrencyManager", currencyManager},
                                {"FundingLineServices", fundingLineServices},
                                {"AccountingRuleManager", accountingRuleManager}
                            };
        }
        public EventProcessorServices(User pUser,string testDB)
        {
            _user = pUser;

            _eventManagement = new EventManager(testDB);
            _savingEventManagement = new SavingEventManager(testDB);
            _movementSetManagement = new AccountingTransactionManager(testDB);
            _loanManager = new LoanManager(testDB);
            _packageManager = new LoanProductManager(testDB);
            _clientManagement = new ClientManager(testDB);
            _accountingServices = new Accounting.AccountingServices(testDB);

            _InitializeEventProcessor();
        }
Example #9
0
        public void TestFindTiersWhenNoResult()
        {
            int numberTotalPage = 1;
            int numberOfRecords = 1;
            string query = "nicolas";
            List <ClientSearchResult> list = new List<ClientSearchResult>();
            //mockClientManagement.ExpectAndReturn("GetNumberGroup", 0, query);
            //mockClientManagement.ExpectAndReturn("GetNumberPerson", 0, query);
            //mockClientManagement.ExpectAndReturn("GetNumberVillages", 0, query);

            //mockClientManagement.ExpectAndReturn("SearchGroupByCriteres", list, numberTotalPage, query);
            //mockClientManagement.ExpectAndReturn("SearchPersonByCriteres", list, numberTotalPage, query);
            //mockClientManagement.ExpectAndReturn("SearchVillagesByCriteres", list, numberTotalPage, query);
            mockClientManagement.ExpectAndReturn("GetFoundRecordsNumber",0, query, 2, 1, 1, 1);

            mockClientManagement.ExpectAndReturn("SearchAllByCriteres", list, query,2, numberTotalPage,1, 1, 1);

            clientManagement = (ClientManager)mockClientManagement.MockInstance;
            clientServices = new ClientServices(clientManagement);

            List<ClientSearchResult> result = clientServices.FindTiers(out numberTotalPage, out numberOfRecords,query, 2,  numberTotalPage, 1, 1, 1);
            Assert.AreEqual(0, result.Count);
        }
 public LoanServices(InstallmentManager pInstalmentManager, ClientManager pClientManager, LoanManager pLoanManager)
 {
     _user = new User();
     _instalmentManager = pInstalmentManager;
     _clientManager = pClientManager;
     _loanManager = pLoanManager;
 }
        public void TestFixtureSetUp()
        {
            ProvisioningTable.GetInstance(new User()).Add(new ProvisioningRate { Number = 1, NbOfDaysMin = 0, NbOfDaysMax = 1000, Rate = 0 });
            ApplicationSettings.GetInstance("").DeleteAllParameters();
            ApplicationSettings.GetInstance("").AddParameter(OGeneralSettings.ACCOUNTINGPROCESS, OAccountingProcesses.Cash);
            ApplicationSettings.GetInstance("").AddParameter(OGeneralSettings.USECENTS, true);

            ApplicationSettings.GetInstance("").AddParameter(OGeneralSettings.CALCULATIONLATEFEESDURINGPUBLICHOLIDAYS, true);
            ApplicationSettings.GetInstance("").AddParameter(OGeneralSettings.DONOTSKIPWEEKENDSININSTALLMENTSDATE, false);
            ApplicationSettings.GetInstance("").AddParameter(OGeneralSettings.INCREMENTALDURINGDAYOFF, true);

            TechnicalSettings.UseOnlineMode = false;

            projectManager = new ProjectManager(DataUtil.TESTDB);
            creditManagement = new CreditContractManagement(DataUtil.TESTDB);
            installmentManagement = new InstallmentManager(DataUtil.TESTDB);
            clientManagement = new ClientManager(DataUtil.TESTDB);
            connectionManager = ConnectionManager.GetInstance(DataUtil.TESTDB);
            fundingLineManager = new FundingLineManager(DataUtil.TESTDB);
            userManager = new UserManager(DataUtil.TESTDB);
            _packageManager = new LoanProductManager(DataUtil.TESTDB);

            installment1 = new Installment();
            installment1.Number = 1;
            installment1.CapitalRepayment = 200;
            installment1.InterestsRepayment = 100;
            installment1.PaidCapital = 200;
            installment1.PaidInterests = 100;
            //to initialize Installment.FeesUnpaid, ocurrency is an object, must be initialized
            installment1.FeesUnpaid = 0;
            installment1.ExpectedDate = DateTime.Today.AddDays(-1);

            installment2 = new Installment();
            installment2.Number = 2;
            installment2.CapitalRepayment = 200;
            installment2.InterestsRepayment = 100;
            installment2.PaidCapital = 0;
            installment2.PaidInterests = 100;
            //to initialize Installment.FeesUnpaid, ocurrency is an object, must be initialized
            installment2.FeesUnpaid = 0;
            installment2.ExpectedDate = DateTime.Today.AddMonths(1);
        }
Example #12
0
 public LoanManager(string pTestDb, User pUser)
     : base(pTestDb)
 {
     _user = pUser;
     _userManager = new UserManager(pTestDb, _user);
     _packageManager = new LoanProductManager(pTestDb);
     _installmentTypeManagement = new InstallmentTypeManager(pTestDb);
     _installmentManagement = new InstallmentManager(pTestDb);
     _eventManagement = new EventManager(pTestDb);
     _fundingLineManager = new FundingLineManager(pTestDb);
     _clientManager = new ClientManager(pTestDb);
     _collateralProductManager = new CollateralProductManager(pTestDb);
     _paymentMethodManager = new PaymentMethodManager(pTestDb, pUser);
 }
Example #13
0
 public LoanManager(User pUser)
     : base(pUser)
 {
     _user = pUser;
     _userManager = new UserManager(pUser);
     _paymentMethodManager = new PaymentMethodManager(pUser);
     _packageManager = new LoanProductManager(pUser);
     _installmentTypeManagement = new InstallmentTypeManager(pUser);
     _installmentManagement = new InstallmentManager(pUser);
     _eventManagement = new EventManager(pUser);
     _fundingLineManager = new FundingLineManager(pUser);
     _projectManager = new ProjectManager(pUser, false);
     _clientManager = new ClientManager(pUser, false, false);
     _collateralProductManager = new CollateralProductManager(pUser);
     _economicActivityManager = new EconomicActivityManager(pUser);
 }
Example #14
0
 // MOCK
 public ClientServices(ClientManager clientManagement, ConnectionManager connectionManager)
 {
     _clientManagement = clientManagement;
     _connectionManager = connectionManager;
 }
        public void SetUp()
        {
            _DeleteDatas();
            _cltManagement = new ClientManager(DataUtil.TESTDB);
            _agriculture = _addDataForTesting.AddDomainOfApplicationAgriculture();
            _district = _addDataForTesting.AddDistrictIntoDatabase();
            _addDataForTesting.AddBranchIntoDatabase();

            _branch = new Branch {Id = 1, Name = "Default"};
            _person = new Person();
            _person.Active = true;
            _person.BadClient = false;
            _person.LoanCycle = 1;
            _person.City = "Dushambe";
            _person.District = _district;

            _person.FirstName = "Nicolas";
            _person.LastName = "BARON";
            _person.Sex = 'M';
            _person.IdentificationData = "123ARK3VC";
            _person.HouseHoldHead = true;
            _person.StudyLevel = "1";
            _person.SSNumber = "3333";
            _person.CAFNumber = "2424";
            _person.HousingSituation = "test";
            _person.UnemploymentMonths = 1;
            _person.Nationality = "France";
            _person.BirthPlace = "Nancy";
            _person.Email = "*****@*****.**";
            _person.SecondaryEmail = "*****@*****.**";
            _person.HomeType = "Maison";
            _person.ZipCode = "12345";
            _person.SecondaryZipCode = "123458";
            _person.SecondaryHomeType = "Maison";
            _person.Handicapped = true;
            _person.Status = OClientStatus.Inactive;
            _person.FollowUpComment = "Comment follow Up";
            _person.FirstContact = new DateTime(2009, 12, 25);
            _person.FirstAppointment = new DateTime(2010, 04, 01);
            _person.Sponsor1 = "coucou";
            _person.Sponsor1Comment = "coucou2";
            _person.Branch = _branch;

            _group = new Group();
            _group.Active = true;
            _group.BadClient = false;
            _group.City = "Dushambe";
            _group.LoanCycle = 2;
            _group.District = _district;
            _group.Name = "SCG";
            _group.ZipCode = "12345";
            _group.SecondaryZipCode = "123458";
            _group.Email = "*****@*****.**";
            _group.SecondaryEmail = "*****@*****.**";
            _group.HomeType = "Maison";
            _group.SecondaryHomeType = "Maison";
            _group.Status = OClientStatus.Active;
            _group.FollowUpComment = "Follow Up Comment Group";
            _group.Sponsor2 = "coucou";
            _group.Sponsor2Comment = "coucou2";
            _group.Branch = _branch;
        }
Example #16
0
        public void TestUpdatePerson()
        {
            AddDataForTestingTransaction addDataForTesting = new AddDataForTestingTransaction();
            clientManagement = new ClientManager(DataUtil.TESTDB);
            clientServices = new ClientServices(clientManagement);

            DeleteAllData();
            ApplicationSettingsServices _appSettings = ServicesProvider.GetInstance().GetApplicationSettingsServices();
            _appSettings.FillGeneralDatabaseParameter();
            _appSettings.UpdateSelectedParameter(OGeneralSettings.ID_PATTERN, "[0-9]{2}[A-Z]{2}");

            EconomicActivity agriculture = addDataForTesting.AddDomainOfApplicationAgriculture();
            District district = addDataForTesting.AddDistrictIntoDatabase();

            Person person = AddPerson(true, agriculture, 1, "Dushambe", district, "Nicolas", "MANGIN", 'M', "12ED");
            person.Branch = _branch;
            Assert.AreEqual(String.Empty, clientServices.SavePerson(ref person));

            person.FirstName = "floriane";
            person.IdentificationData = "34PP";
            Assert.AreEqual(String.Empty, clientServices.SavePerson(ref person));
        }
Example #17
0
 public LoanServices(User pUser)
     : base(pUser)
 {
     _user = pUser;
     _loanManager = new LoanManager(pUser);
     _instalmentManager = new InstallmentManager(pUser);
     _clientManager = new ClientManager(pUser, true, true);
     _branchService = new BranchService(pUser);
     _econimcActivityServices = new EconomicActivityServices(pUser);
     _ePs = ServicesProvider.GetInstance().GetEventProcessorServices();
     _accountingServices = new AccountingServices(pUser);
     _fundingLineServices = new FundingLineServices(pUser);
     _savingServices = new SavingServices(pUser);
     _savingEventManager = new SavingEventManager(pUser);
 }
Example #18
0
        public void TestUpdateGroup()
        {
            AddDataForTestingTransaction addDataForTesting = new AddDataForTestingTransaction();
            clientManagement = new ClientManager(DataUtil.TESTDB);
            clientServices = new ClientServices(clientManagement);

            DeleteAllData();

            Person leader = addDataForTesting.AddPerson();
            Person members = addDataForTesting.AddPersonBis();
            Person membersTer = addDataForTesting.AddPersonTer();
            Person membersQuater = addDataForTesting.AddPersonQuater();
            Group group = new Group
                              {
                                  Active = true,
                                  City = "Dushambe",
                                  District = leader.District,
                                  LoanCycle = 2,
                                  Name = "SCG",
                                  Leader =new Member{Tiers = leader,LoanShareAmount = 1000,CurrentlyIn = true,IsLeader = true,JoinedDate = TimeProvider.Today},
                                  Branch = _branch
                              };

            group.AddMember(new Member { Tiers = members, LoanShareAmount = 200, CurrentlyIn = true, IsLeader = false, JoinedDate = TimeProvider.Today });
            group.AddMember(new Member { Tiers = membersTer, LoanShareAmount = 400, CurrentlyIn = true, IsLeader = false, JoinedDate = TimeProvider.Today });
            group.AddMember(new Member { Tiers = membersQuater, LoanShareAmount = 700, CurrentlyIn = true, IsLeader = false, JoinedDate = TimeProvider.Today });

            Assert.AreEqual(String.Empty, clientServices.SaveSolidarityGroup(ref group));

            group.Name = "SCG2";
            Assert.AreEqual(String.Empty, clientServices.SaveSolidarityGroup(ref group));
        }
Example #19
0
 // MOCK
 public ClientServices(ApplicationSettings dataParam)
 {
     _clientManagement = new ClientManager(TESTDB);
     _connectionManager = ConnectionManager.GetInstance(TESTDB);
     _picturesServices = new PicturesServices(TESTDB);
     _dataParam = dataParam;
 }
Example #20
0
        public void TestIfClientCanBeAddToAGroupWhenClientIsALeader()
        {
            Person person = new Person {Id = 1, Active = false};
            Group group = new Group();

            mockClientManagement.ExpectAndReturn("IsLeader", true, person.Id);
            clientManagement = (ClientManager)mockClientManagement.MockInstance;
            clientServices = new ClientServices(clientManagement);

            clientServices.ClientCanBeAddToAGroup(person, group);
        }
Example #21
0
        public void TestIfClientCanBeAddToAGroupWhenClientIsActive()
        {
            Person person = new Person {Id = 1, Active = true};
            Group group = new Group();

            clientManagement = new ClientManager(DataUtil.TESTDB);
            clientServices = new ClientServices(clientManagement);

            clientServices.ClientCanBeAddToAGroup(person, group);
        }
        public void TestFixtureSetUp()
        {
            TechnicalSettings.UseOnlineMode = false;

            _DeleteDatas();
            _cltManagement = new ClientManager(DataUtil.TESTDB);
            _locations = new LocationsManager(DataUtil.TESTDB);
            _agriculture = _addDataForTesting.AddDomainOfApplicationAgriculture();
            _district = _addDataForTesting.AddDistrictIntoDatabase();
            _projectManager = new ProjectManager(DataUtil.TESTDB);
            ApplicationSettings settings = ApplicationSettings.GetInstance("");
        }
Example #23
0
        public LoanServices(InstallmentManager pInstalmentManager, ClientManager pClientManager,
                            LoanManager pLoanManager)
        {
            _user = new User();
            _instalmentManager = pInstalmentManager;
            _clientManager = pClientManager;
            _loanManager = pLoanManager;

            MefContainer.Current.Bind(this);
        }
Example #24
0
        public void TestFindTiersWhenTiersIsPersonAndRecordsAreFound()
        {
            int numberTotalPage = 1;
            int numberOfRecords = 1;
            string query = "nicolas";

            List<ClientSearchResult> listGroup = new List<ClientSearchResult>();

            for (int i = 1; i <= 15; i++)
            {
                listGroup.Add(new ClientSearchResult(i, "nicolas", OClientTypes.Person, true, 1, "district", "city", false, "OOOOO","test"));
            }

            //mockClientManagement.ExpectAndReturn("GetNumberGroup", 0, query);
            //mockClientManagement.ExpectAndReturn("GetNumberPerson", 0, query);
            //mockClientManagement.ExpectAndReturn("GetNumberVillages", 0, query);
            mockClientManagement.ExpectAndReturn("GetFoundRecordsNumber", 15, query, 1, 1, 1, 1);
            //mockClientManagement.ExpectAndReturn("SearchGroupByCriteres", listGroup, numberTotalPage, query);
            //mockClientManagement.ExpectAndReturn("SearchPersonByCriteres", listPerson, numberTotalPage, query);
            //mockClientManagement.ExpectAndReturn("SearchVillagesByCriteres", listVillages, numberTotalPage, query);
            mockClientManagement.ExpectAndReturn("SearchAllByCriteres", listGroup, query,1, numberTotalPage,1, 1, 1);
            clientManagement = (ClientManager)mockClientManagement.MockInstance;
            clientServices = new ClientServices(clientManagement);

            List<ClientSearchResult> result = clientServices.FindTiers(out numberTotalPage, out numberOfRecords, query, 1, numberTotalPage, 1, 1, 1);
            Assert.AreEqual(15, result.Count);
        }
Example #25
0
        public LoanServices(User pUser)
            : base(pUser)
        {
            _user = pUser;
            _loanManager = new LoanManager(pUser);
            _instalmentManager = new InstallmentManager(pUser);
            _clientManager = new ClientManager(pUser, true, true);
            _branchService = new BranchService(pUser);
            _econimcActivityServices = new EconomicActivityServices(pUser);
            _ePs = ServicesProvider.GetInstance().GetEventProcessorServices();
            _accountingServices = new AccountingServices(pUser);
            _fundingLineServices = new FundingLineServices(pUser);
            _savingServices = new SavingServices(pUser);
            _savingEventManager = new SavingEventManager(pUser);

            var settings = ApplicationSettings.GetInstance(string.Empty);
            var nonWorkingDate = NonWorkingDateSingleton.GetInstance(string.Empty);
            _configurationFactory = new OctopusScheduleConfigurationFactory(nonWorkingDate, settings);

            MefContainer.Current.Bind(this);
        }
Example #26
0
        public void TestCreatingContractForNonSolidaryGroupWithLoanCycles()
        {
            LoanProductManager productManager = new LoanProductManager(DataUtil.TESTDB);
            ProductServices productServices = new ProductServices(productManager);

            ClientManager clientManager = new ClientManager(DataUtil.TESTDB);
            ClientServices clientServices = new ClientServices(clientManager);

            Village village = new Village();
            Person person = clientServices.FindPersonById(2);
            person.LoanCycle = 0;

            VillageMember villageMember = new VillageMember();
            villageMember.Tiers = person;
            village.Members.Add(villageMember);

            person = clientServices.FindPersonById(4);
            person.LoanCycle = 1;

            villageMember = new VillageMember();
            villageMember.Tiers = person;
            village.Members.Add(villageMember);

            person = clientServices.FindPersonById(6);
            person.LoanCycle = 2;
            villageMember = new VillageMember();
            villageMember.Tiers = person;
            village.Members.Add(villageMember);

            var loanAmountCycle = GetLoanAmountCycles();
            var maturityCycles = GetMaturityCycles();
            var rateCycles = GetRateCycles();
            var entryFees = new List<EntryFee>();

            Currency currency = new Currency();
            currency.Id = 1;
            var nrp = new NonRepaymentPenaltiesNullableValues(100, 200, 10, 0.2);
            LoanProduct product = CreatePackage(
                                                "NewPackage68", //package name
                                                null, //anticipatedTotalRepaymentPenalties
                                                3, //anticipatedTotalRepaymentPenaltiesMin
                                                6, //anticipatedTotalRepaymentPenaltiesMax
                                                4, //grace period
                                                null, //gracePeriodMin
                                                null, //gracePeriodMax
                                                0.2m, //interestRate
                                                null, //interesrRateMin
                                                null, //interestRateMax
                                                10, //NmbOfInstallments
                                                null, //NmbOfInstallmentsMin
                                                null, //NmbOfInstallmentsMax
                                                entryFees, //List<EntryFee>
                                                nrp, //NonRepaymentPenalties
                                                null, //NonRepaymentPenaltiesMin
                                                null, //NonRepaymentPenaltiesMax
                                                _monthly, //InstallmentType
                                                2000, //amount
                                                null, //amountMin
                                                null, //AmountMax
                                                null, //ExoticInstallmentsTable
                                                2, //cycleId
                                                loanAmountCycle, //List<LoanAmountCycle>
                                                rateCycles, //List<RateCycle>
                                                maturityCycles, //List<MaturityCycle>
                                                "CODE1", //ProductCode
                                                null, //List<ProductClientType>
                                                null, //amountUnderLoc
                                                null, //amountUnderLocMin
                                                null, //amountUnderLocMax
                                                1, //anticipatedPartialRRepaymentPenalties
                                                null, //anticipatedPartialRRepaymentPenaltiesMin
                                                null, //anticipatedPartialRRepaymentPenaltiesMax
                                                null, //compulsoryAmount
                                                null, //compulsoryAmountMin
                                                null, //compulsoryAmountMax
                                                currency
                );
            product.ClientType = '-';
            product.ProductClientTypes = new List<ProductClientType>();
            product.AddedEntryFees = entryFees;
            product.Id=productServices.AddPackage(product);
            productServices.SaveAllCycleParams(loanAmountCycle, rateCycles, maturityCycles);

            foreach (VillageMember member in village.Members)
            {
                productServices.SetVillageMemberCycleParams(member, product.Id, ((Person)member.Tiers).LoanCycle);
            }

            for (int i = 0; i < village.Members.Count; i++)
            {
                int j = i;
                //to avoid index out of range exception (it occurs in product.LoanAmountCycleParams)
                if (i == product.LoanAmountCycleParams.Count) j = product.LoanAmountCycleParams.Count - 1;
                Assert.AreEqual(village.Members[i].Product.AmountMin, product.LoanAmountCycleParams[j].Min);
                Assert.AreEqual(village.Members[i].Product.AmountMax, product.LoanAmountCycleParams[j].Max);
                Assert.AreEqual(village.Members[i].Product.InterestRateMin, product.RateCycleParams[j].Min.Value);
                Assert.AreEqual(village.Members[i].Product.InterestRateMax, product.RateCycleParams[j].Max.Value);
                Assert.AreEqual(village.Members[i].Product.NbOfInstallmentsMin, (int) product.MaturityCycleParams[j].Min.Value);
                Assert.AreEqual(village.Members[i].Product.NbOfInstallmentsMax, (int) product.MaturityCycleParams[j].Max.Value);
            }

            foreach (VillageMember member in village.Members)
            {
                Loan loan = new Loan();
                loan.LoanPurpose = "Unit tests";
                loan.Product = member.Product;

                loan.Amount = member.Product.AmountMin;
                loan.AmountMin = member.Product.AmountMin;
                loan.AmountMax = member.Product.AmountMax;
                loan.InterestRate = member.Product.InterestRateMin.Value;
                loan.InterestRateMin = member.Product.InterestRateMin.Value;
                loan.InterestRateMax = member.Product.InterestRateMax.Value;
                loan.NbOfInstallments = member.Product.NbOfInstallmentsMin.Value;
                loan.NmbOfInstallmentsMin = member.Product.NbOfInstallmentsMin.Value;
                loan.NmbOfInstallmentsMax = member.Product.NbOfInstallmentsMax;
                loan.StartDate = TimeProvider.Now;
                loan.FirstInstallmentDate = loan.FirstInstallmentDate = DateTime.Now + new TimeSpan(30, 0, 0, 0);
                loan.CloseDate = TimeProvider.Now + new TimeSpan(365, 0, 0, 0);
                loan.EconomicActivityId = 1;

                loan.NonRepaymentPenalties = new NonRepaymentPenalties
                {
                    InitialAmount = member.Product.NonRepaymentPenalties.InitialAmount ?? 0,
                    OLB = member.Product.NonRepaymentPenalties.OLB ?? 0,
                    OverDuePrincipal = member.Product.NonRepaymentPenalties.OverDuePrincipal ?? 0,
                    OverDueInterest = member.Product.NonRepaymentPenalties.OverDueInterest ?? 0
                };
                loan.LoanEntryFeesList = new List<LoanEntryFee>();
                loan.InstallmentType = member.Product.InstallmentType;
                loan.AnticipatedTotalRepaymentPenalties = 0;
                loan.FundingLine = new FundingLine("New_Founding_line", false);
                loan.FundingLine.Currency = loan.Product.Currency;
                loan.FundingLine.Id = 1;
                loan.LoanOfficer = User.CurrentUser;
                loan.LoanOfficer.LastName = "Unit";
                loan.LoanOfficer.FirstName = "Test";
                loan.Synchronize = false;
                loan.ContractStatus = OContractStatus.Validated;
                loan.CreditCommitteeCode = "OK";
                loan.GracePeriod = 0;
                loan.GracePeriodOfLateFees = member.Product.GracePeriodOfLateFees;
                loan.AnticipatedPartialRepaymentPenalties = 2;
                loan.AnticipatedTotalRepaymentPenalties = 3;
                loan.LoanCycle = ((Person)member.Tiers).LoanCycle;
                loan.InstallmentList = new List<Installment>();
                loan.InstallmentList.Add(new Installment());
                loan.InstallmentList[0].ExpectedDate = TimeProvider.Now + new TimeSpan(60, 0, 0, 0);
                loan.InstallmentList[0].InterestsRepayment = 10;
                loan.InstallmentList[0].Number = 1;
                loan.InstallmentList[0].CapitalRepayment = 10;
                loan.InstallmentList[0].PaidInterests = 10;
                loan.InstallmentList[0].PaidCapital = 10;
                loan.InstallmentList[0].PaidDate = TimeProvider.Now;
                loan.InstallmentList[0].FeesUnpaid = 10;
                loan.InstallmentList[0].PaidFees = 10;
                loan.InstallmentList[0].Comment = "Unit test";
                loan.InstallmentList[0].IsPending = false;
                loan.InstallmentList[0].StartDate = TimeProvider.Now;
                loan.InstallmentList[0].OLB = 20;

                loan.InstallmentList.Add(new Installment());
                loan.InstallmentList[1].ExpectedDate = TimeProvider.Now + new TimeSpan(120, 0, 0, 0);
                loan.InstallmentList[1].InterestsRepayment = 10;
                loan.InstallmentList[1].Number = 2;
                loan.InstallmentList[1].CapitalRepayment = 10;
                loan.InstallmentList[1].PaidInterests = 10;
                loan.InstallmentList[1].PaidCapital = 10;
                loan.InstallmentList[1].PaidDate = TimeProvider.Now + new TimeSpan(120, 0, 0, 0);
                loan.InstallmentList[1].FeesUnpaid = 10;
                loan.InstallmentList[1].PaidFees = 10;
                loan.InstallmentList[1].Comment = "Unit test2";
                loan.InstallmentList[1].IsPending = false;
                loan.InstallmentList[1].StartDate = TimeProvider.Now.AddDays(60);
                loan.InstallmentList[1].OLB = 10;
                loan.Events = new EventStock();
                loan.AlignDisbursementDate = TimeProvider.Now;
                loan.CreditCommiteeDate = TimeProvider.Now;
                loan.Guarantors = new List<Guarantor>();
                loan.Collaterals = new List<ContractCollateral>();

                Project project;
                IClient client = member.Tiers;
                if (0 == client.Projects.Count)
                {
                    project = new Project("Village");
                    project.Name = "Village";
                    project.Code = "Village";
                    project.Aim = "Village";
                    project.BeginDate = TimeProvider.Now;
                    project.Id = ServicesProvider.GetInstance().GetProjectServices().SaveProject(project, client);
                    member.Tiers.AddProject(project);
                }
                project = client.Projects[0];
                client.District = new District(1, "Unit Test");
                client.Name = "Unit Test";

                ApplicationSettings appSettings = ApplicationSettings.GetInstance(User.CurrentUser.Md5);
                appSettings.UpdateParameter("ALLOWS_MULTIPLE_LOANS", 1);
                appSettings.UpdateParameter("CONTRACT_CODE_TEMPLATE", "Contract");

                ServicesProvider.GetInstance().GetContractServices().SaveLoan(ref loan, project.Id, ref client);
            }

            foreach (VillageMember member in village.Members)
            {
                member.ActiveLoans = ServicesProvider.GetInstance().GetContractServices().FindActiveContracts(member.Tiers.Id);
            }

            for (int i = 0; i < village.Members.Count; i++)
            {
                int j = i;
                //to avoid index out of range exception (it occurs in product.LoanAmountCycleParams)
                if (i == product.LoanAmountCycleParams.Count) j = product.LoanAmountCycleParams.Count - 1;
                for (int k = 0; k < village.Members[i].ActiveLoans.Count; k++)
                {
                    Assert.AreEqual(village.Members[i].ActiveLoans[k].AmountMin, loanAmountCycle[j].Min);
                    Assert.AreEqual(village.Members[i].ActiveLoans[k].AmountMax, loanAmountCycle[j].Max);
                    Assert.AreEqual(village.Members[i].ActiveLoans[k].Amount, loanAmountCycle[j].Min);
                    Assert.AreEqual(village.Members[i].ActiveLoans[k].InterestRateMin, (double?) rateCycles[j].Min.Value);
                    Assert.AreEqual(village.Members[i].ActiveLoans[k].InterestRateMax, (double?) rateCycles[j].Max.Value);
                    Assert.AreEqual(village.Members[i].ActiveLoans[k].InterestRate, (double?) rateCycles[j].Min.Value);
                    Assert.AreEqual(village.Members[i].ActiveLoans[k].NmbOfInstallmentsMin,
                                    (int) maturityCycles[j].Min.Value);
                    Assert.AreEqual(village.Members[i].ActiveLoans[k].NmbOfInstallmentsMax,
                                    (int) maturityCycles[j].Max.Value);
                    Assert.AreEqual(village.Members[i].ActiveLoans[k].NbOfInstallments, (int) maturityCycles[j].Min.Value);
                }
            }
        }
Example #27
0
 // MOCK
 public ClientServices(ClientManager clientManagement)
 {
     _clientManagement = clientManagement;
     _connectionManager = ConnectionManager.GetInstance(TESTDB);
     _dataParam = ApplicationSettings.GetInstance("");
     _picturesServices = new PicturesServices(TESTDB);
     _dataParam.DeleteAllParameters();
     _dataParam.AddParameter("GROUP_MIN_MEMBERS", 4);
     _dataParam.AddParameter("GROUP_MAX_MEMBERS", 10);
     _dataParam.AddParameter(OGeneralSettings.ALLOWSMULTIPLEGROUPS, 0);
     _dataParam.AddParameter("CITY_MANDATORY", true);
 }
Example #28
0
        public void TestSaveGroupWhenCityIsNotMandatory()
        {
            AddDataForTestingTransaction addDataForTesting = new AddDataForTestingTransaction();
            clientManagement = new ClientManager(DataUtil.TESTDB);
            clientServices = new ClientServices(clientManagement);
            branchManager = new BranchManager(DataUtil.TESTDB);
            //List<Branch> branchs = branchManager.SelectAll();

            ApplicationSettings dataParam = ApplicationSettings.GetInstance("");
            dataParam.DeleteAllParameters();
            dataParam.AddParameter(OGeneralSettings.GROUPMINMEMBERS, 4);
            dataParam.AddParameter(OGeneralSettings.GROUPMAXMEMBERS, 10);
            dataParam.AddParameter(OGeneralSettings.CITYMANDATORY, false);
            DeleteAllData();

            Person leader = addDataForTesting.AddPerson();
            Person members = addDataForTesting.AddPersonBis();
            Person membersTer = addDataForTesting.AddPersonTer();
            Person membersQuater = addDataForTesting.AddPersonQuater();
            Group group = new Group
                              {
                                  Active = true,
                                  City = null,
                                  District = leader.District,
                                  Name = "SCG",
                                  Leader = new Member { Tiers = leader, LoanShareAmount = 1000, CurrentlyIn = true, IsLeader = true, JoinedDate = TimeProvider.Today },
                                  LoanCycle = 3,
                                  Branch = _branch
                              };

            group.AddMember(new Member { Tiers = members, LoanShareAmount = 200, CurrentlyIn = true, IsLeader = false, JoinedDate = TimeProvider.Today });
            group.AddMember(new Member { Tiers = membersTer, LoanShareAmount = 400, CurrentlyIn = true, IsLeader = false, JoinedDate = TimeProvider.Today });
            group.AddMember(new Member { Tiers = membersQuater, LoanShareAmount = 700, CurrentlyIn = true, IsLeader = false, JoinedDate = TimeProvider.Today });

            Assert.AreEqual(String.Empty, clientServices.SaveSolidarityGroup(ref group));
        }
Example #29
0
 public FundingLineServices(FundingLineManager fundingLineManager, ClientManager clientManagement)
 {
     _fundingLineManager = fundingLineManager;
 }
Example #30
0
        public void SetUp()
        {
            _DeleteDatas();
            _cltManagement = new ClientManager(DataUtil.TESTDB);
            _agriculture = _addDataForTesting.AddDomainOfApplicationAgriculture();
            _district = _addDataForTesting.AddDistrictIntoDatabase();
            _addDataForTesting.AddBranchIntoDatabase();

            _branch = new Branch {Id = 1, Name = "Default"};
            _person = new Person();
            _person.Active = true;
            _person.BadClient = false;
            _person.LoanCycle = 1;
            _person.City = "Dushambe";
            _person.District = _district;

            _person.FirstName = "Nicolas";
            _person.LastName = "BARON";
            _person.Sex = 'M';
            _person.IdentificationData = "123ARK3VC";
            _person.Nationality = "France";
            _person.BirthPlace = "Nancy";
            _person.Email = "*****@*****.**";
            _person.SecondaryEmail = "*****@*****.**";
            _person.HomeType = "Maison";
            _person.ZipCode = "12345";
            _person.SecondaryZipCode = "123458";
            _person.SecondaryHomeType = "Maison";
            _person.Status = OClientStatus.Inactive;
            _person.FollowUpComment = "Comment follow Up";
            _person.Sponsor1 = "coucou";
            _person.Sponsor1Comment = "coucou2";
            _person.Branch = _branch;

            _group = new Group();
            _group.Active = true;
            _group.BadClient = false;
            _group.City = "Dushambe";
            _group.LoanCycle = 2;
            _group.District = _district;
            _group.Name = "SCG";
            _group.ZipCode = "12345";
            _group.SecondaryZipCode = "123458";
            _group.Email = "*****@*****.**";
            _group.SecondaryEmail = "*****@*****.**";
            _group.HomeType = "Maison";
            _group.SecondaryHomeType = "Maison";
            _group.Status = OClientStatus.Active;
            _group.FollowUpComment = "Follow Up Comment Group";
            _group.Sponsor2 = "coucou";
            _group.Sponsor2Comment = "coucou2";
            _group.Branch = _branch;
        }