Exemplo n.º 1
0
 public int Add(ISavingsContract savings, Client client)
 {
     using (SqlConnection connection = GetConnection())
     using (SqlTransaction transaction = connection.BeginTransaction())
         try
         {
             int result = Add(savings, client, transaction);
             transaction.Commit();
             return result;
         }
         catch (Exception)
         {
             transaction.Rollback();
             throw;
         }
 }
Exemplo n.º 2
0
 public string GenerateSavingCode(Client pClient, 
                                  int pSavingsCount, 
                                  string pCodeTemplate, 
                                  string pImfCode, 
                                  string pBranchCode)
 {
     switch (pCodeTemplate)
     {
         case "BC/YY/PC-PS/CN-ID":
             {
                 string clientName = (pClient is Person) ? ((Person)pClient).LastName : pClient.Name;
                 clientName = clientName.Replace(" ", "");
                 string productCode = Product.Code.Replace(" ", "");
                 Code = "S/{0}/{1}/{2}-{3}/{4}-{5}";
                 Code = string.Format(Code,
                                      pBranchCode,
                                      CreationDate.Year,
                                      productCode.Substring(0, Math.Min(productCode.Length, 5)).ToUpper(),
                                      pSavingsCount + 1,
                                      clientName.Substring(0, Math.Min(clientName.Length, 4)).ToUpper(),
                                      pClient.Id);
                 break;
             }
         case "IC/BC/CS/ID":
             {
                 string clientCode = pClient.Id.ToString().PadLeft(5, '0');
                 string savingsCount = (pSavingsCount + 1).ToString().PadLeft(2, '0');
                 Code = string.Format("{0}/{1}/{2}/{3}", pImfCode, pBranchCode, savingsCount, clientCode);
                 break;
             }
     }
     return Code;
 }
Exemplo n.º 3
0
        private void personUserControl_ButtonSaveClick(object sender, EventArgs e)
        {
            if (_personUserControl.PersonSaved)
            {
                _person = _personUserControl.Person;
                _client = _person;
                if (_mdiParent != null)
                    ((LotrasmicMainWindowForm)_mdiParent).SetInfoMessage(string.Format("Person {0} {1} saved", _person.FirstName, _person.LastName));
                InitializeTitle(string.Format("{1} {0}", _person.FirstName, _person.LastName));
                if (_closeFormAfterSave)
                {
                    DialogResult = DialogResult.OK;
                    Close();
                }
                if (!tabControlPerson.TabPages.Contains(tabPageContracts))
                {
                    tabControlPerson.TabPages.Add(tabPageContracts);
                    panelLoansContracts.Controls.Add(pnlLoans);
                }

            }
            else
            {
                _person = null;
                //DialogResult = DialogResult.Cancel;
            }
        }
Exemplo n.º 4
0
        public ClientForm(
            IClient pClient,
            int pContractId,
            Form pMdiParent,
            string selectedTab,
            IApplicationController applicationController = null)
            : this(applicationController)
        {
            _mdiParent = pMdiParent;
            _listGuarantors = new List<Guarantor>();
            _collaterals = new List<ContractCollateral>();
            _loanShares = new List<LoanShare>();

            _client = (Client)pClient;
            InitLoanOfficers(_client);

            InitControls();
            InitializeClient(pClient, pContractId);
            if (_credit != null)
                foreach (LoanShare ls in _credit.LoanShares)
                    _loanShares.Add(ls);

            tabControlPerson.SelectTab(selectedTab);
            InitializeTabPageAdvancedSettings();

            LoadLoanDetailsExtensions();
        }
Exemplo n.º 5
0
        public ClientForm(IClient pClient, int pContractId, Form pMdiParent, string selectedTab)
            : this()
        {
            _mdiParent = pMdiParent;
            _listGuarantors = new List<Guarantor>();
            _collaterals = new List<ContractCollateral>();
            _loanShares = new List<LoanShare>();

            _client = (Client)pClient;
            InitLoanOfficers(_client);

            InitializeComponent();
            InitControls();
            InitializeClient(pClient, pContractId);
            if (_credit != null)
                foreach (LoanShare ls in _credit.LoanShares)
                    _loanShares.Add(ls);

            tabControlPerson.SelectTab(selectedTab);
            InitializeTabPageAdvancedSettings();

            bool active = _credit != null && _credit.ContractStatus == OContractStatus.Active;
            //InitializeCustomizableFields(OCustomizableFieldEntities.Loan, pContractId, active);
            LoadLoanDetailsExtensions();
            LoadLoanDetailsButtons();
        }
Exemplo n.º 6
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;
            }
        }
Exemplo n.º 7
0
        public List<SavingEvent> Reopen(OCurrency pReopenAmount, ISavingsContract pSaving, DateTime pDate, User pUser, Client pClient)
        {
            using (SqlConnection conn = _savingManager.GetConnection())
            using (SqlTransaction sqlTransaction = conn.BeginTransaction())
            {
                try
                {
                    List<SavingEvent> events = pSaving.Reopen(pReopenAmount, pDate, pUser, "Reopen savings account", false);

                    foreach (SavingEvent savingEvent in events)
                        _ePS.FireEvent(savingEvent, pSaving, sqlTransaction);

                    _savingManager.UpdateStatus(pSaving.Id, pSaving.Status, pSaving.ClosedDate);
                    sqlTransaction.Commit();
                    return events;
                }
                catch (Exception)
                {
                    sqlTransaction.Rollback();
                    throw;
                }
            }
        }
Exemplo n.º 8
0
 private void CorporateUserControl_ButtonSaveClick(object sender, EventArgs e)
 {
     if (_corporateUserControl.CorporateSaved)
     {
         _corporate = _corporateUserControl.Corporate;
         _client = _corporate;
         ((LotrasmicMainWindowForm)_mdiParent).SetInfoMessage(string.Format("Corporate {0} saved", _corporate.Name));
         InitializeTitle(_corporate.Name);
         if (!tabControlPerson.TabPages.Contains(tabPageContracts))
         {
             tabControlPerson.TabPages.Add(tabPageContracts);
             panelLoansContracts.Controls.Add(pnlLoans);
         }
     }
 }
Exemplo n.º 9
0
        public int GetSavingCount(Client pClient)
        {
            if (pClient == null) throw new OpenCbsTiersSaveException(OpenCbsTiersSaveExceptionEnum.TiersIsNull);

            return _savingManager.GetNumberOfSavings(pClient.Id);
        }
Exemplo n.º 10
0
        public bool IsCompuslorySavingsValid(Loan pLoan, SavingBookContract pSaving, Client pClient)
        {
            if (pLoan.Product.Currency.Id != pSaving.Product.Currency.Id)
                throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.LoanHasNotSameCurrency);

            //if (saving.Id == 0)
            if (new ClientServices(_user).FindTiersByContractId(pLoan.Id).Id != pClient.Id)
                    throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.LoanHasNotSameClient);

            //if (loan.Id == 0)
            if (new ClientServices(_user).FindTiersBySavingsId(pSaving.Id).Id != pClient.Id)
                    throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.LoanHasNotSameClient);

            return true;
        }
Exemplo n.º 11
0
        protected override void SetUp()
        {
            base.SetUp();

            ChartOfAccounts.SuppressAll();

            _savingManager = (SavingManager)container["SavingManager"];
            _savingEventManager = (SavingEventManager)container["SavingEventManager"];

            _client = new Person { Id = 6 };
            _user = new User { Id = 1 };
            User.CurrentUser = _user;
            _product = new SavingsBookProduct
            {
                Id = 1,
                Name = "SavingProduct1",
                InitialAmountMin = 100,
                InitialAmountMax = 500,
                BalanceMin = 0,
                BalanceMax = 1000,
                WithdrawingMin = 100,
                WithdrawingMax = 150,
                DepositMin = 200,
                DepositMax = 250,
                TransferMin = 100,
                TransferMax = 200,
                InterestRateMin = 0.2,
                InterestRateMax = 0.3,
                InterestBase = OSavingInterestBase.Daily,
                InterestFrequency = OSavingInterestFrequency.EndOfMonth,
                Currency = new Currency { Id = 1 },
                WithdrawFeesType = OSavingsFeesType.Flat,
                FlatWithdrawFees = 10,
                TransferFeesType = OSavingsFeesType.Rate,
                RateTransferFees = 0.1
            };

            _saving = new SavingBookContract(ApplicationSettings.GetInstance(""),  _user, new DateTime(2009, 01, 01), _product, null)
            {
                Code = "S/CR/2009/SAVIN-1/BAR-1",
                InterestRate = 0.2,
                FlatWithdrawFees = 10,
                RateTransferFees = 0.1
            };
            _saving.FirstDeposit(1000, new DateTime(2009, 01, 01), null, new User(), Teller.CurrentTeller);

            _savingTarget = _saving = new SavingBookContract(ApplicationSettings.GetInstance(""),  _user, new DateTime(2009, 01, 01), _product, null)
            {
                Code = "S/CR/2009/SAVIN-1/BAR-2",
                InterestRate = 0.2,
            };

            _saving.InitialAmount = 1000;
            _saving.EntryFees = 10;
            _saving.SavingsOfficer = _user;
            _saving.NumberOfPeriods = 0;
            _saving.Id = _savingManager.Add(_saving, _client);
            _savingTarget.Id = _savingManager.Add(_savingTarget, _client);

            Branch branch = new Branch {Id = 1, Name = "Default", Code = "Default"};
            _saving.Branch = branch;
            _savingTarget.Branch = branch;
        }
Exemplo n.º 12
0
        public List<SavingEvent> Reopen(OCurrency pReopenAmount, ISavingsContract pSaving, DateTime pDate, User pUser, Client pClient)
        {
            using (SqlConnection conn = _savingManager.GetConnection())
            using (SqlTransaction sqlTransaction = conn.BeginTransaction())
            {
                try
                {
                    List<SavingEvent> events = pSaving.Reopen(pReopenAmount, pDate, pUser, "Reopen savings account", false);

                    foreach (SavingEvent savingEvent in events)
                    {
                        _ePS.FireEvent(savingEvent, pSaving, sqlTransaction);
                        ServicesProvider.GetInstance()
                           .GetContractServices()
                           .CallInterceptor(new Dictionary<string, object>
                            {
                                {"Event", savingEvent},
                                {"RecoveryAccount", true},
                                {"SqlTransaction", sqlTransaction}
                            });
                    }

                    _savingManager.UpdateStatus(pSaving.Id, pSaving.Status, pSaving.ClosedDate);
                    sqlTransaction.Commit();
                    return events;
                }
                catch (Exception)
                {
                    sqlTransaction.Rollback();
                    throw;
                }
            }
        }
Exemplo n.º 13
0
        private void OnClosing(object sender, FormClosingEventArgs e)
        {
            if (DialogResult.OK == DialogResult) return;
            _person = null;
            _corporate = null;
            _client = null;

            if (_group != null)
                _group.Dispose();
        }
Exemplo n.º 14
0
        public ClientForm(Person pPerson, Form pMdiParent)
            : this()
        {
            _mdiParent = pMdiParent;
            _person = pPerson;
            _client = pPerson;
            InitLoanOfficers(_client);
            _listGuarantors = new List<Guarantor>();
            _collaterals = new List<ContractCollateral>();
            _loanShares = new List<LoanShare>();

            InitializeComponent();
            InitControls();
            _oClientType = OClientTypes.Person;
            InitializeUserControl(OClientTypes.Person, pMdiParent);
            InitializeTitle(string.Format("{0} {1}", pPerson.FirstName, pPerson.LastName));
        }
Exemplo n.º 15
0
 public int SaveContract(ISavingsContract saving, Client client)
 {
     return SaveContract(saving, client, null);
 }
Exemplo n.º 16
0
        public ClientForm(Corporate pCorporate, Form pMdiParent)
            : this()
        {
            _mdiParent = pMdiParent;
            _corporate = pCorporate;
            _client = pCorporate;
            InitLoanOfficers(_client);
            _listGuarantors = new List<Guarantor>();

            _collaterals = new List<ContractCollateral>();
            _loanShares = new List<LoanShare>();
            InitializeComponent();
            InitControls();
            _oClientType = OClientTypes.Corporate;
            InitializeUserControl(OClientTypes.Corporate, pMdiParent);
            InitializeTitle(_corporate.Name);
        }
Exemplo n.º 17
0
        public int SaveContract(ISavingsContract saving, Client client, Action<SqlTransaction, int> action)
        {
            if (client == null)
                throw new OpenCbsTiersSaveException(OpenCbsTiersSaveExceptionEnum.TiersIsNull);

            ValidateSavingsContract(saving, client);

            int savingsCount = _savingManager.GetNumberOfSavings(client.Id);

            saving.GenerateSavingCode(
                client,
                savingsCount,
                ApplicationSettings.GetInstance(_user.Md5).SavingsCodeTemplate,
                ApplicationSettings.GetInstance(_user.Md5).ImfCode,
                client.Branch.Code
                );

            saving.Status = OSavingsStatus.Pending;

            if (((SavingBookContract) saving).UseTermDeposit)
            {
                ((SavingBookContract) saving).NextMaturity =
                    DateCalculationStrategy.GetNextMaturity(
                        saving.CreationDate,
                        ((SavingBookContract) saving).Product.Periodicity,
                        ((SavingBookContract) saving).NumberOfPeriods);
            }

            using (SqlConnection connection = _savingManager.GetConnection())
            using (SqlTransaction sqlTransaction = connection.BeginTransaction())
            {
                try
                {

                    saving.Id = _savingManager.Add(saving, client, sqlTransaction);
                    string code = saving.Code + '/' + saving.Id.ToString(CultureInfo.InvariantCulture);
                    _savingManager.UpdateSavingContractCode(saving.Id, code, sqlTransaction);
                    if (action != null) action(sqlTransaction, saving.Id);
                    sqlTransaction.Commit();

                    return saving.Id;
                }
                catch (Exception)
                {
                    sqlTransaction.Rollback();
                    throw;
                }
            }
        }
Exemplo n.º 18
0
        public ClientForm(Group pGroup, Form pMdiParent)
            : this()
        {
            _mdiParent = pMdiParent;
            _group = pGroup;
            _client = pGroup;
            InitLoanOfficers(_client);
            _listGuarantors = new List<Guarantor>();
            _collaterals = new List<ContractCollateral>();
            _loanShares = new List<LoanShare>();

            InitializeComponent();
            InitControls();
            _oClientType = OClientTypes.Group;
            InitializeUserControl(OClientTypes.Group, pMdiParent);
            InitializeTitle(_group.Name);
        }
Exemplo n.º 19
0
        public void UpdateContract(SavingBookContract pSaving, Client pClient)
        {
            SavingBookContract oldSavings = (SavingBookContract)_savingManager.Select(pSaving.Id);

            foreach (Loan loan in oldSavings.Loans)
            {
                if (loan != null && (loan.ContractStatus == OContractStatus.Active || loan.ContractStatus == OContractStatus.Validated))
                    throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.CompulsorySavingsLinkedToLoan);

                if (loan != null)
                    if (new ClientServices(_user).FindTiersByContractId(loan.Id).Id != new ClientServices(_user).FindTiersBySavingsId(pSaving.Id).Id)
                        throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.LoanHasNotSameClient);
            }
        }
Exemplo n.º 20
0
 private void GroupUserControl_ButtonSaveClick(object sender, EventArgs e)
 {
     if (_groupUserControl.GroupSaved)
     {
         _group = _groupUserControl.Group;
         _client = _group;
         ((LotrasmicMainWindowForm)_mdiParent).SetInfoMessage(string.Format("Group {0} saved", _group.Name));
         InitializeTitle(_group.Name);
         if (!tabControlPerson.TabPages.Contains(tabPageContracts))
         {
             tabControlPerson.TabPages.Add(tabPageContracts);
             panelLoansContracts.Controls.Add(pnlLoans);
         }
     }
     else
         _group = null;
 }
Exemplo n.º 21
0
        public bool ValidateSavingsContract(ISavingsContract saving, Client client)
        {
            if (!IsProductCorrect(saving))
                throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.ProductIsInvalid);
            if (!IsInterestRateCorrect(saving))
                throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.InterestRateIsInvalid);
            if (!IsWithdrawFeesCorrect((SavingBookContract)saving))
                throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.WithdrawFeesIsInvalid);

            if (!IsTransferFeesCorrect((SavingBookContract)saving))
                throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.TransferFeesIsInvalid);

            if (!IsDepositFeesCorrect((SavingBookContract)saving))
                throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.DepositFeesIsInvalid);

            if (!IsCloseFeesCorrect((SavingBookContract)saving))
                throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.CloseFeesIsInvalid);

            if (!IsManagementFeesCorrect((SavingBookContract)saving))
                throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.ManagementFeesIsInvalid);

            if (!IsAgioFeesCorrect((SavingBookContract)saving))
                throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.AgioFeesIsInvalid);

            if (((SavingBookContract)saving).Loans != null)
            {
                //IsLoanValid((Saving)saving, pClient);

                //if (!_IsLoanAmountCorrect((Saving)saving, ((Saving)saving).Loan))
                //    throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.InitialAmountIsInvalid);
            }
            else
            {
                if (!IsInitialAmountCorrect(saving))
                    throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.InitialAmountIsInvalid);
            }
            if (((SavingBookContract)saving).UseTermDeposit)
            {
                if (((SavingBookContract)saving).Rollover != OSavingsRollover.PrincipalAndInterests)
                {
                    if (((SavingBookContract)saving).TransferAccount == null)
                        throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.TransferAccountIsInvalid);
                }

            }

            return true;
        }
Exemplo n.º 22
0
        private void OnClosing(object sender, FormClosingEventArgs e)
        {
            if (DialogResult.OK == DialogResult) return;
            _person = null;
            _corporate = null;
            _client = null;

            if (_group != null)
                _group.Dispose();

            //if (_project != null)
            //    _project.Dispose();

            //_credit.Dispose();
            //DialogResult = DialogResult.Cancel;
        }
Exemplo n.º 23
0
        public int Add(ISavingsContract savings, Client client, SqlTransaction sqlTransac)
        {
            const string sqlText = @"INSERT INTO [SavingContracts]
                (
                    [product_id],
                    [user_id],
                    [code],
                    [status],
                    [tiers_id],
                    [creation_date],
                    [interest_rate],
                    [closed_date],
                    [savings_officer_id],
                    [initial_amount],
                    [entry_fees],
                    [nsg_id]
                )
                VALUES
                (
                    @product_id,
                    @user_id,
                    @code,
                    @status,
                    @tiers_id,
                    @creation_date,
                    @interest_rate,
                    @closedDate,
                    @savings_officer_id,
                    @initial_amount,
                    @entry_fees,
                    @nsg_id
                )
                SELECT CONVERT(int, SCOPE_IDENTITY())";

            using (OpenCbsCommand cmd = new OpenCbsCommand(sqlText, sqlTransac.Connection, sqlTransac))
            {
                cmd.AddParam("@product_id",  savings.Product.Id);
                cmd.AddParam("@user_id", savings.User.Id);
                cmd.AddParam("@code", savings.Code);
                cmd.AddParam("@status",  (int)savings.Status);
                cmd.AddParam("@tiers_id", client.Id);
                cmd.AddParam("@creation_date", savings.CreationDate);
                cmd.AddParam("@interest_rate", savings.InterestRate);
                cmd.AddParam("@closedDate",  savings.ClosedDate);
                cmd.AddParam("@savings_officer_id", savings.SavingsOfficer.Id);
                cmd.AddParam("@initial_amount",  savings.InitialAmount);
                cmd.AddParam("@entry_fees", savings.EntryFees);
                cmd.AddParam("@nsg_id",  savings.NsgID);

                savings.Id = int.Parse(cmd.ExecuteScalar().ToString());
            }

            AddSavingsBookContract((SavingBookContract)savings, sqlTransac);

            return savings.Id;
        }
Exemplo n.º 24
0
        public void SetCyclesParamsForContract(LoanProduct product, Loan credit, Client client, bool isContractForCreation)
        {
            if (isContractForCreation)
            {
                if (product.LoanAmountCycleParams == null
                    || product.RateCycleParams == null
                    || product.MaturityCycleParams == null)
                {
                    product.LoanAmountCycleParams =
                        ServicesProvider.GetInstance().GetProductServices().GetLoanAmountCycleParameters((int)product.CycleId);
                    product.RateCycleParams =
                        ServicesProvider.GetInstance().GetProductServices().GetInterestRateCycleParams((int)product.CycleId);
                    product.MaturityCycleParams =
                        ServicesProvider.GetInstance().GetProductServices().GetMaturityCycleParams(product.Id, (int)product.CycleId);
                }

                if (product.LoanAmountCycleParams.Count != 0 &&
                    product.RateCycleParams.Count != 0 &&
                    product.MaturityCycleParams.Count != 0)
                {
                    SetLoanAmountCycle(product, client.LoanCycle);
                    SetRateCycle(product, client.LoanCycle);
                    SetMaturityCycle(product, client.LoanCycle);
                }
            }
            else if (credit != null)
            {
                product.AmountMin = credit.AmountMin;
                product.AmountMax = credit.AmountMax;
                product.InterestRateMin = credit.InterestRateMin;
                product.InterestRateMax = credit.InterestRateMax;
                product.NbOfInstallmentsMin = credit.NmbOfInstallmentsMin;
                product.NbOfInstallmentsMax = credit.NmbOfInstallmentsMax;
            }
        }
Exemplo n.º 25
0
        private static void checkStandardFormats(Client client)
        {
            //For all the regexes: If a particular regex is set, only then the following validation takes place

            //ZipCode checking according to a regex setting (which is set in the db used)
            if (string.IsNullOrEmpty(ApplicationSettings.GetInstance("").StandardZipCode)) { }
            else
            {
                Regex regex = new Regex(ApplicationSettings.GetInstance("").StandardZipCode);
                if (string.IsNullOrEmpty(client.ZipCode))
                {
                }
                else
                {
                    if (!regex.IsMatch(client.ZipCode))
                        throw new OpenCbsTiersSaveException(OpenCbsTiersSaveExceptionEnum.IncorrectZipCodeFormat);
                }
            }

            //CityPhoneNumberChecking (static, that has a cable line connection)
            //according to a regex setting (which is set in the db used)
            if (string.IsNullOrEmpty(ApplicationSettings.GetInstance("").StandardZipCode)) { }
            else
            {
                Regex cityPhoneRegex = new Regex(ApplicationSettings.GetInstance("").StandardCityPhoneFormat);
                if (string.IsNullOrEmpty(client.HomePhone)) { }
                else
                {
                    if (!cityPhoneRegex.IsMatch(client.HomePhone))
                        throw new OpenCbsTiersSaveException(OpenCbsTiersSaveExceptionEnum.IncorrectCityPhoneFormat);
                }
            }

            //MobilePhoneNumberChecking (as opposed to cityPhone)
            //according to a regex setting (which is set in the db used)
            if (string.IsNullOrEmpty(ApplicationSettings.GetInstance("").StandardZipCode)) { }
            else
            {
                Regex mobilePhoneRegex = new Regex(ApplicationSettings.GetInstance("").StandardMobilePhoneFormat);
                if (string.IsNullOrEmpty(client.PersonalPhone)) { }
                else
                {
                    if (!mobilePhoneRegex.IsMatch(client.PersonalPhone))
                        throw new OpenCbsTiersSaveException(OpenCbsTiersSaveExceptionEnum.IncorrectMobilePhoneFormat);
                }
            }
        }