Ejemplo n.º 1
0
        public void SelectFiewProjectsByClientId()
        {
            Project project1 = new Project();
            project1.ProjectStatus = OProjectStatus.Refused;
            project1.Code = "TEST";
            project1.Name = "PROJECT";
            project1.Aim = "Not Set";
            project1.BeginDate = TimeProvider.Today;
            Project project2 = new Project();
            project2.ProjectStatus = OProjectStatus.Refused;
            project2.Code = "TEST";
            project2.Name = "PROJECT";
            project2.Aim = "Not Set";
            project2.BeginDate = TimeProvider.Today;
            Project project3 = new Project();
            project3.ProjectStatus = OProjectStatus.Refused;
            project3.Code = "TEST";
            project3.Name = "PROJECT";
            project3.Aim = "Not Set";
            project3.BeginDate = TimeProvider.Today;

            Person person = new Person();
            person.Id = new DataHelper().AddGenericTiersIntoDatabase(OClientTypes.Person);

            ProjectManager projectManager = new ProjectManager(DataUtil.TESTDB);

            project1.Id = projectManager.AddProject(project1, person.Id, null);
            project2.Id = projectManager.AddProject(project2, person.Id, null);
            project3.Id = projectManager.AddProject(project3, person.Id, null);

            List<Project> list = projectManager.SelectProjectsByClientId(person.Id);

            Assert.AreEqual(3,list.Count);
        }
Ejemplo n.º 2
0
        public void SaveProject_AimEmpty_ThrowException()
        {
            var project = new Project("NotSet") {Name = "NotSet", Code = "NotSet", Aim = String.Empty};
            IClient client = new Person { Id = 1 };

            new ProjectServices(new User()).SaveProject(project, client);
        }
Ejemplo n.º 3
0
        public void SaveProject_CodeNull_ThrowException()
        {
            var project = new Project("NotSet") {Code = null};
            IClient client = new Person {Id = 1};

            new ProjectServices(new User()).SaveProject(project, client);
        }
Ejemplo n.º 4
0
        public void AddProjectAndSelectProjectById()
        {
            Project project = new Project();
            project.ProjectStatus = OProjectStatus.Refused;
            project.Code = "TEST";
            project.Name = "PROJECT";
            project.Aim = "Not Set";
            project.BeginDate = TimeProvider.Today;
            Person person = new Person();
            person.Id = new DataHelper().AddGenericTiersIntoDatabase(OClientTypes.Person);

            project.Credits.Add(_AddCredit());

            ProjectManager projectManager = new ProjectManager(DataUtil.TESTDB);

            int projectId = projectManager.AddProject(project,person.Id,null);

            Project selectedProject = projectManager.SelectProject(projectId);

            Assert.AreEqual(projectId, selectedProject.Id);
            Assert.AreEqual("TEST", selectedProject.Code);
            Assert.AreEqual("PROJECT", selectedProject.Name);
            Assert.AreEqual("Not Set", selectedProject.Aim);
            Assert.AreEqual(OProjectStatus.Refused, selectedProject.ProjectStatus);
            Assert.AreEqual(1,selectedProject.Credits.Count);
            Assert.AreEqual(TimeProvider.Today,selectedProject.BeginDate);
        }
Ejemplo n.º 5
0
 public int Add(Project project, int tiersId)
 {
     using (SqlConnection conn = GetConnection())
     using (SqlTransaction t = conn.BeginTransaction())
     {
         int id = Add(project, tiersId, t);
         t.Commit();
         return id;
     }
 }
Ejemplo n.º 6
0
        public void UpdateProjectStatut(Project pProject, SqlTransaction pTransaction)
        {
            const string q = "UPDATE [Projects] SET [status] = @status WHERE id = @id";

            using (OpenCbsCommand c = new OpenCbsCommand(q, pTransaction.Connection, pTransaction))
            {
                c.AddParam("@id", pProject.Id);
                c.AddParam("@status", (int) pProject.ProjectStatus);
                c.ExecuteNonQuery();
            }
        }
Ejemplo n.º 7
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            bool isError = false;

            if (_CheckIfMoneyIsEnough())
                if (!MessageBox.Show(MultiLanguageStrings.GetString(Ressource.VillageForm, "MoneyNotEnoughForAll.Text"), @"!",
                    MessageBoxButtons.YesNo).Equals(DialogResult.Yes))
                        return;

            if (_product.GracePeriod == null && !_CheckGracePeriod())
            {
                MessageBox.Show(MultiLanguageStrings.GetString(Ressource.VillageForm, "GracePeriodNotCorrect"),
                    MultiLanguageStrings.GetString(Ressource.VillageForm, "GracePeriod"), MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            foreach (ListViewItem item in lvMembers.Items)
            {
                if (item == _itemTotal) continue;
                if (!item.Checked) continue;
                if (_product.UseCompulsorySavings && item.SubItems[IdxCompulsorySavings].Tag == null)
                {
                    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;
                }

                /*if (item.SubItems[IdxPaymentMethod].Tag != null &&
                    item.SubItems[IdxPaymentMethod].Tag.ToString() == OPaymentMethods.Savings.ToString())
                {
                    if (_product.UseCompulsorySavings && item.SubItems[IdxCompulsorySavings].Tag == null)
                    {
                        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;
                    }
                }*/
            }

            if(!_nsgForm.Save()) return;

            Loan loan = null;
            VillageMember member;

            try
            {
                foreach (ListViewItem item in lvMembers.Items)
                {
                    if (!item.Checked || item == _itemTotal) continue;
                    member = item.Tag as VillageMember;
                    Project project;
                    if (null == member) continue;

                    OCurrency amount = (OCurrency)item.SubItems[IdxAmount].Tag;
                    decimal interest = (decimal)item.SubItems[IdxInterest].Tag;
                    int gracePeriod = (int)item.SubItems[IdxGracePeriod].Tag;
                    int installments = (int)item.SubItems[IdxInstallments].Tag;
                    DateTime date = Convert.ToDateTime(item.SubItems[IdxCreationDate].Tag);

                    //creation of loan
                    loan = new Loan(_product,
                                    amount,
                                    interest,
                                    installments,
                                    gracePeriod,
                                    date,
                                    _village.MeetingDay,
                                    User.CurrentUser,
                                    ServicesProvider.GetInstance().GetGeneralSettings(),
                                    ServicesProvider.GetInstance().GetNonWorkingDate(),
                                    CoreDomainProvider.GetInstance().GetProvisioningTable(),
                                    CoreDomainProvider.GetInstance().GetChartOfAccounts())
                    {
                        NonRepaymentPenalties =
                        {
                            InitialAmount = _product.NonRepaymentPenalties.InitialAmount ?? 0,
                            OLB = _product.NonRepaymentPenalties.OLB ?? 0,
                            OverDuePrincipal = _product.NonRepaymentPenalties.OverDuePrincipal ?? 0,
                            OverDueInterest = _product.NonRepaymentPenalties.OverDueInterest ?? 0
                        },
                        InstallmentType = _product.InstallmentType,
                        AnticipatedTotalRepaymentPenalties = 0,
                        FundingLine = item.SubItems[IdxFundingLine].Tag as FundingLine,
                        LoanOfficer = (User)item.SubItems[IdxLoanOfficer].Tag,
                        Synchronize = false,
                        ContractStatus = OContractStatus.Pending,
                        CreditCommitteeCode = string.Empty,
                        GracePeriod = gracePeriod,
                        GracePeriodOfLateFees = _product.GracePeriodOfLateFees,
                        AmountMin = member.Product.AmountMin,
                        AmountMax = member.Product.AmountMax,
                        InterestRateMin = member.Product.InterestRateMin,
                        InterestRateMax = member.Product.InterestRateMax,
                        NmbOfInstallmentsMin = member.Product.NbOfInstallmentsMin,
                        NmbOfInstallmentsMax = member.Product.NbOfInstallmentsMax
                    };
                    loan.InstallmentList =
                        ServicesProvider.GetInstance().GetContractServices().SimulateScheduleCreation(loan);
                    loan.LoanEntryFeesList = new List<LoanEntryFee>();
                    foreach (EntryFee fee in loan.Product.EntryFees)
                    {
                        LoanEntryFee loanEntryFee = new LoanEntryFee();
                        loanEntryFee.ProductEntryFee = fee;
                        loanEntryFee.ProductEntryFeeId = (int)fee.Id;
                        if (fee.Value.HasValue)
                            loanEntryFee.FeeValue = (decimal)fee.Value;
                        else
                            loanEntryFee.FeeValue = (decimal)fee.Min;
                        loan.LoanEntryFeesList.Add(loanEntryFee);
                    }

                    var client = member.Tiers;
                    if (0 == client.Projects.Count)
                    {
                        project = new Project("Village");
                        project.Name = "Village";
                        project.Code = "Village";
                        project.Aim = "Village";
                        project.BeginDate = date;
                        project.Id = ServicesProvider.GetInstance().GetProjectServices().SaveProject(project, client);
                        member.Tiers.AddProject(project);
                    }
                    project = client.Projects[0];

                    // Compulsory savings
                    if (_product.UseCompulsorySavings)
                    {
                        loan.CompulsorySavings = (SavingBookContract)item.SubItems[IdxCompulsorySavings].Tag;
                        loan.CompulsorySavingsPercentage = (int)item.SubItems[IdxCompulsoryPercentage].Tag;
                    }
                    var person = client as Person;
                    if (person == null) throw new ApplicationException("Member can not be other than person.");
                    loan.EconomicActivity = person.Activity;

                    ServicesProvider.GetInstance().GetContractServices().CheckLoanFilling(loan);
                    loan.NsgID = _village.Id;
                    ServicesProvider.GetInstance().GetContractServices().SaveLoan(ref loan, project.Id, ref client);
                    project.AddCredit(loan, loan.ClientType);
                    if (!_village.Active)
                    {
                        _village.Active = true;
                        ServicesProvider.GetInstance().GetContractServices().UpdateVillageStatus(_village);
                    }
                    loan.Closed = false;
                    client.Active = true;
                    client.Status = OClientStatus.Active;
                    member.ActiveLoans.Add(loan);
                }
            }
            catch (Exception ex)
            {
                isError = true;
                loan.ContractStatus = OContractStatus.Pending;
                new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog();
            }

            if (!isError)
            {
                DialogResult = DialogResult.OK;
                Close();
            }
        }
Ejemplo n.º 8
0
        public void InitializeCorporateForm(Corporate corporate, Project project)
        {
            ClientForm corporateForm = new ClientForm(corporate, this) { MdiParent = this };
            if (project != null)
                corporateForm.DisplayUserControl_ViewProject(project, null);

            corporateForm.Show();
        }
Ejemplo n.º 9
0
        private void InitializeClient(IClient pClient, int pContractId)
        {
            if (pClient is Person)
            {
                _person = (Person)pClient;
                _client = _person;
                _oClientType = OClientTypes.Person;
                InitializeUserControl(_oClientType, _mdiParent);
                InitializeTitle(string.Format("{0} {1}", _person.FirstName, _person.LastName));
            }
            if (pClient is Group)
            {
                _group = (Group)pClient;
                _client = _group;
                _oClientType = OClientTypes.Group;
                InitializeUserControl(_oClientType, _mdiParent);
                InitializeTitle(_group.Name);
            }
            if (pClient is Corporate)
            {
                _corporate = (Corporate)pClient;
                _client = _corporate;
                _oClientType = OClientTypes.Corporate;
                InitializeUserControl(_oClientType, _mdiParent);
                InitializeTitle(_corporate.Name);
            }

            _project = pClient.SelectProject(pContractId);
            _credit = _project.SelectCredit(pContractId);
            _credit.LoanEntryFeesList = ServicesProvider.GetInstance().GetContractServices().GetInstalledLoanEntryFees(_credit);
            _product = _credit.Product;

            if (_product.CycleId != null && _credit.Disbursed == false)
            {
                ServicesProvider.GetInstance().GetProductServices().SetCyclesParamsForContract(_product, _credit, _client, false);
            }
            else
            {
                if (_credit.Product.Amount.HasValue == false)
                {
                    _amountValueRange = new DecimalValueRange(_credit.Product.AmountMin.Value, _credit.Product.AmountMax.Value);
                    nudLoanAmount.Minimum = _credit.Product.AmountMin.Value;
                    nudLoanAmount.Maximum = _credit.Product.AmountMax.Value;
                }
                else
                {
                    nudLoanAmount.Minimum = nudLoanAmount.Maximum = _credit.Product.Amount.Value;
                }
                if (_credit.Product.NbOfInstallments.HasValue == false)
                {
                    nudLoanNbOfInstallments.Minimum = _credit.Product.NbOfInstallmentsMin.Value;
                    nudLoanNbOfInstallments.Maximum = _credit.Product.NbOfInstallmentsMax.Value;
                }
                else
                {
                    nudLoanNbOfInstallments.Minimum = nudLoanNbOfInstallments.Maximum = _credit.Product.NbOfInstallments.Value;
                }
            }

            if (ServicesProvider.GetInstance().GetGeneralSettings().UseProjects)
            {
                tabControlPerson.TabPages.Add(tabPageProject);
                DisplaySelectedProject(_project);
            }
            else
            {
                AddProject(_project);
            }

            tabControlPerson.TabPages.Add(tabPageLoansDetails);
            tabControlPerson.TabPages.Add(tabPageAdvancedSettings);
            tabControlPerson.TabPages.Add(tabPageLoanGuarantees);

            _credit.LoanInitialOfficer = _credit.LoanOfficer;

            InitializeTabPageLoansDetails(_credit);

            tabControlPerson.TabPages.Add(tabPageCreditCommitee);
            if (_credit.Disbursed)
            {
                tabControlPerson.TabPages.Add(tabPageLoanRepayment);
                //tabControlPerson.TabPages.Add(tabPageLAC);
                tabControlPerson.SelectedTab = tabPageLoanRepayment;
                InitializeTabPageLoanRepayment(_credit);
            }
            else if (_credit.ContractStatus == OContractStatus.Validated && !_credit.Disbursed)
            {
                tabControlPerson.SelectedTab = tabPageLoansDetails;
            }
        }
Ejemplo n.º 10
0
        private void AddProject(Project pProject)
        {
            if (ServicesProvider.GetInstance().GetGeneralSettings().UseProjects)
            {
                tabControlPerson.TabPages.Remove(tabPageProject);
                tabControlPerson.TabPages.Remove(tabPageLoansDetails);
                tabControlPerson.TabPages.Remove(tabPageAdvancedSettings);
                tabControlPerson.TabPages.Remove(tabPageLoanRepayment);

                tabControlPerson.TabPages.Remove(tabPageSavingDetails);
                tabControlPerson.TabPages.Remove(tabPageLoanGuarantees);

                tabControlPerson.TabPages.Add(tabPageProject);
                tabControlPerson.SelectedTab = tabPageProject;
                if ((pProject == null))
                {
                    _project = new Project();
                    pProject = _project;
                }

                DisplaySelectedProject(pProject);
            }
            else
            {
                tabControlPerson.TabPages.Remove(tabPageProject);

                bool IsTabContractsExists = false;

                foreach (TabPage tab in tabControlPerson.TabPages)
                {
                    if (tab == tabPageContracts)
                        IsTabContractsExists = true;
                }

                if (!IsTabContractsExists && _client != null)
                {
                    tabControlPerson.TabPages.Add(tabPageContracts);
                    panelLoansContracts.Controls.Add(pnlLoans);

                    if (_project != null)
                    {
                        tabControlPerson.SelectedTab = tabPageContracts;
                    }

                    if (_personUserControl != null)
                    {
                        FillProjectLoans(_personUserControl.Person.Projects, _personUserControl.Person.FirstName);
                    }

                    if (_groupUserControl != null)
                    {
                        FillProjectLoans(_groupUserControl.Group.Projects, _groupUserControl.Group.Name);
                    }

                    if (_corporateUserControl != null)
                    {
                        FillProjectLoans(_corporateUserControl.Corporate.Projects, _corporateUserControl.Corporate.Name);
                    }
                }
            }
        }
Ejemplo n.º 11
0
        private void AddProject(Project pProject)
        {
            tabControlPerson.TabPages.Remove(tabPageProject);

                bool IsTabContractsExists = false;

                foreach (TabPage tab in tabControlPerson.TabPages)
                {
                    if (tab == tabPageContracts)
                        IsTabContractsExists = true;
                }

                if (!IsTabContractsExists && _client != null)
                {
                    tabControlPerson.TabPages.Add(tabPageContracts);
                    panelLoansContracts.Controls.Add(pnlLoans);

                    if (_project != null)
                    {
                        tabControlPerson.SelectedTab = tabPageContracts;
                    }

                    if (_personUserControl != null)
                    {
                        FillProjectLoans(_personUserControl.Person.Projects, _personUserControl.Person.FirstName);
                    }

                    if (_groupUserControl != null)
                    {
                        FillProjectLoans(_groupUserControl.Group.Projects, _groupUserControl.Group.Name);
                    }

                    if (_corporateUserControl != null)
                    {
                        FillProjectLoans(_corporateUserControl.Corporate.Projects, _corporateUserControl.Corporate.Name);
                    }
                }
        }
Ejemplo n.º 12
0
 public CorporateUserControl(Project pProject)
 {
     InitializeComponent();
     InitializeUserControlsAddress();
     _corporate = new Corporate();
 }
Ejemplo n.º 13
0
 public void UpdateProjectStatus(Project pProject, SqlTransaction pTransaction)
 {
     _ProjectManager.UpdateProjectStatut(pProject, pTransaction);
 }
Ejemplo n.º 14
0
 public void UpdateProjectStatus(Project pProject)
 {
     using (SqlConnection conn = _ProjectManager.GetConnection())
     using (SqlTransaction transaction = conn.BeginTransaction())
     {
         UpdateProjectStatus(pProject, transaction);
         transaction.Commit();
     }
 }
Ejemplo n.º 15
0
        public int SaveProject(Project pProject, IClient pClient)
        {
            if (pClient.Id == 0)
                throw new OpenCbsProjectSaveException(OpenCbsProjectSaveExceptionEnum.ClientIsEmpty);

            if (string.IsNullOrEmpty(pProject.Name))
                throw new OpenCbsProjectSaveException(OpenCbsProjectSaveExceptionEnum.NameIsEmpty);

            if (string.IsNullOrEmpty(pProject.Aim))
                throw new OpenCbsProjectSaveException(OpenCbsProjectSaveExceptionEnum.AimIsEmpty);

            if (pProject.BeginDate == DateTime.MinValue)
                throw new OpenCbsProjectSaveException(OpenCbsProjectSaveExceptionEnum.BeginDateEmpty);

            if (pProject.CorporateCA.HasValue && pProject.CorporateCA.Value == -1)
                throw new OpenCbsProjectSaveException(OpenCbsProjectSaveExceptionEnum.CAIsBad);

            if (pProject.CorporateFinancialPlanAmount.HasValue && pProject.CorporateFinancialPlanAmount.Value == -1)
                throw new OpenCbsProjectSaveException(OpenCbsProjectSaveExceptionEnum.FinancialPlanAmountIsBad);

            if (pProject.CorporateFinancialPlanTotalAmount.HasValue && pProject.CorporateFinancialPlanTotalAmount.Value == -1)
                throw new OpenCbsProjectSaveException(OpenCbsProjectSaveExceptionEnum.FinancialTotalPlanAmountIsBad);

            foreach (FollowUp up in pProject.FollowUps)
            {
                if(!up.CA.HasValue)
                    throw new OpenCbsProjectSaveException(OpenCbsProjectSaveExceptionEnum.CACannotBeNullInFollowUp);
            }

            using (SqlConnection conn = _ProjectManager.GetConnection())
            using (SqlTransaction t = conn.BeginTransaction())
            {
                try
                {
                    if (String.IsNullOrEmpty(pClient.Branch.Code))
                    {
                        pClient.Branch.Code = _branchService.FindBranchCodeByClientId(pClient.Id, t);
                    }
                    if (string.IsNullOrEmpty(pProject.Code))
                        pProject.Code = pProject.GenerateProjectCode(pClient.Branch.Code);
                    int id = 0;
                    if (pProject.Id == 0)
                    {
                        pProject.SetStatus();
                        pClient.SetStatus();

                        _ClientServices.UpdateClientStatus(pClient, t);
                        id = _ProjectManager.Add(pProject, pClient.Id, t);
                    }
                    else
                    {
                        _ProjectManager.UpdateProject(pProject, t);
                        id = pProject.Id;
                    }
                    t.Commit();
                    return id;
                }
                catch (Exception)
                {
                    t.Rollback();
                    throw;
                }
            }
        }
Ejemplo n.º 16
0
        private void DisplaySelectedProject(Project pProject)
        {
            InitializeProjectCombobox();
            Text = _title;
            if (pProject.Name != "Not Set")
                Text += " - " + pProject.Name;

            _followUpList = pProject.FollowUps;
            buttonProjectSave.Text = pProject.Id != 0 ? MultiLanguageStrings.GetString(Ressource.ClientForm, "UpdateProject.Text") : MultiLanguageStrings.GetString(Ressource.ClientForm, "SaveProject.Text");

            tabPageProject.Text = pProject.Id != 0 ? string.Format(MultiLanguageStrings.GetString(Ressource.ClientForm, "Project.Text") + " - [{0}]", _project.Name) : MultiLanguageStrings.GetString(Ressource.ClientForm, "Project.Text");

            textBoxProjectName.Text = pProject.Name;
            textBoxProjectCode.Text = pProject.Code;
            textBoxProjectAim.Text = pProject.Aim;
            textBoxProjectAbilities.Text = pProject.Abilities;
            textBoxProjectExperience.Text = pProject.Experience;
            textBoxProjectMarket.Text = pProject.Market;
            textBoxProjectConcurrence.Text = pProject.Concurrence;
            textBoxProjectPurpose.Text = pProject.Purpose;
            dateTimePickerProjectBeginDate.Value = pProject.BeginDate == DateTime.MinValue
                                                       ? TimeProvider.Today
                                                       : pProject.BeginDate;

            tBProjectCorporateName.Text = pProject.CorporateName;
            tBProjectCorporateSIRET.Text = pProject.CorporateSIRET;
            cBProjectJuridicStatus.Text = pProject.CorporateJuridicStatus;
            cBProjectFiscalStatus.Text = pProject.CorporateFiscalStatus;
            cBProjectAffiliation.Text = pProject.CorporateRegistre;
            tBProjectCA.Text = pProject.CorporateCA.HasValue ? pProject.CorporateCA.GetFormatedValue(true) : "";
            numericUpDownProjectJobs.Value = pProject.CorporateNbOfJobs.HasValue ? pProject.CorporateNbOfJobs.Value : 0;
            cBProjectFinancialPlanType.Text = pProject.CorporateFinancialPlanType;
            tBProjectFinancialPlanAmount.Text = pProject.CorporateFinancialPlanAmount.HasValue ? pProject.CorporateFinancialPlanAmount.GetFormatedValue(true) : "";
            tBProjectFinancialPlanTotal.Text = pProject.CorporateFinancialPlanTotalAmount.HasValue ? pProject.CorporateFinancialPlanTotalAmount.GetFormatedValue(true) : "";

            projectAddressUserControl.ZipCode = pProject.ZipCode;
            projectAddressUserControl.HomeType = pProject.HomeType;
            projectAddressUserControl.Email = pProject.Email;
            projectAddressUserControl.District = pProject.District;
            projectAddressUserControl.City = pProject.City;
            projectAddressUserControl.Comments = pProject.Address;
            projectAddressUserControl.HomePhone = pProject.HomePhone;
            projectAddressUserControl.PersonalPhone = pProject.PersonalPhone;

            DisplayContracts(pProject.Credits);
            DisplayFollowUps(_followUpList);
        }
Ejemplo n.º 17
0
 public void DisplayUserControl_ViewProject(object sender, EventArgs e)
 {
     _project = (Project)sender;
     AddProject(_project);
 }
Ejemplo n.º 18
0
        public void TestAddPersonAndSelectPersonByIdNonNullAuthorizedValues()
        {
            Project project = new Project("TEST");
            project.Name = "TEST";
            project.Code = "NotSet";
            project.Aim = "NotSet";
            project.BeginDate = TimeProvider.Today;
            _person.AddProject(project);
            _person.Id = _cltManagement.AddPerson(_person);
            project.Id = _projectManager.Add(project, _person.Id);

            Person selectedPerson = _cltManagement.SelectPersonById(_person.Id);
            _AssertPerson(_person, selectedPerson);
        }
Ejemplo n.º 19
0
        private void FillProjectLoans(List<Project> pProjects, string Name)
        {
            List<Loan> _credits = new List<Loan>();

            if (pProjects.Count > 0)
            {
                foreach (Project proj in pProjects)
                {
                    foreach (Loan _loan in proj.Credits)
                    {
                        _credits.Add(_loan);
                    }
                }
                DisplayContracts(_credits);

                _project = pProjects[0];
                //tabControlPerson.SelectedTab = tabPageProjectLoans;
                tabControlPerson.SelectedTab = tabPageContracts;
            }
            else
            {
                if (Name != null)
                {
                    _project = new Project();
                    textBoxProjectName.Text = "NotSet";
                    textBoxProjectAim.Text = "NotSet";
                    dateTimePickerProjectBeginDate.Value = DateTime.Now;
                    SaveProject();
                    tabControlPerson.SelectedTab = tabPageDetails;
                }
            }
        }
Ejemplo n.º 20
0
 public void InitializeGroupForm(Group group, Project project)
 {
     ClientForm personForm = new ClientForm(group, this, _applicationController)
     {
         MdiParent = this,
         Text =
             string.Format("{0} [{1}]", MultiLanguageStrings.GetString(Ressource.ClientForm, "Group.Text"),
                           group.Name)
     };
     if (project != null)
         personForm.DisplayUserControl_ViewProject(project, null);
     personForm.Show();
 }
Ejemplo n.º 21
0
        private void SaveProject()
        {
            IClient client = null;
            if (_oClientType == OClientTypes.Corporate) client = _corporateUserControl.Corporate;
            if (_oClientType == OClientTypes.Person) client = _personUserControl.Person;
            if (_oClientType == OClientTypes.Group) client = _groupUserControl.Group;

            if (client != null)
                if (client.Id != 0)
                {
                    if (_project.Id == 0)
                    {
                        Project newProject = new Project("TEST");
                        newProject.Name = textBoxProjectName.Text;
                        newProject.Aim = textBoxProjectAim.Text;
                        newProject.BeginDate = dateTimePickerProjectBeginDate.Value;
                        newProject.Abilities = textBoxProjectAbilities.Text;
                        newProject.Experience = textBoxProjectExperience.Text;
                        newProject.Market = textBoxProjectMarket.Text;
                        newProject.Concurrence = textBoxProjectConcurrence.Text;
                        newProject.Purpose = textBoxProjectPurpose.Text;
                        newProject.ClientCode = string.Format("{0}/{1}", client.NbOfProjects, client.Id);
                        newProject.CorporateName = tBProjectCorporateName.Text;
                        newProject.CorporateSIRET = tBProjectCorporateSIRET.Text;
                        newProject.CorporateJuridicStatus = cBProjectJuridicStatus.SelectedItem == null ? "-" : cBProjectJuridicStatus.SelectedItem.ToString();
                        newProject.CorporateFiscalStatus = cBProjectFiscalStatus.SelectedItem == null ? "-" : cBProjectFiscalStatus.SelectedItem.ToString();
                        newProject.CorporateCA = ServicesHelper.ConvertStringToNullableDecimal(tBProjectCA.Text, -1);
                        newProject.CorporateNbOfJobs = (int)numericUpDownProjectJobs.Value;
                        newProject.CorporateFinancialPlanType = cBProjectFinancialPlanType.SelectedItem == null ? "-" : cBProjectFinancialPlanType.SelectedItem.ToString();
                        newProject.CorporateFinancialPlanAmount = ServicesHelper.ConvertStringToNullableDecimal(tBProjectFinancialPlanAmount.Text, -1);
                        newProject.CorporateFinancialPlanTotalAmount = ServicesHelper.ConvertStringToNullableDecimal(tBProjectFinancialPlanTotal.Text, -1);
                        newProject.CorporateRegistre = cBProjectAffiliation.Text;

                        newProject.ZipCode = projectAddressUserControl.ZipCode;
                        newProject.HomeType = projectAddressUserControl.HomeType;
                        newProject.Email = projectAddressUserControl.Email;
                        newProject.District = projectAddressUserControl.District;
                        newProject.City = projectAddressUserControl.City;
                        newProject.Address = projectAddressUserControl.Comments;
                        newProject.HomePhone = projectAddressUserControl.HomePhone;
                        newProject.PersonalPhone = projectAddressUserControl.PersonalPhone;
                        newProject.FollowUps = _followUpList;

                        newProject.Id = ServicesProvider.GetInstance().GetProjectServices().SaveProject(newProject, client);

                        _project = ServicesProvider.GetInstance().GetProjectServices().FindProjectById(newProject.Id);
                        client.AddProject(_project);

                    }
                    else
                    {
                        _project.Name = textBoxProjectName.Text;
                        _project.Aim = textBoxProjectAim.Text;
                        _project.BeginDate = dateTimePickerProjectBeginDate.Value;
                        _project.Abilities = textBoxProjectAbilities.Text;
                        _project.Experience = textBoxProjectExperience.Text;
                        _project.Market = textBoxProjectMarket.Text;
                        _project.Concurrence = textBoxProjectConcurrence.Text;
                        _project.Purpose = textBoxProjectPurpose.Text;
                        _project.FollowUps = _followUpList;

                        _project.CorporateName = tBProjectCorporateName.Text;
                        _project.CorporateSIRET = tBProjectCorporateSIRET.Text;
                        _project.CorporateJuridicStatus = cBProjectJuridicStatus.SelectedItem == null ? "-" : cBProjectJuridicStatus.SelectedItem.ToString();
                        _project.CorporateFiscalStatus = cBProjectFiscalStatus.SelectedItem == null ? "-" : cBProjectFiscalStatus.SelectedItem.ToString();
                        _project.CorporateCA = ServicesHelper.ConvertStringToNullableDecimal(tBProjectCA.Text, -1);
                        _project.CorporateNbOfJobs = (int)numericUpDownProjectJobs.Value;
                        _project.CorporateFinancialPlanType = cBProjectFinancialPlanType.SelectedItem == null ? "-" : cBProjectFinancialPlanType.SelectedItem.ToString();
                        _project.CorporateFinancialPlanAmount = ServicesHelper.ConvertStringToNullableDecimal(tBProjectFinancialPlanAmount.Text, -1);
                        _project.CorporateFinancialPlanTotalAmount = ServicesHelper.ConvertStringToNullableDecimal(tBProjectFinancialPlanTotal.Text, -1);
                        _project.CorporateRegistre = cBProjectAffiliation.Text;

                        _project.ZipCode = projectAddressUserControl.ZipCode;
                        _project.HomeType = projectAddressUserControl.HomeType;
                        _project.Email = projectAddressUserControl.Email;
                        _project.District = projectAddressUserControl.District;
                        _project.City = projectAddressUserControl.City;
                        _project.Address = projectAddressUserControl.Comments;
                        _project.HomePhone = projectAddressUserControl.HomePhone;
                        _project.PersonalPhone = projectAddressUserControl.PersonalPhone;

                        ServicesProvider.GetInstance().GetProjectServices().SaveProject(_project, client);
                    }
                    DisplayProjects(client.Projects);
                    DisplaySavings(client.Savings);
                    DisplaySelectedProject(_project);
                }
                else
                {
                    MessageBox.Show("Please, save client before!");
                }
        }
Ejemplo n.º 22
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);
                }
            }
        }
Ejemplo n.º 23
0
 public void InitializePersonForm(Person person, Project project)
 {
     ClientForm personForm = new ClientForm(person, this)
     {
         MdiParent = this,
         Text = string.Format(
                "{0} [{1}]",
                MultiLanguageStrings.GetString(Ressource.ClientForm, "Person.Text"),
                person.Name)
     };
     if (project != null)
         personForm.DisplayUserControl_ViewProject(project, null);
     personForm.Show();
 }
Ejemplo n.º 24
0
        private void _CheckTiersAndDisplayIt(ProjetSearchResult result)
        {
            try
            {

                _client = ServicesProvider.GetInstance().GetClientServices().FindTiers(result.TiersId, result.Type);
                _projet = ServicesProvider.GetInstance().GetProjectServices().FindProjectById(result.Id);
                _projet.Client = _client;

                if (result.Type == OClientTypes.Person)
                        ((LotrasmicMainWindowForm)_mdiForm).InitializePersonForm((Person)_client,_projet);
                if (result.Type == OClientTypes.Group)
                        ((LotrasmicMainWindowForm)_mdiForm).InitializeGroupForm((Group)_client,_projet);
                if (result.Type == OClientTypes.Corporate)
                        ((LotrasmicMainWindowForm)_mdiForm).InitializeCorporateForm((Corporate)_client,_projet);

                    Close();
            }
            catch (Exception ex)
            {
                new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog();
            }
        }
Ejemplo n.º 25
0
        public void UpdateProject(Project pProject, SqlTransaction pSqlTransaction)
        {
            const string q = @"UPDATE Projects SET status = @status,name = @name,code = @code,aim = @aim,
                begin_date = @beginDate, abilities = @abilities, experience = @experience, market = @market, concurrence = @concurrence,
                purpose = @purpose ,[corporate_name] = @corporateName, [corporate_juridicStatus] = @corporateJuridicStatus,
                [corporate_FiscalStatus] = @corporateFiscalStatus,[corporate_siret] = @corporateSiret,[corporate_CA] = @corporateCA,
                [corporate_nbOfJobs] = @corporateNbOfJobs,[corporate_financialPlanType] = @corporateFinancialPlanType,
                [corporateFinancialPlanAmount] = @corporateFinancialPlanAmount,[corporate_financialPlanTotalAmount] = @corporateFinancialPlanTotalAmount,
                [address] = @address,[city] = @city, [zipCode] = @zipCode, [district_id] = @districtId, [home_phone] = @homePhone,
                [personalPhone] = @personalPhone, [Email] = @Email, [hometype] = @hometype,
                [corporate_registre] = @corporateRegistre WHERE id = @id";

            using (OpenCbsCommand c = new OpenCbsCommand(q, pSqlTransaction.Connection, pSqlTransaction))
            {
                c.AddParam("@status", (int) pProject.ProjectStatus);
                c.AddParam("@id", pProject.Id);
                c.AddParam("@name", pProject.Name);
                c.AddParam("@code", pProject.Code);
                c.AddParam("@aim", pProject.Aim);
                c.AddParam("@beginDate", pProject.BeginDate);
                c.AddParam("@abilities", pProject.Abilities);
                c.AddParam("@experience", pProject.Experience);
                c.AddParam("@market", pProject.Market);
                c.AddParam("@concurrence", pProject.Concurrence);
                c.AddParam("@purpose", pProject.Purpose);

                c.AddParam("@corporateName", pProject.CorporateName);
                c.AddParam("@corporateJuridicStatus", pProject.CorporateJuridicStatus);
                c.AddParam("@corporateFiscalStatus", pProject.CorporateFiscalStatus);
                c.AddParam("@corporateRegistre", pProject.CorporateRegistre);
                c.AddParam("@corporateSiret", pProject.CorporateSIRET);
                c.AddParam("@corporateCA", pProject.CorporateCA);
                c.AddParam("@corporateNbOfJobs", pProject.CorporateNbOfJobs);
                c.AddParam("@corporateFinancialPlanType", pProject.CorporateFinancialPlanType);
                c.AddParam("@corporateFinancialPlanAmount", pProject.CorporateFinancialPlanAmount);
                c.AddParam("@corporateFinancialPlanTotalAmount", pProject.CorporateFinancialPlanTotalAmount);
                c.AddParam("@address", pProject.Address);
                c.AddParam("@city", pProject.City);
                c.AddParam("@zipCode", pProject.ZipCode);
                if (pProject.District != null)
                    c.AddParam("@districtId", pProject.District.Id);
                else
                    c.AddParam("@districtId", null);
                c.AddParam("@homePhone", pProject.HomePhone);
                c.AddParam("@personalPhone", pProject.PersonalPhone);
                c.AddParam("@Email", pProject.Email);
                c.AddParam("@hometype", pProject.HomeType);

                c.ExecuteNonQuery();
            }
            foreach (FollowUp up in pProject.FollowUps)
            {
                if (up.Id == 0)
                    _AddFollowUp(up, pProject.Id, pSqlTransaction);
                else
                    _UpdateFollowUp(up, pSqlTransaction);
            }
        }
Ejemplo n.º 26
0
        public void SetUp()
        {
            addDataForTesting.DeleteInstallments();
            addDataForTesting.DeleteCreditContract();
            addDataForTesting.DeletedProject();
            addDataForTesting.DeleteInstallmentTypes();
            addDataForTesting.DeleteTiers();
            addDataForTesting.DeleteAllUser();
            addDataForTesting.AddGenericFundingLine();
            collateral = addDataForTesting.AddCollateral();

            biWeekly = addDataForTesting.AddBiWeeklyInstallmentType();
            package.Id = addDataForTesting.AddGenericPackage();
            package.Name = "Package";
            user.Id = addDataForTesting.AddUserWithIntermediaryAttributs();
            //addDataForTesting.AddGenericFundingLine();
            tiers.Id = addDataForTesting.AddGenericTiersIntoDatabase(OClientTypes.Group);
            tiers.LoanCycle = 1;

            _project = new Project();
            _project.ProjectStatus = OProjectStatus.Refused;
            _project.Name = "NotSet";
            _project.Code = "NotSet";
            _project.Aim = "NotSet";

            _project.BeginDate = TimeProvider.Today;
            _project.Id = projectManager.Add(_project, tiers.Id, null);

            //fundingLine = new FundingLine("AFD130",false);

            credit = new Loan(new User(), ApplicationSettings.GetInstance(""), NonWorkingDateSingleton.GetInstance(""), ProvisioningTable.GetInstance(new User()));
            credit.LoanOfficer = user;

            credit.BranchCode = "DU";
            credit.CreationDate = DateTime.Today.AddDays(-1);
            credit.StartDate = DateTime.Today;
            credit.CloseDate = DateTime.Today.AddDays(1);
            credit.Closed = true;
            credit.Rural = true;
            credit.Product = package;
            credit.Amount = 1000m;
            credit.InterestRate = 3;
            credit.InstallmentType = biWeekly;
            credit.NbOfInstallments = 2;
            credit.NonRepaymentPenalties.InitialAmount = 2.5;
            credit.AnticipatedRepaymentPenalties = 1.2;
            credit.Disbursed = false;
            credit.LoanOfficer = user;
            credit.FundingLine = new FundingLine { Name = "AFD130" };
            credit.EntryFees = 2.05;
            credit.WriteOff = false;
            credit.Rescheduled = false;
            credit.BadLoan = false;

            credit.AddInstallment(installment1);
            credit.AddInstallment(installment2);
        }
Ejemplo n.º 27
0
        private Project GetProject(OpenCbsReader reader)
        {
            Project project = new Project();
            project.Id = reader.GetInt("id");
            project.ProjectStatus = (OProjectStatus)reader.GetSmallInt("status");
            project.Code = reader.GetString("code");
            project.Name = reader.GetString("name");
            project.Aim = reader.GetString("aim");
            project.BeginDate = reader.GetDateTime("begin_date");
            project.Abilities = reader.GetString("abilities");
            project.Experience = reader.GetString("experience");
            project.Market = reader.GetString("market");
            project.Concurrence = reader.GetString("concurrence");
            project.Purpose = reader.GetString("purpose");

            project.CorporateName = reader.GetString("corporate_name");
            project.CorporateJuridicStatus = reader.GetString("corporate_juridicStatus");
            project.CorporateFiscalStatus = reader.GetString("corporate_FiscalStatus");
            project.CorporateSIRET = reader.GetString("corporate_siret");
            project.CorporateRegistre = reader.GetString("corporate_registre");
            project.CorporateCA = reader.GetMoney("corporate_CA");

            project.CorporateNbOfJobs = reader.GetNullInt("corporate_nbOfJobs");
            project.CorporateFinancialPlanType = reader.GetString("corporate_financialPlanType");
            project.CorporateFinancialPlanAmount = reader.GetMoney("corporateFinancialPlanAmount");
            project.CorporateFinancialPlanTotalAmount = reader.GetMoney("corporate_financialPlanTotalAmount");
            project.Address = reader.GetString("address");
            project.City = reader.GetString("city");
            project.ZipCode = reader.GetString("zipCode");
            int? districtId = reader.GetNullInt("district_id");
            if (districtId.HasValue)
                project.District = new District { Id = districtId.Value };

            project.HomePhone = reader.GetString("home_phone");
            project.PersonalPhone = reader.GetString("personalPhone");
            project.Email = reader.GetString("Email");
            project.HomeType = reader.GetString("hometype");

            return project;
        }
Ejemplo n.º 28
0
        public Loan UpdateContractStatus(Loan credit, Project project, IClient client, bool undoValidation)
        {
            CheckOperationDate(credit.CreditCommiteeDate.Value);
            using (SqlConnection conn = _loanManager.GetConnection())
            using (SqlTransaction sqlTransaction = conn.BeginTransaction())
            {

                try
                {
                    if (credit.StartDate.Date < ((DateTime) credit.CreditCommiteeDate).Date)
                        throw new OpenCbsContractSaveException(
                            OpenCbsContractSaveExceptionEnum.LoanWasValidatedLaterThanDisbursed);

                    Loan tempLoan = credit.Copy();

                    LoanValidationEvent lve = null;
                    if (undoValidation)
                    {
                        if (tempLoan.Events.GetLastLoanNonDeletedEvent != null &&
                            tempLoan.Events.GetLastLoanNonDeletedEvent is LoanValidationEvent)
                        {
                            ((LoanValidationEvent) tempLoan.Events.GetLastLoanNonDeletedEvent).Amount = credit.Amount;
                            _ePs.CancelFireEvent(tempLoan.Events.GetLastLoanNonDeletedEvent, sqlTransaction, tempLoan,
                                                 tempLoan.Product.Currency.Id);
                            tempLoan.Events.GetLastLoanNonDeletedEvent.Deleted = true;
                        }
                    }
                    else if (tempLoan.ContractStatus == OContractStatus.Validated)
                    {
                        lve = new LoanValidationEvent();
                        lve.Amount = tempLoan.Amount;
                        lve.Date = tempLoan.CreditCommiteeDate.Value;
                        lve.Cancelable = true;
                        lve.User = _user;
                        lve.Deleted = false;

                        if (Teller.CurrentTeller != null && Teller.CurrentTeller.Id != 0)
                            lve.TellerId = Teller.CurrentTeller.Id;

                        _ePs.FireEvent(lve, tempLoan, sqlTransaction);
                        tempLoan.Events.Add(lve);
                    }
                    _loanManager.UpdateLoanStatus(tempLoan, sqlTransaction);
                    project.SetStatus();
                    new ProjectServices(_user).UpdateProjectStatus(project, sqlTransaction);
                    client.SetStatus();
                    new ClientServices(_user).UpdateClientStatus(client, sqlTransaction);

                    FundingLineEvent pendingFundingLineEvent = new FundingLineEvent
                        {
                            Code =
                                string.Concat(
                                    OFundingLineEventTypes.Commitment.
                                                           ToString(), "/", tempLoan.Code),
                            Type = OFundingLineEventTypes.Commitment,
                            FundingLine =
                                _fundingLineServices.SelectFundingLineById(
                                    tempLoan.FundingLine.Id, sqlTransaction),
                            Movement = OBookingDirections.Debit,
                            CreationDate = TimeProvider.Now,
                            Amount = tempLoan.Amount
                            ,
                            AttachTo = lve
                        };
                    //if this is a new validate event, register it, otherwise delete previous validate event
                    if (tempLoan.ContractStatus == OContractStatus.Validated)
                        tempLoan.FundingLine.AddEvent(_fundingLineServices.AddFundingLineEvent(pendingFundingLineEvent,
                                                                                               sqlTransaction));
                    else if (undoValidation)
                    {
                        DeleteFundingLineEvent(ref tempLoan, pendingFundingLineEvent, sqlTransaction);
                    }
                    sqlTransaction.Commit();
                    return tempLoan;
                }
                catch (Exception ex)
                {
                    sqlTransaction.Rollback();
                    throw ex;
                }
            }
        }
Ejemplo n.º 29
0
        public int Add(Project pProject, int pTiersId, SqlTransaction pSqlTransac)
        {
            const string q = @"INSERT INTO Projects([tiers_id],[status],[name],[code],[aim],[begin_date],
                [abilities],[experience],[market],[concurrence],[purpose],[corporate_name],[corporate_juridicStatus]
                ,[corporate_FiscalStatus],[corporate_siret],[corporate_CA],[corporate_nbOfJobs],[corporate_financialPlanType]
                ,[corporateFinancialPlanAmount],[corporate_financialPlanTotalAmount],[address],[city],[zipCode],[district_id]
                ,[home_phone],[personalPhone],[Email],[hometype],[corporate_registre])
                VALUES(@tiersId,@status,@name,@code,@aim,@beginDate,@abilities,@experience,@market,@concurrence,@purpose,
                @corporateName,@corporateJuridicStatus,@corporateFiscalStatus,@corporateSiret,@corporateCA,@corporateNbOfJobs,
                @corporateFinancialPlanType, @corporateFinancialPlanAmount, @corporateFinancialPlanTotalAmount,
                @address,@city, @zipCode, @districtId, @homePhone, @personalPhone,@Email,@hometype,@corporateRegistre) SELECT SCOPE_IDENTITY()";

            using (OpenCbsCommand c = new OpenCbsCommand(q, pSqlTransac.Connection, pSqlTransac))
            {
                c.AddParam("@tiersId", pTiersId);
                c.AddParam("@status", (int) pProject.ProjectStatus);
                c.AddParam("@name", pProject.Name);
                c.AddParam("@code", pProject.Code);
                c.AddParam("@aim", pProject.Aim);
                c.AddParam("@beginDate", pProject.BeginDate);
                c.AddParam("@abilities", pProject.Abilities);
                c.AddParam("@experience", pProject.Experience);
                c.AddParam("@market", pProject.Market);
                c.AddParam("@concurrence",  pProject.Concurrence);
                c.AddParam("@purpose", pProject.Purpose);

                c.AddParam("@corporateName", pProject.CorporateName);
                c.AddParam("@corporateJuridicStatus", pProject.CorporateJuridicStatus);
                c.AddParam("@corporateFiscalStatus", pProject.CorporateFiscalStatus);
                c.AddParam("@corporateRegistre", pProject.CorporateRegistre);
                c.AddParam("@corporateSiret", pProject.CorporateSIRET);
                c.AddParam("@corporateCA", pProject.CorporateCA);
                c.AddParam("@corporateNbOfJobs", pProject.CorporateNbOfJobs);
                c.AddParam("@corporateFinancialPlanType", pProject.CorporateFinancialPlanType);
                c.AddParam("@corporateFinancialPlanAmount", pProject.CorporateFinancialPlanAmount);
                c.AddParam("@corporateFinancialPlanTotalAmount", pProject.CorporateFinancialPlanTotalAmount);
                c.AddParam("@address", pProject.Address);
                c.AddParam("@city", pProject.City);
                c.AddParam("@zipCode", pProject.ZipCode);
                if (pProject.District != null)
                    c.AddParam("@districtId", pProject.District.Id);
                else
                    c.AddParam("@districtId", null);
                c.AddParam("@homePhone", pProject.HomePhone);
                c.AddParam("@personalPhone", pProject.PersonalPhone);
                c.AddParam("@Email", pProject.Email);
                c.AddParam("@hometype", pProject.HomeType);

                pProject.Id = Convert.ToInt32(c.ExecuteScalar());
            }
            foreach (FollowUp followUp in pProject.FollowUps)
            {
                _AddFollowUp(followUp, pProject.Id, pSqlTransac);
            }

            foreach (Loan credit in pProject.Credits)
            {
                _creditManager.Add(credit, pProject.Id, pSqlTransac);
            }
            return pProject.Id;
        }
Ejemplo n.º 30
0
        public void DisplayClient(IClient pClient, Project project)
        {
            if (pClient is Person)
            {
                _person = (Person)pClient;
                _oClientType = OClientTypes.Person;
                InitializeUserControl(_oClientType, _mdiParent);
                InitializeTitle(string.Format("{0} {1}", _person.FirstName, _person.LastName));
            }
            if (pClient is Group)
            {
                _group = (Group)pClient;
                _oClientType = OClientTypes.Group;
                InitializeUserControl(_oClientType, _mdiParent);
                InitializeTitle(_group.Name);
            }
            if (pClient is Corporate)
            {
                _corporate = (Corporate)pClient;
                _oClientType = OClientTypes.Corporate;
                InitializeUserControl(_oClientType, _mdiParent);
                InitializeTitle(_corporate.Name);
            }

            tabControlPerson.TabPages.Add(tabPageProject);
            DisplaySelectedProject(_project);
        }