Exemplo n.º 1
0
        public static IServices GetInstance()
        {
            if (_theUniqueInstance == null)
                _theUniqueInstance = new ServicesProvider();

            return _theUniqueInstance._iServices;
        }
        public ActionResult Filter(string filter)
        {
            var servicesProvider = new ServicesProvider();
            var serviceViewModels = servicesProvider.GetServices(_machineName, filter).Select(
                service => new ServiceViewModel
                {
                    ServiceName = service.ServiceName,
                    Status = service.Status.ToString(),
                    CanStop = service.CanStop
                }).ToList();

            return PartialView("_ServicesPartial", serviceViewModels);
        }
        public ActionResult Index()
        {
            var servicesProvider = new ServicesProvider();
            var serviceViewModels = servicesProvider.GetServices(_machineName, string.Empty).Select(
                service => new ServiceViewModel
                {
                    ServiceName = service.ServiceName,
                    Status = service.Status.ToString(),
                    CanStop = service.CanStop
                }).ToList();

            return View("Index", serviceViewModels);
        }
Exemplo n.º 4
0
        private void SavePerson()
        {
            _personSaved = false;
            RecoverDatasFromUserControlsAddress();
            RecoverDataFromCombobox();

            _tempPerson.FirstContact     = dateTimePickerFirstContact.Value;
            _tempPerson.FirstAppointment = dateTimePickerFirstAppointment.Value;
            _tempPerson.Branch           = (Branch)cbBranch.SelectedItem;

            try
            {
                bool save = 0 == _tempPerson.Id;
                if (_tempPerson.FirstName != null)
                {
                    _tempPerson.FirstName = _tempPerson.FirstName.Trim();
                }
                if (_tempPerson.LastName != null)
                {
                    _tempPerson.LastName = _tempPerson.LastName.Trim();
                }
                if (_tempPerson.FatherName != null)
                {
                    _tempPerson.FatherName = _tempPerson.FatherName.Trim();
                }
                if (_tempPerson.IdentificationData != null)
                {
                    _tempPerson.IdentificationData = _tempPerson.IdentificationData.Trim();
                }

                string result = ServicesProvider
                                .GetInstance()
                                .GetClientServices()
                                .SavePerson(ref _tempPerson, (tx, id) =>
                {
                    foreach (var extension in Extensions)
                    {
                        extension.Save(_tempPerson, tx);
                    }
                });

                EventProcessorServices es = ServicesProvider.GetInstance().GetEventProcessorServices();
                es.LogClientSaveUpdateEvent(_tempPerson, save);

                if (result != string.Empty)
                {
                    MessageBox.Show(result, "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                _personSaved    = true;
                buttonSave.Text = MultiLanguageStrings.GetString(Ressource.PersonUserControl, "Update");

                var formatInfo = new NameFormatInfo();
                var settings   = ServicesProvider.GetInstance().GetGeneralSettings();
                //var fnFormat = @"{0:" + settings.FirstNameFormat + @"}";
                //var lnFormat = @"{0:" + settings.LastNameFormat + @"}";
                textBoxFirstName.Text = string.Format(_tempPerson.FirstName);
                textBoxLastname.Text  = string.Format(_tempPerson.LastName);
                if (_tempPerson.FatherName != null)
                {
                    textBoxFatherName.Text = string.Format(_tempPerson.FatherName);
                }
                textBoxIdentificationData.Text = string.Format(_tempPerson.IdentificationData);
                //EnableDocuments();
                ResetImagesFlags();

                if (ApplicationSettings.GetInstance(User.CurrentUser.Md5).UseMandatorySavingAccount&&
                    Person.Savings.Count == 0)
                {
                    Person.Savings.Add(
                        ServicesProvider.GetInstance().GetSavingServices().AddAndActivateDefaultSavingAccount(Person));
                    DisplaySavings(Person.Savings);
                }
            }
            catch (Exception ex)
            {
                new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog();
            }
        }
        private void buttonSave_Click(object sender, EventArgs e)
        {
            if (textBoxProductName.Text.Length == 0)
            {
                MessageBox.Show("Please, enter collateral type name!");
                return;
            }
            if (textBoxProductDesc.Text.Length == 0)
            {
                MessageBox.Show("Please, enter collateral type description!");
                return;
            }
            if (myProperties.GetSize() == 0)
            {
                MessageBox.Show("Please, enter at least one property!");
                return;
            }
            try
            {
                if (isAddMode)
                {
                    collateralProduct.Name        = textBoxProductName.Text;
                    collateralProduct.Description = textBoxProductDesc.Text;

                    List <CollateralProperty> propertiesList = new List <CollateralProperty>();

                    foreach (CustomProperty property in myProperties)
                    {
                        CollateralProperty collateralProperty = new CollateralProperty();
                        collateralProperty.Name        = property.Name;
                        collateralProperty.Description = property.Description;

                        if (property.Value is List <string> )
                        {
                            collateralProperty.Type       = OCollateralPropertyTypes.Collection;
                            collateralProperty.Collection = (List <string>)property.Value;
                        }
                        else
                        {
                            //collateralProperty.Type = (OCollateralPropertyTypes) Enum.Parse(typeof(OCollateralPropertyTypes), property.Value.ToString(), true);
                            collateralProperty.Type = (OCollateralPropertyTypes)Enum.Parse(typeof(OCollateralPropertyTypes),
                                                                                           GetString(property.Value.ToString()), true);
                        }

                        propertiesList.Add(collateralProperty);
                    }

                    collateralProduct.Properties = propertiesList;

                    ServicesProvider.GetInstance().GetCollateralProductServices().AddCollateralProduct(collateralProduct);
                }
                else
                {
                    ServicesProvider.GetInstance().GetCollateralProductServices().UpdateCollateralProduct(
                        collateralProduct.Id, collateralProduct.Name, textBoxProductName.Text, textBoxProductDesc.Text);

                    foreach (CollateralProperty property in editPropertyList)
                    {
                        ServicesProvider.GetInstance().GetCollateralProductServices().AddCollateralProperty(collateralProduct.Id, property);
                    }
                }

                Close();
            }
            catch (Exception ex)
            {
                new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog();
            }
        }
 private void LoadClosureData()
 {
     olvClosures.SetObjects(ServicesProvider.GetInstance().GetAccountingServices().SelectAccountingClosures());
 }
Exemplo n.º 7
0
        private void OnEditLoan(EditLoanMessage message)
        {
            var client = ServicesProvider.GetInstance().GetClientServices().FindTiersByContractId(message.Id);

            InitializeCreditContractForm(client, message.Id);
        }
Exemplo n.º 8
0
        private void BtnOkClick(object sender, EventArgs e)
        {
            foreach (ListViewItem item in lvContracts.Items)
            {
                if (item == _itemTotal)
                {
                    continue;
                }
                if (!item.Checked)
                {
                    continue;
                }
                var           loan         = item.Tag as Loan;
                VillageMember activeMember = null;
                int           index        = 0;
                foreach (VillageMember member in _village.Members)
                {
                    int tIndex = member.ActiveLoans.IndexOf(loan);
                    if (tIndex > -1)
                    {
                        activeMember = member;
                        index        = tIndex;
                    }
                }

                if (activeMember != null)
                {
                    Person person = activeMember.Tiers as Person;
                    if (loan != null)
                    {
                        int       number = loan.GetFirstUnpaidInstallment().Number;
                        OCurrency total  = (OCurrency)item.SubItems[5].Tag;
                        bool      doProportionPayment = cbItem.SelectedIndex == 2;
                        OCurrency penalties           = (OCurrency)item.SubItems[4].Tag;
                        bool      disableFees         = penalties != loan.CalculateDuePenaltiesForInstallment(number, TimeProvider.Today);
                        string    comment             = item.SubItems[10].Text;

                        PaymentMethod paymentMethod = ServicesProvider.GetInstance().GetPaymentMethodServices().GetPaymentMethodById(1);

                        try
                        {
                            activeMember.ActiveLoans[index] =
                                ServicesProvider.GetInstance().GetContractServices().Repay(loan,
                                                                                           person,
                                                                                           number,
                                                                                           TimeProvider.Today,
                                                                                           total,
                                                                                           disableFees,
                                                                                           penalties,
                                                                                           0,
                                                                                           false,
                                                                                           0,
                                                                                           true,
                                                                                           doProportionPayment,
                                                                                           paymentMethod,
                                                                                           comment,
                                                                                           false);
                        }
                        catch (Exception ex)
                        {
                            new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog();
                        }
                    }
                }

                if (loan != null)
                {
                    if (loan.Closed)
                    {
                        if (activeMember != null)
                        {
                            activeMember.ActiveLoans[index] = null;
                        }
                    }
                }
            }

            if (_AllContractsClosed())
            {
                _village.Active = false;
                ServicesProvider.GetInstance().GetContractServices().UpdateVillageStatus(_village);
            }
        }
Exemplo n.º 9
0
 private void _CheckGeneralSettings()
 {
     bWSeventToEight.ReportProgress(9, MultiLanguageStrings.GetString(Ressource.FrmSplash, "CheckAccountingSettings.Text"));
     ServicesProvider.GetInstance().GetChartOfAccountsServices().CheckGeneralSettings();
     _accountingSettingsAreOk = true;
 }
Exemplo n.º 10
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (ListViewItem item in lvMembers.Items)
                {
                    if (!item.Checked)
                    {
                        continue;
                    }
                    var             loan          = item.Tag as Loan;
                    string          comment       = item.SubItems[IdxComment].Text;
                    OContractStatus currentStatus = loan.ContractStatus;
                    OContractStatus status        = (OContractStatus)item.SubItems[IdxStatus].Tag;
                    if (currentStatus == status)
                    {
                        continue;
                    }
                    string   code = item.SubItems[IdxValidationCode].Text;
                    DateTime date = Convert.ToDateTime(item.SubItems[IdxCreditCommitteeDate].Tag);

                    VillageMember activeMember = null;

                    foreach (VillageMember member in _village.Members)
                    {
                        int tIndex = member.ActiveLoans.IndexOf(loan);
                        if (tIndex > -1)
                        {
                            activeMember = member;
                        }
                    }

                    IClient client = activeMember.Tiers;

                    loan.CreditCommiteeDate    = date;
                    loan.ContractStatus        = status;
                    loan.CreditCommitteeCode   = code;
                    loan.CreditCommiteeComment = comment;
                    Project project = client.Projects[0];

                    loan = ServicesProvider.GetInstance().GetContractServices().UpdateContractStatus(loan, project, client, currentStatus == OContractStatus.Validated);
                    if (OContractStatus.Refused == status ||
                        OContractStatus.Abandoned == status ||
                        OContractStatus.Closed == status)
                    {
                        loan.Closed = true;
                        activeMember.ActiveLoans.Remove(loan);
                        if (activeMember.ActiveLoans.Count == 0)
                        {
                            client.Active = false;
                            client.Status = OClientStatus.Inactive;
                        }
                    }
                    else
                    {
                        loan.Closed   = false;
                        client.Active = true;
                        client.Status = OClientStatus.Active;
                    }
                }
                DialogResult = DialogResult.OK;
                Close();
            }
            catch (Exception ex)
            {
                new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog();
            }
        }
Exemplo n.º 11
0
        private void Initialize()
        {
            lblSavingCurrency.Text      = _saving.Product.Currency.Code;
            lblTotalSavingCurrency.Text = _saving.Product.Currency.Code;
            lblSavingCurrencyFees.Text  = _saving.Product.Currency.Code;

            nudTotalAmount.Minimum = 0;
            nudTotalAmount.Maximum = decimal.MaxValue;

            nudAmount.Minimum = _amountMin.Value;
            nudAmount.Maximum = _amountMax.Value;

            lbAmountMinMax.Text = string.Format("{0} {1} {4}\n\r{2} {3} {4}",
                                                "min", _amountMin.GetFormatedValue(_saving.Product.Currency.UseCents),
                                                "max", _amountMax.GetFormatedValue(_saving.Product.Currency.UseCents),
                                                _saving.Product.Currency.Code);

            lblAmountFeesMinMax.Text = string.Format("{0} {1} {4}\n\r{2} {3} {4}",
                                                     "min", _feesMin.GetFormatedValue(_saving.Product.Currency.UseCents),
                                                     "max", _feesMax.GetFormatedValue(_saving.Product.Currency.UseCents),
                                                     _saving.Product.Currency.Code);

            switch (_bookingDirection)
            {
            case OSavingsOperation.Credit:
            {
                Text                     = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "Deposit.Text");
                Name                     = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "Deposit.Text");
                btnSave.Text             = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "Deposit.Text");
                tbxSavingCode.Text       = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "Deposit.Text");
                plTransfer.Visible       = false;
                pnlSavingPending.Visible = true;
                rbxDebit.Visible         = false;
                rbxCredit.Visible        = false;
                cbBookings.Visible       = false;
                break;
            }

            case OSavingsOperation.Debit:
            {
                Text                     = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "Withdrawal.Text");
                Name                     = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "Withdrawal.Text");
                btnSave.Text             = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "Withdrawal.Text");
                tbxSavingCode.Text       = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "Withdrawal.Text");
                plTransfer.Visible       = false;
                pnlSavingPending.Visible = true;
                //cbSavingsMethod.Visible = true;
                rbxDebit.Visible         = false;
                rbxCredit.Visible        = false;
                cbBookings.Visible       = false;
                lblPaymentMethod.Visible = true;
                break;
            }

            case OSavingsOperation.Transfer:
            {
                Text                      = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "Transfer.Text");
                Name                      = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "Transfer.Text");
                btnSave.Text              = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "Transfer.Text");
                tbxSavingCode.Text        = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "Transfer.Text");
                plTransfer.Visible        = true;
                tbTargetAccount.Visible   = true;
                btnSearchContract.Visible = true;
                pnlSavingPending.Visible  = false;
                lbTargetSavings.Visible   = true;
                lblClientName.Visible     = true;
                rbxDebit.Visible          = false;
                rbxCredit.Visible         = false;
                cbBookings.Visible        = false;
                cbSavingsMethod.Visible   = false;
                break;
            }

            case OSavingsOperation.SpecialOperation:
            {
                Text                                = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "SpecialOperation.Text");
                Name                                = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "SpecialOperation.Text");
                btnSave.Text                        = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "ComfirmOperation.Text");
                tbxSavingCode.Text                  = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "SpecialOperation.Text");
                lblPaymentMethod.Text               = MultiLanguageStrings.GetString(Ressource.FrmAddSavingEvent, "StandardBooking.Text");
                plTransfer.Visible                  = true;
                pnlSavingPending.Visible            = true;
                cbxPending.Visible                  = false;
                cbSavingsMethod.Visible             = false;
                lblAmountFeesMinMax.Visible         = false;
                lbAmountMinMax.Visible              = false;
                rbxDebit.Visible                    = true;
                rbxCredit.Visible                   = true;
                btnSearchContract.Visible           = false;
                tbTargetAccount.Visible             = false;
                lblClientName.Visible               = false;
                updAmountFees.Visible               = false;
                lblSavingCurrencyFees.Visible       = false;
                lblFees.Visible                     = false;
                lblTotalAmount.Visible              = false;
                nudTotalAmount.Visible              = false;
                lblTotalSavingCurrency.Visible      = false;
                lbAmountMinMaxCurrencyPivot.Visible = false;

                cbBookings.Items.Clear();
                foreach (Booking booking in ServicesProvider.GetInstance().GetStandardBookingServices().SelectAllStandardBookings())
                {
                    cbBookings.Items.Add(booking);
                }
                cbBookings.Visible = true;

                _feesMin  = 0;
                _feesMax  = 0;
                _rateFees = 0;

                break;
            }
            }

            dtpDate.Value = TimeProvider.Now;

            _pendingSavingsMode = ServicesProvider.GetInstance().GetGeneralSettings().PendingSavingsMode.ToUpper();
            var paymentMethods =
                ServicesProvider.GetInstance().GetPaymentMethodServices().GetAllPaymentMethods();

            foreach (var method in paymentMethods)
            {
                cbSavingsMethod.Items.Add(method);
            }
            cbSavingsMethod.SelectedItem = paymentMethods[0];
            //cbSavingsMethod.DataBind(typeof(OPaymentMethods), Ressource.SavingsOperationForm, false);
            // cbSavingsMethod.DataBind(typeof(OSavingsMethods), Ressource.FrmAddSavingEvent, false);

            switch (_bookingDirection)
            {
            case OSavingsOperation.Credit:
            {
                //switch (cbSavingsMethod.SelectedValue.ToString())
                //{
                //    case "Cheque":
                //        _flatFees = ((SavingBookContract)_saving).ChequeDepositFees;
                //        break;
                //    default:
                _flatFees = ((SavingBookContract)_saving).DepositFees;
                //  break;
                //}
                break;
            }

            case OSavingsOperation.Debit:
            {
                if (((SavingBookContract)_saving).FlatWithdrawFees.HasValue)
                {
                    _flatFees = ((SavingBookContract)_saving).FlatWithdrawFees;
                }
                else
                {
                    _rateFees = ((SavingBookContract)_saving).RateWithdrawFees;
                }

                if (((SavingBookContract)_saving).FlatAMFees.HasValue)
                {
                    _flatAMFees = ((SavingBookContract)_saving).FlatAMFees;
                }
                else
                {
                    _rateAMFees = ((SavingBookContract)_saving).RateAMFees;
                }
                break;
            }

            case OSavingsOperation.Transfer:
            {
                if (((SavingBookContract)_saving).FlatTransferFees.HasValue)
                {
                    _flatFees = ((SavingBookContract)_saving).FlatTransferFees;
                }
                else
                {
                    _rateFees = ((SavingBookContract)_saving).RateTransferFees;
                }
                break;
            }
            }

            updAmountFees.Minimum = _feesMin.Value;
            updAmountFees.Maximum = _feesMax.Value;

            decimal value = _flatFees.HasValue ? _flatFees.Value : ((decimal)(_rateFees)) * 100;

            updAmountFees.Value = value <updAmountFees.Minimum || value> updAmountFees.Maximum
                                      ? updAmountFees.Minimum
                                      : value;
        }
Exemplo n.º 12
0
        private static void SavePerson(FromModel.Client client)
        {
            Person _tempPerson = new Person();

            _tempPerson.FirstName = String.IsNullOrEmpty(client.first_name) ? client.full_name : client.first_name;
            _tempPerson.LastName  = String.IsNullOrEmpty(client.surname) ? client.full_name : client.surname;

            _tempPerson.FirstName = String.IsNullOrEmpty(_tempPerson.FirstName) ? " " : _tempPerson.FirstName;
            _tempPerson.LastName  = String.IsNullOrEmpty(_tempPerson.LastName) ? " " : _tempPerson.LastName;
            //_tempPerson.FullName = client.full_name;
            _tempPerson.DateOfBirth           = DateTime.Now.AddDays(-20);
            _tempPerson.Activity              = economicActivity;
            _tempPerson.Sex                   = client.gender == 1 ? OGender.Male : OGender.Female;
            _tempPerson.RelationshipOfficerId = user.Id;
            _tempPerson.RelationshipOfficer   = user;
            _tempPerson.ImagePath             = " ";
            _tempPerson.Image2Path            = " ";
            _tempPerson.Image3Path            = " ";
            _tempPerson.ParticularsIDNumber   = client.cid_no.ToString();// "0000000000";
            _tempPerson.ParticularsIssueDate  = DateTime.Now;
            _tempPerson.ParticularsExpiryDate = DateTime.Now.AddDays(2);
            _tempPerson.ZipCode               = "";
            _tempPerson.HomeType              = "";
            _tempPerson.Email                 = "";
            _tempPerson.District              = district;
            _tempPerson.City                  = city.Name;
            _tempPerson.Address               = "";
            _tempPerson.HomePhone             = "";
            _tempPerson.PersonalPhone         = "";

            _tempPerson.CreationDate = DateTime.Now;

            _tempPerson.SMSDelivery   = false;
            _tempPerson.EmailDelivery = true;

            _tempPerson.SecondaryZipCode       = "";
            _tempPerson.SecondaryHomeType      = "";
            _tempPerson.SecondaryEmail         = "";
            _tempPerson.SecondaryDistrict      = district;
            _tempPerson.SecondaryCity          = city.Name;
            _tempPerson.SecondaryAddress       = "";
            _tempPerson.SecondaryHomePhone     = "";
            _tempPerson.SecondaryPersonalPhone = "";
            _tempPerson.Branch    = branch;
            _tempPerson.CreatedBy = User.CurrentUser;

            bool save = 0 == _tempPerson.Id;

            if (_tempPerson.FirstName != null)
            {
                _tempPerson.FirstName = _tempPerson.FirstName.Trim();
            }
            if (_tempPerson.LastName != null)
            {
                _tempPerson.LastName = _tempPerson.LastName.Trim();
            }
            if (_tempPerson.FatherName != null)
            {
                _tempPerson.FatherName = _tempPerson.FatherName.Trim();
            }
            if (_tempPerson.IdentificationData != null)
            {
                _tempPerson.IdentificationData = _tempPerson.IdentificationData.Trim();
            }
            _tempPerson.Nationality = province.Name;

            _tempPerson.IsNew     = false;
            _tempPerson.IsUpdated = true;

            string result = ServicesProvider
                            .GetInstance()
                            .GetClientServices()
                            .SavePerson(ref _tempPerson, (tx, id) =>
            {
                //foreach (var extension in Extensions) extension.Save(_tempPerson, tx);
            });

            EventProcessorServices es = ServicesProvider.GetInstance().GetEventProcessorServices();

            es.LogClientSaveUpdateEvent(_tempPerson, save);

            if (result != string.Empty)
            {
                Console.WriteLine(result);
            }
        }
Exemplo n.º 13
0
 public DecksService(ServicesProvider servicesProvider)
 {
     this.servicesProvider = servicesProvider;
 }
Exemplo n.º 14
0
        static void Main(string[] args)
        {
            CsvFileDescription fileDescription = new CsvFileDescription
            {
                SeparatorChar           = ',',
                FirstLineHasColumnNames = true
            };
            CsvContext cc = new CsvContext();

            var dir = Directory.GetCurrentDirectory();

            string sourceFilePath = dir + "/client_table.csv";

            Console.WriteLine("***********************************************************");
            Console.WriteLine("***********************************************************");
            Console.WriteLine("****************OpenCBS DATABASE MIGRATOR******************");
            Console.WriteLine("***********************************************************");
            Console.WriteLine("***********************************************************");
            Console.WriteLine("                                                           ");
            Console.WriteLine("**   Ensure that a csv file named \"client_table.csv\"     **");
            Console.WriteLine("**   exists in the bin directory of the migrator before  **");
            Console.WriteLine("**                       proceeding.                     **");
            Console.WriteLine("******            Press 'enter' to continue        ********");
            Console.WriteLine("                                                           ");
            Console.WriteLine("***********************************************************");
            Console.WriteLine("***********************************************************");

            Console.ReadKey();
            try
            {
                ApplicationSettingsServices generalSettingsService = ServicesProvider.GetInstance().GetApplicationSettingsServices();
                generalSettingsService.FillGeneralDatabaseParameter();

                SelectDefaultUser();
                SelectDefaultBranch();
                SelectDefaultEconomicActivity();
                SelectDefaultLocation();

                List <FromModel.Client> clients = cc.Read <FromModel.Client>(sourceFilePath, fileDescription).ToList();
                Console.WriteLine("");
                Console.WriteLine("***********************************************************");
                Console.WriteLine(String.Format("Migrating {0} clients data", clients.Count));
                Console.WriteLine("***********************************************************");
                Console.WriteLine("");

                var             _clientService = ServicesProvider.GetInstance().GetClientServices();
                int             count          = 0;
                MigrationResult result         = null;
                foreach (FromModel.Client client in clients)
                {
                    result            = new MigrationResult();
                    result.full_name  = client.full_name;
                    result.surname    = client.surname;
                    result.first_name = client.first_name;

                    try
                    {
                        if (!String.IsNullOrEmpty(client.first_name)
                            ||
                            !String.IsNullOrEmpty(client.surname)
                            ||
                            !String.IsNullOrEmpty(client.full_name))
                        {
                            #region Individual migration
                            if (client.c_type == ClientType.INDIVIDUAL ||
                                client.c_type == ClientType.DIRECTORS ||
                                client.c_type == ClientType.CHILDREN ||
                                client.c_type == ClientType.JOINT ||
                                client.c_type == ClientType.STAFF ||
                                client.c_type == ClientType.CASHIER)
                            {
                                result.type = "INDIVIDUAL";

                                var _query = client.full_name;
                                int onlyActive = 2; //inactive and active
                                int _numbersTotalPage, _numberOfRecords;

                                var results = ServicesProvider.GetInstance().GetClientServices().FindTiers(out _numbersTotalPage, out _numberOfRecords,
                                                                                                           _query, onlyActive, 1, 1, 1, 1);

                                if (results.Count > 0)
                                {
                                    exist.Add(client);

                                    result.migrated       = "no";
                                    result.failure_reason = "duplicate";
                                    dump.Add(result);
                                    continue;
                                }
                                ++count;
                                Console.WriteLine(count + "). Migrating \"INDIVIDUAL\" " + client.full_name);
                                SavePerson(client);
                                result.migrated       = "yes";
                                result.failure_reason = "";
                                dump.Add(result);
                                migrated.Add(client);
                            }
                            #endregion
                            #region Corporate migration
                            else if (client.c_type == ClientType.GOVT ||
                                     client.c_type == ClientType.SOLE_PROPRIETORSHIP ||
                                     client.c_type == ClientType.FINANCIAL_INSTITUTION ||
                                     client.c_type == ClientType.EDUCATIONAL_INSTITUTION ||
                                     client.c_type == ClientType.COMPANY)
                            {
                                result.type = "CORPORATE";

                                var _query = client.full_name;
                                int onlyActive = 2; //inactive and active
                                int _numbersTotalPage, _numberOfRecords;


                                var results = ServicesProvider.GetInstance().GetClientServices().
                                              FindTiersCorporates(onlyActive, 1, out _numbersTotalPage, out _numberOfRecords, _query);

                                if (results.Count > 0)
                                {
                                    exist.Add(client);
                                    result.migrated       = "no";
                                    result.failure_reason = "duplicate";
                                    dump.Add(result);
                                    continue;
                                }

                                ++count;
                                Console.WriteLine(count + "). Migrating \"CORPORATE\" " + client.full_name);
                                SaveCorporate(client);
                                result.migrated       = "yes";
                                result.failure_reason = "";
                                dump.Add(result);
                                migrated.Add(client);
                            }
                            #endregion
                            #region Group migration
                            else if (client.c_type == ClientType.GROUP ||
                                     client.c_type == ClientType.CHURCH_MINISTRIES)
                            {
                                result.type = "GROUP";

                                /*var _query = "";
                                 * int onlyActive = 2; //inactive and active
                                 * int _numbersTotalPage, _numberOfRecords;
                                 *
                                 * var results = ServicesProvider.GetInstance().GetClientServices().FindTiers(out _numbersTotalPage, out _numberOfRecords,
                                 *              _query, onlyActive, 1, 1, 1, 1);
                                 *
                                 * if (results.Count > 0)
                                 * {
                                 *  exist.Add(client);
                                 *  continue;
                                 * }
                                 */
                                //++count;
                                Console.WriteLine(count + "). Migrating \"GROUP\" " + client.full_name);
                                error.Add(client);
                                result.migrated       = "no";
                                result.failure_reason = "Requires group members";
                                dump.Add(result);
                                //SaveGroup(client);
                            }
                            #endregion
                        }
                    }
                    catch (CustomFieldsAreNotFilledCorrectlyException exc)
                    {
                        Console.WriteLine(CustomExceptionHandler.ShowExceptionText(exc));
                        error.Add(client);
                        result.migrated       = "no";
                        result.failure_reason = exc.Message;
                        dump.Add(result);
                    }
                    catch (Exception exc)
                    {
                        Console.WriteLine(CustomExceptionHandler.ShowExceptionText(exc));
                        error.Add(client);
                        result.migrated       = "no";
                        result.failure_reason = exc.Message;
                        dump.Add(result);
                    }
                    finally
                    {
                        //dump.Add(result);
                    }
                }

                string resultDir = dir + "/result";
                if (!Directory.Exists(resultDir))
                {
                    Directory.CreateDirectory(resultDir);
                }

                string resultFilePath     = resultDir + "/migration.csv";
                string errorFilePath      = resultDir + "/error.csv";
                string successfulFilePath = resultDir + "/successful.csv";
                string duplicatesFilePath = resultDir + "/duplicates.csv";

                cc.Write(dump, resultFilePath, fileDescription);
                cc.Write(error, errorFilePath, fileDescription);
                cc.Write(migrated, successfulFilePath, fileDescription);
                cc.Write(exist, duplicatesFilePath, fileDescription);

                Console.WriteLine("");
                Console.WriteLine("");
                Console.WriteLine("***********************************************************");
                //Console.WriteLine(String.Format("Migrated {0} clients data", migrated.Count));
                Console.WriteLine("Results:");
                Console.WriteLine("Total: " + clients.Count);
                Console.WriteLine("Successful: " + migrated.Count);
                Console.WriteLine("Failed: " + error.Count);
                Console.WriteLine("Duplicates: " + exist.Count);
                Console.WriteLine("Migration result saved to " + resultDir);
                Console.WriteLine("***********************************************************");


                Console.ReadLine();
            }
            catch (Exception exc)
            {
                Console.WriteLine("Exception: " + exc);
                Console.ReadLine();
            }
        }
Exemplo n.º 15
0
 private void LoadBranches()
 {
     olvBranches.Items.Clear();
     olvBranches.SetObjects(ServicesProvider.GetInstance().GetBranchService().FindAllNonDeleted());
     CheckSelected();
 }
Exemplo n.º 16
0
        private void ProcessImage(string fileName)
        {
            if (personUserControl != null)
            {
                if (photoSubId == 0)
                {
                    person.ImagePath = fileName;
                    Bitmap bitmap  = new Bitmap(fileName);
                    Bitmap resized = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 600);
                    UserPicture.Height = resized.Height;
                    UserPicture.Width  = resized.Width;
                    UserPicture.Image  = resized;
                    Bitmap thumbnail = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 128);
                    personUserControl.pictureBox.Image    = thumbnail;
                    personUserControl.pictureBox.SizeMode = PictureBoxSizeMode.Zoom;
                    UserPicture.Image = resized;
                }
                else if (photoSubId == 1)
                {
                    person.Image2Path = fileName;
                    Bitmap bitmap  = new Bitmap(fileName);
                    Bitmap resized = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 600);
                    UserPicture.Height = resized.Height;
                    UserPicture.Width  = resized.Width;
                    UserPicture.Image  = resized;
                    Bitmap thumbnail = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 128);
                    personUserControl.pictureBox2.Image    = thumbnail;
                    personUserControl.pictureBox2.SizeMode = PictureBoxSizeMode.Zoom;
                    UserPicture.Image = resized;
                }
                else if (photoSubId == 2)
                {
                    person.Image3Path = fileName;
                    Bitmap bitmap  = new Bitmap(fileName);
                    Bitmap resized = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 600);
                    UserPicture.Height = resized.Height;
                    UserPicture.Width  = resized.Width;
                    UserPicture.Image  = resized;
                    Bitmap thumbnail = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 128);
                    personUserControl.pbSignature.Image    = thumbnail;
                    personUserControl.pbSignature.SizeMode = PictureBoxSizeMode.Zoom;
                    UserPicture.Image = resized;
                }
            }

            else if (villageForm != null)
            {
                if (photoSubId == 0)
                {
                    village.ImagePath = fileName;
                    Bitmap bitmap  = new Bitmap(fileName);
                    Bitmap resized = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 600);
                    UserPicture.Height = resized.Height;
                    UserPicture.Width  = resized.Width;
                    UserPicture.Image  = resized;
                    Bitmap thumbnail = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 128);
                    villageForm.pictureBox1.Image    = thumbnail;
                    villageForm.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
                    UserPicture.Image = resized;
                }
                else if (photoSubId == 1)
                {
                    village.Image2Path = fileName;
                    Bitmap bitmap  = new Bitmap(fileName);
                    Bitmap resized = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 600);
                    UserPicture.Height = resized.Height;
                    UserPicture.Width  = resized.Width;
                    UserPicture.Image  = resized;
                    Bitmap thumbnail = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 128);
                    villageForm.pictureBox2.Image    = thumbnail;
                    villageForm.pictureBox2.SizeMode = PictureBoxSizeMode.Zoom;
                    UserPicture.Image = resized;
                }
            }

            else if (groupUserControl != null)
            {
                if (photoSubId == 0)
                {
                    group.ImagePath = fileName;
                    Bitmap bitmap  = new Bitmap(fileName);
                    Bitmap resized = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 600);
                    UserPicture.Height = resized.Height;
                    UserPicture.Width  = resized.Width;
                    UserPicture.Image  = resized;
                    Bitmap thumbnail = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 128);
                    groupUserControl.pictureBox1.Image    = thumbnail;
                    groupUserControl.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
                    UserPicture.Image = resized;
                }
                else if (photoSubId == 1)
                {
                    group.Image2Path = fileName;
                    Bitmap bitmap  = new Bitmap(fileName);
                    Bitmap resized = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 600);
                    UserPicture.Height = resized.Height;
                    UserPicture.Width  = resized.Width;
                    UserPicture.Image  = resized;
                    Bitmap thumbnail = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 128);
                    groupUserControl.pictureBox2.Image    = thumbnail;
                    groupUserControl.pictureBox2.SizeMode = PictureBoxSizeMode.Zoom;
                    UserPicture.Image = resized;
                }
            }
            else if (corporateUserControl != null)
            {
                if (photoSubId == 0)
                {
                    corporate.ImagePath = fileName;
                    Bitmap bitmap  = new Bitmap(fileName);
                    Bitmap resized = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 600);
                    UserPicture.Height = resized.Height;
                    UserPicture.Width  = resized.Width;
                    UserPicture.Image  = resized;
                    Bitmap thumbnail = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 128);
                    corporateUserControl.pictureBox1.Image    = thumbnail;
                    corporateUserControl.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
                    UserPicture.Image = resized;
                }
                else if (photoSubId == 1)
                {
                    corporate.Image2Path = fileName;
                    Bitmap bitmap  = new Bitmap(fileName);
                    Bitmap resized = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 600);
                    UserPicture.Height = resized.Height;
                    UserPicture.Width  = resized.Width;
                    UserPicture.Image  = resized;
                    Bitmap thumbnail = ServicesProvider.GetInstance().GetPicturesServices().Resize(bitmap, 128);
                    corporateUserControl.pictureBox2.Image    = thumbnail;
                    corporateUserControl.pictureBox2.SizeMode = PictureBoxSizeMode.Zoom;
                    UserPicture.Image = resized;
                }
            }
        }
Exemplo n.º 17
0
        private void ShowPicture()
        {
            if (personUserControl != null)
            {
                if (person.Id == 0)
                {
                    UserPicture.Image = null;
                }
                if (photoSubId == 0 && !string.IsNullOrEmpty(person.ImagePath) && !person.ImagePath.Contains("/dashboard/cbs/services/attachments"))
                {
                    Bitmap tempImage = new Bitmap(person.ImagePath);
                    image = ServicesProvider.GetInstance().GetPicturesServices().Resize(tempImage, 600);
                }
                else if (photoSubId == 1 && !string.IsNullOrEmpty(person.Image2Path) && !person.Image2Path.Contains("/dashboard/cbs/services/attachments"))
                {
                    Bitmap tempImage = new Bitmap(person.Image2Path);
                    image = ServicesProvider.GetInstance().GetPicturesServices().Resize(tempImage, 600);
                }
                else if (photoSubId == 2 && !string.IsNullOrEmpty(person.Image3Path) && !person.Image3Path.Contains("/dashboard/cbs/services/attachments"))
                {
                    Bitmap tempImage = new Bitmap(person.Image3Path);
                    image = ServicesProvider.GetInstance().GetPicturesServices().Resize(tempImage, 600);
                }
                else
                {
                    image = ServicesProvider.GetInstance().GetPicturesServices().GetPicture("PERSON", person.Id, false, photoSubId);
                }
            }
            else if (villageForm != null)
            {
                if (village.Id == 0)
                {
                    UserPicture.Image = null;
                }

                if (photoSubId == 0)
                {
                    if (!string.IsNullOrEmpty(village.ImagePath))
                    {
                        Bitmap tempImage = new Bitmap(village.ImagePath);
                        image = ServicesProvider.GetInstance().GetPicturesServices().Resize(tempImage, 600);
                    }
                    else
                    {
                        image = ServicesProvider.GetInstance().GetPicturesServices().GetPicture("VILLAGE", village.Id, false, photoSubId);
                    }
                }
                else if (photoSubId == 1)
                {
                    if (!string.IsNullOrEmpty(village.Image2Path))
                    {
                        Bitmap tempImage = new Bitmap(village.Image2Path);
                        image = ServicesProvider.GetInstance().GetPicturesServices().Resize(tempImage, 600);
                    }
                    else
                    {
                        image = ServicesProvider.GetInstance().GetPicturesServices().GetPicture("VILLAGE", village.Id, false, photoSubId);
                    }
                }
            }
            else if (groupUserControl != null)
            {
                if (photoSubId == 0)
                {
                    if (!string.IsNullOrEmpty(group.ImagePath))
                    {
                        Bitmap tempImage = new Bitmap(group.ImagePath);
                        image = ServicesProvider.GetInstance().GetPicturesServices().Resize(tempImage, 600);
                    }
                    else
                    {
                        image = ServicesProvider.GetInstance().GetPicturesServices().GetPicture("GROUP", group.Id, false,
                                                                                                photoSubId);
                    }
                }
                else if (photoSubId == 1)
                {
                    if (!string.IsNullOrEmpty(group.Image2Path))
                    {
                        Bitmap tempImage = new Bitmap(group.Image2Path);
                        image = ServicesProvider.GetInstance().GetPicturesServices().Resize(tempImage, 600);
                    }
                    else
                    {
                        image = ServicesProvider.GetInstance().GetPicturesServices().GetPicture("GROUP", group.Id, false,
                                                                                                photoSubId);
                    }
                }
            }

            else if (corporateUserControl != null)
            {
                if (photoSubId == 0)
                {
                    if (!string.IsNullOrEmpty(corporate.ImagePath))
                    {
                        Bitmap tempImage = new Bitmap(corporate.ImagePath);
                        image = ServicesProvider.GetInstance().GetPicturesServices().Resize(tempImage, 600);
                    }
                    else
                    {
                        image = ServicesProvider.GetInstance().GetPicturesServices().GetPicture("CORPORATE", corporate.Id,
                                                                                                false, photoSubId);
                    }
                }
                else if (photoSubId == 1)
                {
                    if (!string.IsNullOrEmpty(corporate.Image2Path))
                    {
                        Bitmap tempImage = new Bitmap(corporate.Image2Path);
                        image = ServicesProvider.GetInstance().GetPicturesServices().Resize(tempImage, 600);
                    }
                    else
                    {
                        image = ServicesProvider.GetInstance().GetPicturesServices().GetPicture("CORPORATE", corporate.Id,
                                                                                                false, photoSubId);
                    }
                }
            }
            if (image != null)
            {
                UserPicture.Image         = image;
                UserPicture.Height        = image.Height;
                UserPicture.Width         = image.Width;
                deletePhotoButton.Enabled = true;
            }
        }
Exemplo n.º 18
0
        private void ButtonSaveClick(object sender, EventArgs e)
        {
            List <SavingEvent> savingEvents = new List <SavingEvent>();

            if (!CheckDateChange())
            {
                return;
            }
            _loan.Comments = tbComment.Text;
            try
            {
                DistributeEntryFees();
                // If disbursement goes to savings
                if (cmbPaymentMethod.Text == OPaymentMethods.Savings.ToString())
                {
                    if (_loan.CompulsorySavings == null)
                    {
                        throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.NoCompulsorySavings);
                    }

                    if (_loan.CompulsorySavings.Status == OSavingsStatus.Active)
                    {
                        _loan = ServicesProvider.GetInstance().GetContractServices().Disburse(_loan, _newStartDate,
                                                                                              _alignInstallmentsDatesOnRealDisbursmentDate,
                                                                                              _disableFees,
                                                                                              (PaymentMethod)
                                                                                              cmbPaymentMethod.
                                                                                              SelectedItem);
                        savingEvents = ServicesProvider.GetInstance().GetAccountServices().LoanDisbursement(_loan.CompulsorySavings,
                                                                                                            _loan,
                                                                                                            _newStartDate,
                                                                                                            "Disbursement of the loan: " +
                                                                                                            _loan.Code, User.CurrentUser,
                                                                                                            checkBoxFees.Checked);

                        //slycode
                        MessagingService messagingService = new MessagingService(Person);
                        try
                        {
                            foreach (SavingEvent savingEvent in savingEvents)
                            {
                                messagingService.SendNotification(savingEvent, _loan.CompulsorySavings, "LoanDisburstment");
                            }
                        }
                        catch (Exception exc)
                        {
                            new frmShowError(CustomExceptionHandler.ShowExceptionText(exc)).ShowDialog();
                        }
                    }
                    else
                    {
                        throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.CompulsorySavingsContractIsNotActive);
                    }
                }
                else
                {
                    _loan = ServicesProvider.GetInstance().GetContractServices().Disburse(_loan, _newStartDate,
                                                                                          _alignInstallmentsDatesOnRealDisbursmentDate,
                                                                                          _disableFees,
                                                                                          (PaymentMethod)
                                                                                          cmbPaymentMethod.SelectedItem);
                }
            }
            catch (Exception ex)
            {
                _loan.Disbursed = false;
                new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog();
            }
            finally
            {
                Close();
            }
        }
Exemplo n.º 19
0
        private void BSaveClick(object sender, EventArgs e)
        {
            nudAmount_ValueChanged(sender, e);
            bool            pending       = cbxPending.Visible && cbxPending.Checked;
            OSavingsMethods savingsMethod =
                (OSavingsMethods)Enum.Parse(typeof(OSavingsMethods), cbSavingsMethod.SelectedValue.ToString());

            try
            {
                _date = new DateTime(dtpDate.Value.Year, dtpDate.Value.Month, dtpDate.Value.Day, TimeProvider.Now.Hour,
                                     TimeProvider.Now.Minute, TimeProvider.Now.Second);

                SavingServices savingServices = ServicesProvider.GetInstance().GetSavingServices();

                if (_date.Date < TimeProvider.Today.Date)
                {
                    savingServices.PerformBackDateOperations(_date);
                }
                else if (_date.Date > TimeProvider.Today.Date)
                {
                    savingServices.PerformFutureDateOperations(_date);
                }

                if (_saving.HasPendingEvents())
                {
                    if (!savingServices.AllowOperationsDuringPendingDeposit())
                    {
                        return;
                    }
                }

                if ((_flatFees.HasValue && updAmountFees.Value != _flatFees) || (_rateFees.HasValue && updAmountFees.Value != (decimal)(_rateFees * 100)))
                {
                    if (!savingServices.AllowSettingSavingsOperationsFeesManually())
                    {
                        return;
                    }
                }

                switch (_bookingDirection)
                {
                case OSavingsOperation.Credit:
                {
                    if (_saving is SavingBookContract)
                    {
                        if (savingsMethod == OSavingsMethods.Cheque)
                        {
                            ((SavingBookContract)_saving).ChequeDepositFees = updAmountFees.Value;
                        }
                        else
                        {
                            ((SavingBookContract)_saving).DepositFees = updAmountFees.Value;
                        }
                    }

                    savingServices.Deposit(_saving, _date, _amount, _description, User.CurrentUser, pending,
                                           savingsMethod, null, Teller.CurrentTeller);
                    break;
                }

                case OSavingsOperation.Debit:
                {
                    if (_saving is SavingBookContract)
                    {
                        if (_flatFees.HasValue)
                        {
                            ((SavingBookContract)_saving).FlatWithdrawFees = updAmountFees.Value;
                        }
                        else
                        {
                            ((SavingBookContract)_saving).RateWithdrawFees = (double)(updAmountFees.Value / 100);
                        }
                    }

                    savingServices.Withdraw(_saving, _date, _amount, _description, User.CurrentUser, Teller.CurrentTeller);
                    break;
                }

                case OSavingsOperation.Transfer:
                {
                    if (_saving is SavingBookContract)
                    {
                        if (_flatFees.HasValue)
                        {
                            ((SavingBookContract)_saving).FlatTransferFees = updAmountFees.Value;
                        }
                        else
                        {
                            ((SavingBookContract)_saving).RateTransferFees = (double)(updAmountFees.Value / 100);
                        }
                    }
                    decimal fee = nudTotalAmount.Value - nudAmount.Value;
                    savingServices.Transfer(_saving, _savingTarget, _date, _amount, fee, _description, User.CurrentUser, false);
                    break;
                }

                case OSavingsOperation.SpecialOperation:
                {
                    if (cbBookings.SelectedItem != null)
                    {
                        Booking booking = (Booking)cbBookings.SelectedItem;
                        booking.Branch = _saving.Branch;
                        savingServices.SpecialOperation(_saving, _date, _amount, _description, User.CurrentUser,
                                                        savingsMethod, rbxCredit.Checked, booking);
                        break;
                    }
                    throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.TransactionInvalid);
                }
                }

                Close();
            }
            catch (Exception ex)
            {
                new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog();
            }
        }
Exemplo n.º 20
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            bool isError = false;

            try
            {
                if (_notEnoughMoney)
                {
                    if (!MessageBox.Show(MultiLanguageStrings.GetString(Ressource.VillageForm, "MoneyNotEnoughForAll.Text"), "!",
                                         MessageBoxButtons.YesNo).Equals(DialogResult.Yes))
                    {
                        return;
                    }
                }

                //Guarantors and Collaterals Check
                var isGuarantorAndCollateralAmountSufficient = true;
                var message     = "";
                var failedItems = new List <ListViewItem>();

                foreach (ListViewItem item in lvMembers.Items)
                {
                    if (!item.Checked || item == _itemTotal)
                    {
                        continue;
                    }
                    var loan = item.Tag as Loan;
                    if (loan == null)
                    {
                        continue;
                    }
                    var result = ServicesProvider.GetInstance().GetContractServices().CheckIfGuarantorsAndCollateralsAmountIsSufficient(loan);
                    if (result.Key)
                    {
                        continue;
                    }
                    isGuarantorAndCollateralAmountSufficient = false;
                    message = result.Value;
                    failedItems.Add(item);
                }

                if (!isGuarantorAndCollateralAmountSufficient)
                {
                    _isFormStillNeeded = true;
                    foreach (var item in failedItems)
                    {
                        item.BackColor = Color.Red;
                    }

                    Fail(message);
                    return;
                }
                else
                {
                    _isFormStillNeeded = false;
                }
                _doc1 = "";
                _doc2 = "";
                foreach (ListViewItem item in lvMembers.Items)
                {
                    if (!item.Checked || item == _itemTotal)
                    {
                        continue;
                    }
                    var           loan         = item.Tag as Loan;
                    var           date         = Convert.ToDateTime(item.SubItems[IdxDDate].Text);
                    VillageMember activeMember = null;

                    int index = 0;
                    foreach (VillageMember member in _village.NonDisbursedMembers)
                    {
                        int tIndex = member.ActiveLoans.IndexOf(loan);
                        if (tIndex > -1)
                        {
                            activeMember = member;
                            index        = tIndex;
                        }
                    }

                    if (loan != null)
                    {
                        loan.CompulsorySavings = ServicesProvider.GetInstance().GetSavingServices().GetSavingForLoan(loan.Id, true);
                        if (loan.Product.UseCompulsorySavings)
                        {
                            if (loan.CompulsorySavings == null)
                            {
                                string text = string.Format("The loan with the code {0} requires a compulsory savings account to be disbursed!", loan.Code);
                                MessageBox.Show(text, @"No compulsory savings", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                return;
                            }
                            decimal totalAmountPercentage = 0;
                            decimal savingsBalance        = loan.CompulsorySavings.GetBalance().Value;

                            foreach (Loan assosiatedLoan in loan.CompulsorySavings.Loans)
                            {
                                if (assosiatedLoan.ContractStatus != OContractStatus.Closed &&
                                    assosiatedLoan.ContractStatus != OContractStatus.Abandoned &&
                                    assosiatedLoan.ContractStatus != OContractStatus.Postponed &&
                                    assosiatedLoan.CompulsorySavingsPercentage != null)
                                {
                                    totalAmountPercentage += (assosiatedLoan.Amount.Value * ((decimal)assosiatedLoan.CompulsorySavingsPercentage / 100));
                                }
                            }

                            if (totalAmountPercentage > savingsBalance)
                            {
                                MessageBox.Show(String.Format(
                                                    "The balance on savings account {2} of {0} is not enough to cover total loans amount percentage of {1}.\nClient name: {3}",
                                                    ServicesHelper.ConvertDecimalToString(savingsBalance),
                                                    ServicesHelper.ConvertDecimalToString(totalAmountPercentage),
                                                    loan.CompulsorySavings.Code,
                                                    item.SubItems[0].Text),
                                                @"Insufficient savings balance", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                return;
                            }
                        }
                    }

                    date = DateTime.Parse(item.SubItems[2].Text);

                    loan.StartDate = date;
                    if (loan.AlignDisbursementDate.Date != DateTime.Parse(item.SubItems[3].Text).Date)
                    {
                        loan.FirstInstallmentDate  = DateTime.Parse(item.SubItems[3].Text).Date;
                        loan.AlignDisbursementDate = loan.CalculateAlignDisbursementDate(DateTime.Parse(item.SubItems[3].Text).Date);
                        if (!loan.ScheduleChangedManually)
                        {
                            loan.InstallmentList = ServicesProvider.GetInstance().GetContractServices().SimulateScheduleCreation(loan);
                            loan.CalculateStartDates();
                        }
                    }
                    loan.CloseDate = loan.InstallmentList[loan.NbOfInstallments - 1].ExpectedDate;

                    if (item.SubItems[IdxPaymentMethod].Tag != null && item.SubItems[IdxPaymentMethod].Tag.ToString() == OPaymentMethods.Savings.ToString())
                    {
                        if (loan.Product.UseCompulsorySavings && loan.CompulsorySavings != null)
                        {
                            if (loan.CompulsorySavings.Status == OSavingsStatus.Active)
                            {
                                ServicesProvider.GetInstance().GetSavingServices().LoanDisbursement(loan.CompulsorySavings, loan,
                                                                                                    loan.AlignDisbursementDate, "Disbursement of the loan: " + loan.Code, User.CurrentUser, false);
                            }
                            else
                            {
                                throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.CompulsorySavingsContractIsNotActive);
                            }
                        }
                        else
                        {
                            string text = string.Format(@"The loan of client '{0}' requires a compulsory savings account!", ((VillageMember)item.Tag).Tiers.Name);
                            MessageBox.Show(text, @"No compulsory savings", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }
                    }
                    loan.Comments = item.SubItems[IdxComment].Text;
                    _doc1         = item.SubItems[IdxDoc1].Text == "" ? "" : item.SubItems[IdxDoc1].Text;
                    _doc2         = item.SubItems[IdxDoc2].Text == "" ? "" : item.SubItems[IdxDoc2].Text;

                    date += DateTime.Now.TimeOfDay;
                    PaymentMethod method =
                        ServicesProvider.GetInstance().GetPaymentMethodServices().GetPaymentMethodByName(item.SubItems[IdxPaymentMethod].Text);
                    activeMember.ActiveLoans[index] = ServicesProvider.GetInstance().GetContractServices().Disburse(loan, date, true, false, method, _doc1, _doc2);
                }
            }
            catch (Exception ex)
            {
                isError = true;
                new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog();
            }

            if (!isError)
            {
                Close();
            }
        }
Exemplo n.º 21
0
 public void CheckRegEx()
 {
     ApplicationSettings.GetInstance("").UpdateParameter(OGeneralSettings.ID_PATTERN, @"[0-9]{2}[A-Z]{2}");
     Assert.IsFalse(ServicesProvider.GetInstance().GetRegExCheckerServices().CheckID("11111"));
     Assert.IsTrue(ServicesProvider.GetInstance().GetRegExCheckerServices().CheckID("22DD"));
 }
Exemplo n.º 22
0
        private void InitializeControls()
        {
            lvMembers.Items.Clear();
            _fLServices.EmptyTemporaryFLAmountsStorage();
            ApplicationSettings dataParam = ApplicationSettings.GetInstance(string.Empty);
            int decimalPlaces             = dataParam.InterestRateDecimalPlaces;

            foreach (VillageMember member in _village.NonDisbursedMembers)
            {
                foreach (Loan loan in member.ActiveLoans)
                {
                    if (loan.ContractStatus == OContractStatus.Active ||
                        loan.ContractStatus == OContractStatus.Refused ||
                        loan.ContractStatus == OContractStatus.Abandoned
                        )
                    {
                        continue;
                    }
                    _hasMember = true;
                    Person       person = member.Tiers as Person;
                    ListViewItem item   = new ListViewItem(person.Name)
                    {
                        Tag = loan
                    };
                    item.UseItemStyleForSubItems = true;
                    item.SubItems.Add(person.IdentificationData);

                    ListViewItem.ListViewSubItem subitem;

                    if (loan.StartDate == null)
                    {
                        subitem = new ListViewItem.ListViewSubItem
                        {
                            Text = TimeProvider.Today.ToString(ApplicationSettings.GetInstance("").SHORT_DATE_FORMAT),
                            Tag  = TimeProvider.Today
                        }
                    }
                    ;
                    else
                    {
                        subitem = new ListViewItem.ListViewSubItem
                        {
                            Text = loan.StartDate.ToString(ApplicationSettings.GetInstance("").SHORT_DATE_FORMAT),
                            Tag  = loan.StartDate.ToString(ApplicationSettings.GetInstance("").SHORT_DATE_FORMAT)
                        }
                    };

                    item.SubItems.Add(subitem);
                    item.SubItems.Add(loan.FirstInstallmentDate.ToString(ApplicationSettings.GetInstance("").SHORT_DATE_FORMAT));
                    item.SubItems.Add(loan.Amount.GetFormatedValue(loan.UseCents));
                    item.SubItems.Add(loan.Product.Currency.Code);
                    item.SubItems.Add(Math.Round(loan.InterestRate * 100, decimalPlaces).ToString());
                    item.SubItems.Add(loan.GracePeriod.ToString());
                    item.SubItems.Add(loan.NbOfInstallments.ToString());
                    item.SubItems.Add(loan.LoanOfficer.Name);
                    item.SubItems.Add(loan.FundingLine.Name);

                    _accumulatedAmount = _fLServices.CheckIfAmountIsEnough(loan.FundingLine, loan.Amount.Value);
                    if (_accumulatedAmount <= 0)
                    {
                        item.BackColor = Color.Red;
                    }
                    item.SubItems.Add(_accumulatedAmount.ToString());

                    cbPaymentMethods.Items.Clear();
                    List <PaymentMethod> methods = ServicesProvider.GetInstance().GetPaymentMethodServices().GetAllPaymentMethods();
                    item.SubItems.Add(methods[0].Name);

                    item.SubItems.Add(loan.Comments);
                    item.SubItems.Add("");
                    item.SubItems.Add("");

                    lvMembers.Items.Add(item);
                    item.SubItems[IdxAmount].Tag   = loan.Amount.GetFormatedValue(loan.UseCents);
                    item.SubItems[IdxCurrency].Tag = loan.Product.Currency;
                }
            }

            if (_hasMember)
            {
                OCurrency zero = 0m;
                _itemTotal.Text = GetString("total");
                _itemTotal.SubItems.Add("");
                _itemTotal.SubItems.Add("");
                _itemTotal.SubItems.Add("");
                _itemTotal.SubItems.Add(zero.GetFormatedValue(true));
                _itemTotal.SubItems.Add("");
                lvMembers.Items.Add(_itemTotal);
            }

            lvMembers.SubItemClicked       += lvMembers_SubItemClicked;
            lvMembers.DoubleClickActivation = true;

            dtDisbursement.Format       = DateTimePickerFormat.Custom;
            dtpRepayment.Format         = DateTimePickerFormat.Custom;
            dtDisbursement.CustomFormat = ApplicationSettings.GetInstance("").SHORT_DATE_FORMAT;
            dtpRepayment.CustomFormat   = ApplicationSettings.GetInstance("").SHORT_DATE_FORMAT;
        }
Exemplo n.º 23
0
        private void BSaveClick(object sender, EventArgs e)
        {
            nudAmount_ValueChanged(sender, e);
            bool pending = cbxPending.Visible && cbxPending.Checked;
            bool?local   = null;

            local = rbxLocal.Visible && rbxLocal.Checked;

            try
            {
                _date = new DateTime(dtpDate.Value.Year, dtpDate.Value.Month, dtpDate.Value.Day, TimeProvider.Now.Hour,
                                     TimeProvider.Now.Minute, TimeProvider.Now.Second);

                AccountServices savingServices = ServicesProvider.GetInstance().GetAccountServices();

                if (_saving.Events.Find(ev => ev.Code == OSavingEvents.SavingClosure &&
                                        ev.Date.Date >= _date.Date && ev is SavingClosureEvent) != null)
                {
                    savingServices.CanPostAfterClosureEvent();
                }

                List <SavingEvent> savingEvents = new List <SavingEvent>();

                if (_date.Date < TimeProvider.Today.Date)
                {
                    savingServices.PerformBackDateOperations(_date);
                }
                else if (_date.Date > TimeProvider.Today.Date)
                {
                    savingServices.PerformFutureDateOperations(_date);
                }

                if (_saving.HasPendingEvents())
                {
                    if (!savingServices.AllowOperationsDuringPendingDeposit())
                    {
                        return;
                    }
                }

                if ((_flatFees.HasValue && updAmountFees.Value != _flatFees) || (_rateFees.HasValue && updAmountFees.Value != (decimal)(_rateFees * 100)))
                {
                    if (!savingServices.AllowSettingSavingsOperationsFeesManually())
                    {
                        return;
                    }
                }

                switch (_bookingDirection)
                {
                case OSavingsOperation.Credit:
                {
                    OSavingsMethods savingsMethod =
                        (OSavingsMethods)
                        Enum.Parse(typeof(OSavingsMethods), "Cash");
                    var paymentMethod = (PaymentMethod)cbSavingsMethod.SelectedItem;
                    if (_saving is SavingBookContract)
                    {
                        if (savingsMethod == OSavingsMethods.Cheque)
                        {
                            ((SavingBookContract)_saving).ChequeDepositFees = updAmountFees.Value;
                        }
                        else
                        {
                            ((SavingBookContract)_saving).DepositFees = updAmountFees.Value;
                        }

                        //modified
                        OCurrency dutyStampFeeMin = Convert.ToDecimal(ApplicationSettings.GetInstance("").GetSpecificParameter(OGeneralSettings.STAMP_DUTY_VALID_ABOVE));
                        if (_amount < dutyStampFeeMin)
                        {
                            ((SavingBookContract)_saving).DutyStampFees = 0;
                        }
                    }

                    savingEvents = savingServices.Deposit(_saving, _date, _amount, _description, _referenceNumber, User.CurrentUser, pending, local,
                                                          savingsMethod, paymentMethod, null, Teller.CurrentTeller);
                    break;
                }

                case OSavingsOperation.Debit:
                {
                    var paymentMethod = (PaymentMethod)cbSavingsMethod.SelectedItem;
                    if (_saving is SavingBookContract)
                    {
                        if (_flatFees.HasValue)
                        {
                            ((SavingBookContract)_saving).FlatWithdrawFees = updAmountFees.Value;
                        }
                        else
                        {
                            ((SavingBookContract)_saving).RateWithdrawFees = (double)(updAmountFees.Value / 100);
                        }


                        OCurrency _feesMin, _feesMax;
                        decimal   value = _flatAMFees.HasValue ? _flatAMFees.Value : ((decimal)(_rateAMFees)) * 100;

                        if (((SavingsBookProduct)_saving.Product).FlatAMFees.HasValue ||
                            ((SavingsBookProduct)_saving.Product).FlatAMFeesMin.HasValue)
                        {
                            if (((SavingsBookProduct)_saving).FlatAMFees.HasValue)
                            {
                                _feesMin = ((SavingsBookProduct)_saving.Product).FlatAMFees;
                                _feesMax = ((SavingsBookProduct)_saving.Product).FlatAMFees;
                            }
                            else
                            {
                                _feesMin = ((SavingsBookProduct)_saving.Product).FlatAMFeesMin;
                                _feesMax = ((SavingsBookProduct)_saving.Product).FlatAMFeesMax;
                            }

                            OCurrency amFee = value <_feesMin || value> _feesMax ? _feesMin : value;
                            ((SavingBookContract)_saving).FlatAMFees = amFee;
                        }
                        else
                        {
                            if (((SavingsBookProduct)_saving.Product).RateAMFees.HasValue)
                            {
                                _feesMin = (decimal)((SavingsBookProduct)_saving.Product).RateAMFees * 100;
                                _feesMax = (decimal)((SavingsBookProduct)_saving.Product).RateAMFees * 100;
                            }
                            else
                            {
                                _feesMin = (decimal)((SavingsBookProduct)_saving.Product).RateAMFeesMin * 100;
                                _feesMax = (decimal)((SavingsBookProduct)_saving.Product).RateAMFeesMax * 100;
                            }

                            var amFee = value <_feesMin || value> _feesMax ? _feesMin : value;
                            ((SavingBookContract)_saving).RateAMFees = (double)(amFee.Value / 100);
                        }
                    }

                    savingEvents = savingServices.Withdraw(_saving, _date, _amount, _description, _referenceNumber, User.CurrentUser,
                                                           Teller.CurrentTeller, paymentMethod);
                    break;
                }

                case OSavingsOperation.Transfer:
                {
                    if (_saving is SavingBookContract)
                    {
                        if (_flatFees.HasValue)
                        {
                            ((SavingBookContract)_saving).FlatTransferFees = updAmountFees.Value;
                        }
                        else
                        {
                            ((SavingBookContract)_saving).RateTransferFees = (double)(updAmountFees.Value / 100);
                        }
                    }
                    decimal fee = nudTotalAmount.Value - nudAmount.Value;
                    savingEvents = savingServices.Transfer(_saving, _savingTarget, _date, _amount, fee, _description, _referenceNumber,
                                                           User.CurrentUser, false);
                    break;
                }

                case OSavingsOperation.SpecialOperation:
                {
                    OSavingsMethods savingsMethod =
                        (OSavingsMethods)
                        Enum.Parse(typeof(OSavingsMethods), ((PaymentMethod)cbSavingsMethod.SelectedItem).Name);
                    if (cbBookings.SelectedItem != null)
                    {
                        Booking booking = (Booking)cbBookings.SelectedItem;
                        booking.Branch = _saving.Branch;
                        savingServices.SpecialOperation(_saving, _date, _amount, _description, User.CurrentUser,
                                                        savingsMethod, rbxCredit.Checked, booking);
                        break;
                    }
                    throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.TransactionInvalid);
                }
                }


                try
                {
                    //slycode
                    MessagingService messagingService = new MessagingService(Person);

                    foreach (SavingEvent savingEvent in savingEvents)
                    {
                        if (!(savingEvent is SavingInstrumentFeeEvent ||
                              savingEvent is SavingSearchFeeEvent
                              //|| savingEvent is SavingDutyStampFeeEvent
                              || savingEvent is SavingAMFeeEvent))
                        {
                            messagingService.SendNotification(savingEvent, _saving, _bookingDirection.Description());
                        }
                    }
                }
                catch (Exception exc)
                {
                    new frmShowError(CustomExceptionHandler.ShowExceptionText(exc)).ShowDialog();
                }

                Close();
            }
            catch (Exception ex)
            {
                new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog();
            }
        }
Exemplo n.º 24
0
        private void EditDomain()
        {
            try
            {
                if (buttonEdit.Text.Equals(GetString("buttonEdit")))
                {
                    _selectedNode     = tvEconomicActivity.SelectedNode;
                    _economicActivity = (EconomicActivity)_selectedNode.Tag;

                    if (_economicActivity != null)
                    {
                        _economicActivity.Parent = (EconomicActivity)_selectedNode.Parent.Tag;
                        textBoxName.Text         = _economicActivity.Name;
                        _isSame                    = textBoxName.Text;
                        buttonExit.Enabled         = false;
                        buttonAdd.Enabled          = false;
                        buttonDelete.Enabled       = false;
                        tvEconomicActivity.Enabled = false;

                        buttonEdit.Text = GetString("buttonSave");
                    }
                }
                else
                {
                    if (ServicesProvider.GetInstance().GetEconomicActivityServices().NodeEditable(_selectedNode.Tag))
                    {
                        if (_selectedNode.Level == 1)
                        {
                            _economicActivity.Parent = new EconomicActivity(); // no parent
                        }
                        if (_isLoanPurpose)
                        {
                            if (_isSame != textBoxName.Text)
                            {
                                if (ServicesProvider.GetInstance().GetEconomicActivityServices().ChangeDomainOfApplicationName(_economicActivity, textBoxName.Text, _isLoanPurpose))
                                {
                                    tvEconomicActivity.BeginUpdate();
                                    _selectedNode.Tag  = _economicActivity;
                                    _selectedNode.Text = textBoxName.Text;
                                    tvEconomicActivity.EndUpdate();
                                }
                            }
                        }
                        else
                        {
                            if (_isSame != textBoxName.Text)
                            {
                                if (ServicesProvider.GetInstance().GetEconomicActivityServices().ChangeDomainOfApplicationName(_economicActivity, textBoxName.Text))
                                {
                                    tvEconomicActivity.BeginUpdate();
                                    _selectedNode.Tag  = _economicActivity;
                                    _selectedNode.Text = textBoxName.Text;
                                    tvEconomicActivity.EndUpdate();
                                }
                            }
                        }
                    }

                    buttonExit.Enabled         = true;
                    buttonAdd.Enabled          = true;
                    buttonDelete.Enabled       = true;
                    tvEconomicActivity.Enabled = true;
                    textBoxName.Text           = string.Empty;

                    buttonEdit.Text = GetString("buttonEdit");
                }
            }
            catch (Exception ex)
            {
                new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog();
            }

            SelectRootNode();

            tvEconomicActivity.Sort();
        }
Exemplo n.º 25
0
        private void LoadContracts()
        {
            int loans = 0;

            lvContracts.Items.Clear();

            PaymentMethod paymentMethod =
                ServicesProvider.GetInstance().GetPaymentMethodServices().GetPaymentMethodById(1);

            foreach (VillageMember member in _village.Members)
            {
                foreach (Loan loan in member.ActiveLoans)
                {
                    if (null == loan || loan.ContractStatus != OContractStatus.Active)
                    {
                        continue;
                    }
                    if (loan.NsgID != _village.Id)
                    {
                        continue;
                    }

                    var         result      = new KeyValuePair <Loan, RepaymentEvent>();
                    Installment installment = loan.GetFirstUnpaidInstallment();

                    if (null == installment)
                    {
                        continue;
                    }

                    loans++;

                    Person       person = member.Tiers as Person;
                    ListViewItem item   = new ListViewItem(person.Name)
                    {
                        Tag = loan
                    };
                    item.SubItems.Add(loan.Code);

                    OCurrency principalHasToPay = result.Value == null
                                                      ? installment.PrincipalHasToPay
                                                      : (result.Value).Principal;

                    ListViewItem.ListViewSubItem subitem = new ListViewItem.ListViewSubItem
                    {
                        Text = principalHasToPay.GetFormatedValue(
                            loan.UseCents),
                        Tag = principalHasToPay
                    };
                    item.SubItems.Add(subitem);

                    OCurrency interestHasToPay = result.Value == null
                                                      ? installment.InterestHasToPay
                                                      : (result.Value).Interests;

                    subitem = new ListViewItem.ListViewSubItem
                    {
                        Text = interestHasToPay.GetFormatedValue(loan.UseCents),
                        Tag  = interestHasToPay
                    };
                    item.SubItems.Add(subitem);

                    subitem = new ListViewItem.ListViewSubItem();
                    OCurrency penalties = loan.CalculateDuePenaltiesForInstallment(installment.Number,
                                                                                   TimeProvider.Today);
                    subitem.Text = penalties.GetFormatedValue(loan.UseCents);
                    subitem.Tag  = penalties;
                    item.SubItems.Add(subitem);

                    subitem = new ListViewItem.ListViewSubItem();
                    OCurrency total = principalHasToPay + interestHasToPay + penalties;
                    subitem.Text = total.GetFormatedValue(loan.UseCents);
                    subitem.Tag  = total;
                    item.SubItems.Add(subitem);

                    subitem = new ListViewItem.ListViewSubItem();
                    OCurrency olb = ServicesProvider.GetInstance().GetGeneralSettings().IsOlbBeforeRepayment
                                        ? installment.OLB
                                        : installment.OLBAfterRepayment;
                    subitem.Text = olb.GetFormatedValue(loan.UseCents);
                    subitem.Tag  = olb;
                    item.SubItems.Add(subitem);

                    OCurrency dueInterest = 0;
                    foreach (Installment installmentItem in loan.InstallmentList)
                    {
                        if (!installmentItem.IsRepaid)
                        {
                            dueInterest += installmentItem.InterestsRepayment - installmentItem.PaidInterests;
                        }
                    }

                    subitem = new ListViewItem.ListViewSubItem
                    {
                        Text = dueInterest.GetFormatedValue(loan.UseCents),
                        Tag  = dueInterest
                    };
                    item.SubItems.Add(subitem);

                    subitem = new ListViewItem.ListViewSubItem
                    {
                        Text = loan.Product.Currency.Code,
                        Tag  = loan.Product.Currency
                    };
                    item.SubItems.Add(subitem);

                    cbItem.SelectedIndex = 0;

                    subitem = new ListViewItem.ListViewSubItem
                    {
                        Text = cbItem.SelectedItem.ToString(),
                        Tag  = cbItem.SelectedItem
                    };
                    item.SubItems.Add(subitem);

                    subitem = new ListViewItem.ListViewSubItem();
                    item.SubItems.Add(subitem);

                    lvContracts.Items.Add(item);
                }
            }

            if (0 == loans)
            {
                btnOK.Enabled = false;
                return;
            }

            _itemTotal.SubItems.Add("");
            _itemTotal.SubItems.Add("0");
            _itemTotal.SubItems.Add("0");
            _itemTotal.SubItems.Add("0");
            _itemTotal.SubItems.Add("0");
            _itemTotal.SubItems.Add("");
            _itemTotal.SubItems.Add("");
            _itemTotal.SubItems.Add("");
            _itemTotal.SubItems.Add("");

            lvContracts.Items.Add(_itemTotal);
        }
Exemplo n.º 26
0
        static void Main(string[] args)
        {
            QueuedSMSServices     _queuedSMSService     = ServiceProvider.GetQueuedSMSServices();
            UserServices          _userService          = ServiceProvider.GetUserServices();
            ClientServices        _clientService        = ServiceProvider.GetClientServices();
            SavingServices        _savingService        = ServiceProvider.GetSavingServices();
            PaymentMethodServices _paymentMethodService = ServiceProvider.GetPaymentMethodServices();

            var generalSettingsService = ServicesProvider.GetInstance().GetApplicationSettingsServices();

            generalSettingsService.FillGeneralDatabaseParameter();

            Console.WriteLine("Executing sms charges job");

            var queuedsms = _queuedSMSService.GetUncharged();

            Console.WriteLine("");
            Console.WriteLine("-------------------------------------");
            Console.WriteLine("Charging SMS");
            Console.WriteLine("Uncharged sms count: " + queuedsms.Count);

            decimal smsCharge = Convert.ToDecimal(ApplicationSettings.GetInstance("").GetSpecificParameter(OGeneralSettings.SMS_CHARGE));

            var adminUser     = _userService.Find(1);
            var paymentMethod = _paymentMethodService.GetPaymentMethodByName("Cash");

            foreach (QueuedSMS qe in queuedsms)
            {
                try
                {
                    if (qe.ContractId.HasValue && qe.Charged.HasValue && !qe.Charged.Value)
                    {
                        SavingBookContract _saving = _savingService.GetSaving(qe.ContractId.Value);

                        //Get all sms for same saving book contract
                        var smsGroup = _queuedSMSService.FindByContractId(_saving.Id);

                        string description = "";

                        string formatedAccountNumber = "******" + _saving.Code.Substring(_saving.Code.Length - 4);

                        OCurrency SMSCharges = smsGroup.Count * smsCharge;

                        if (smsGroup.Count > 0)
                        {
                            string   desc  = "SMS charges of {0:.00} for {1:dd.MM.yyyy} - {2:dd.MM.yyyy} : {3}";
                            object[] items = new object[] { SMSCharges.GetFormatedValue(true), smsGroup.First().CreatedOnUtc, smsGroup.Last().CreatedOnUtc, formatedAccountNumber };
                            description = string.Format(desc, items);
                        }
                        if (smsGroup.Count == 0)
                        {
                            string   desc  = "SMS charges of {0:.00} for {1:dd.MM.yyyy} : {3}";
                            object[] items = new object[] { SMSCharges.GetFormatedValue(true), smsGroup.First().CreatedOnUtc, formatedAccountNumber };
                            description = string.Format(desc, items);
                            smsGroup.First().Charged = true;
                        }
                        _savingService.Withdraw(_saving, DateTime.Now, SMSCharges, true, description, "", adminUser,
                                                Teller.CurrentTeller, paymentMethod);

                        qe.Charged = true;
                        foreach (var sms in smsGroup)
                        {
                            sms.Charged = true;
                            queuedsms.Where(s => s.Id == sms.Id).First().Charged = true;
                            _queuedSMSService.Update(sms);
                        }

                        //Send sms charge notification
                        Person person = _clientService.FindPersonById(qe.RecipientId.Value);
                        if (person != null)
                        {
                            if (person.SMSDelivery.HasValue && person.SMSDelivery.Value)
                            {
                                string mfbName = Convert.ToString(ServicesProvider.GetInstance().GetGeneralSettings().GetSpecificParameter(OGeneralSettings.MFI_NAME));
                                //var message = messageTemplate.Body;
                                var messageReplaced = mfbName + " " + description;// Tokenizer.Replace(message, tokens, false);

                                var sms = new QueuedSMS()
                                {
                                    From         = Convert.ToString(ServicesProvider.GetInstance().GetGeneralSettings().GetSpecificParameter(OGeneralSettings.SMS_FROM_NUMBER)),
                                    Recipient    = person.PersonalPhone,
                                    RecipientId  = person.Id,
                                    ContractId   = _saving != null ? _saving.Id : 0,
                                    Charged      = true,
                                    Message      = messageReplaced,
                                    SentTries    = 0,
                                    CreatedOnUtc = DateTime.UtcNow,
                                };

                                _queuedSMSService.Add(sms);
                            }
                        }
                    }
                }
                catch (Exception exc)
                {
                    Console.WriteLine(string.Format("Error charging sms: {0}", exc.Message), exc);
                }
                finally
                {
                }
            }
        }
Exemplo n.º 27
0
        private void SaveCorporate(object sender, EventArgs e)
        {
            try
            {
                _corporate.CreationDate       = TimeProvider.Now;
                _corporate.RegistrationDate   = dateTimePickerDateOfCreate.Value;
                _corporate.AgrementSolidarity = false;


                RecoverDatasFromUserControlsAddress();
                _corporate.Name      = textBoxLastNameCorporate.Text;
                _corporate.Sigle     = textBoxSigle.Text;
                _corporate.SmallName = textBoxSmallNameCorporate.Text;

                _corporate.Branch = (Branch)cbBranch.SelectedItem;
                if (_corporate.Name != null)
                {
                    _corporate.Name = _corporate.Name.Trim();
                }

                _corporate.Sigle     = _corporate.Sigle.Trim();
                _corporate.SmallName = _corporate.SmallName.Trim();
                EventProcessorServices es = ServicesProvider.GetInstance().GetEventProcessorServices();
                if (_corporate.Id == 0)
                {
                    _corporate.Id = ServicesProvider
                                    .GetInstance()
                                    .GetClientServices()
                                    .SaveCorporate(_corporate, _fundingLine, tx =>
                    {
                        foreach (var extension in Extensions)
                        {
                            extension.Save(_corporate, tx);
                        }
                    });
                    buttonSave.Text = MultiLanguageStrings.GetString(Ressource.CorporateUserControl, "buttonUpdate.Text");
                    es.LogClientSaveUpdateEvent(_corporate, true);
                }
                else
                {
                    ServicesProvider.
                    GetInstance()
                    .GetClientServices()
                    .SaveCorporate(Corporate, null, tx => Extensions.ForEach(c => c.Save(Corporate, tx)));
                    es.LogClientSaveUpdateEvent(_corporate, false);
                }

                if (SaveCorporateFundingLine != null)
                {
                    SaveCorporateFundingLine(this, e);
                }

                _saved = true;
            }
            catch (Exception ex)
            {
                new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog();
            }
            finally
            {
                _create = false;
                if (CloseCorporate != null)
                {
                    CloseCorporate(this, null);
                }
            }
            if (ButtonSaveClick != null)
            {
                ButtonSaveClick(this, e);
            }
        }
Exemplo n.º 28
0
        public void ConfigureServices(IServiceCollection services)
        {
            var servicesProvider = new ServicesProvider();

            servicesProvider.Populate(services);
        }
Exemplo n.º 29
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (!_nsgForm.Save())
            {
                return;
            }

            bool             isError = false;
            ISavingsContract saving  = null;

            try
            {
                foreach (ListViewItem item in lvMembers.Items)
                {
                    if (item == _itemTotal)
                    {
                        continue;
                    }
                    if (!item.Checked)
                    {
                        continue;
                    }
                    var     member = item.Tag as VillageMember;
                    IClient client = member.Tiers;

                    OCurrency initialAmount = (OCurrency)item.SubItems[idxInitialAmount].Tag;
                    double    interestRate  = (double)item.SubItems[idxInterestRate].Tag;
                    OCurrency entryFees     = (OCurrency)item.SubItems[idxEntryFees].Tag;

                    if (_product is SavingsBookProduct)
                    {
                        SavingsBookProduct sbp               = (SavingsBookProduct)_product;
                        decimal            withdrawFees      = (decimal)item.SubItems[idxWithdrawFees].Tag;
                        decimal            transferFees      = (decimal)item.SubItems[idxTransferFees].Tag;
                        decimal            ibtFees           = Convert.ToDecimal(item.SubItems[idxIbtFees].Tag);
                        decimal            depositFees       = (decimal)item.SubItems[idxDepositFees].Tag;
                        decimal            chequeDepositFees = (decimal)item.SubItems[idxChequeDepositFees].Tag;
                        decimal            closeFees         = (decimal)item.SubItems[idxCloseFees].Tag;
                        decimal            managementFees    = (decimal)item.SubItems[idxManagementFees].Tag;
                        decimal            overdraftFees     = (decimal)item.SubItems[idxOverdraftFees].Tag;
                        decimal            agioFees          = (decimal)item.SubItems[idxAgioFees].Tag;
                        decimal            reopenFees        = (decimal)item.SubItems[idxReopenFees].Tag;

                        saving = new SavingBookContract(ServicesProvider.GetInstance().GetGeneralSettings(),
                                                        User.CurrentUser, TimeProvider.Today, sbp, client)
                        {
                            InterestRate = interestRate / 100
                        };
                        SavingBookContract s = (SavingBookContract)saving;

                        if (sbp.WithdrawFeesType == OSavingsFeesType.Flat)
                        {
                            s.FlatWithdrawFees = withdrawFees;
                        }
                        else
                        {
                            s.RateWithdrawFees = (double)withdrawFees / 100;
                        }

                        if (sbp.TransferFeesType == OSavingsFeesType.Flat)
                        {
                            s.FlatTransferFees = transferFees;
                        }
                        else
                        {
                            s.RateTransferFees = (double)transferFees / 100;
                        }

                        if (sbp.InterBranchTransferFee.IsFlat)
                        {
                            s.FlatInterBranchTransferFee = ibtFees;
                        }
                        else
                        {
                            s.RateInterBranchTransferFee = Convert.ToDouble(ibtFees);
                        }

                        s.DepositFees       = depositFees;
                        s.ChequeDepositFees = chequeDepositFees;
                        s.CloseFees         = closeFees;
                        s.ManagementFees    = managementFees;
                        s.OverdraftFees     = overdraftFees;
                        s.AgioFees          = (double)agioFees / 100;
                        s.ReopenFees        = reopenFees;
                    }

                    saving.SavingsOfficer = _village.LoanOfficer;
                    saving.InitialAmount  = initialAmount;
                    saving.EntryFees      = entryFees;
                    saving.NsgID          = _village.Id;
                    saving.Id             = ServicesProvider.GetInstance().GetSavingServices().SaveContract(saving, (Client)member.Tiers);
                    saving = ServicesProvider.GetInstance().GetSavingServices().GetSaving(saving.Id);

                    ServicesProvider.GetInstance().GetSavingServices().FirstDeposit(saving, initialAmount, TimeProvider.Now, entryFees,
                                                                                    User.CurrentUser, Teller.CurrentTeller);
                    ServicesProvider.GetInstance().GetSavingServices().UpdateInitialData(saving.Id, initialAmount, entryFees);

                    saving = ServicesProvider.GetInstance().GetSavingServices().GetSaving(saving.Id);
                    ((Client)member.Tiers).AddSaving(saving);
                }
            }
            catch (Exception ex)
            {
                isError = true;
                new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog();
            }
            finally
            {
                InitializeControls();
            }

            if (!isError)
            {
                DialogResult = DialogResult.OK;
                Close();
            }
        }
Exemplo n.º 30
0
        private void lvMembers_ItemChecked(object sender, ItemCheckedEventArgs e)
        {
            ListViewItem item = e.Item;

            item.Font = new Font("Arial", 9F, item.Checked ? FontStyle.Bold : FontStyle.Regular);
            foreach (ListViewItem.ListViewSubItem subitem in item.SubItems)
            {
                subitem.Font = item.Font;
            }
            if (item.Checked && item != _itemTotal)
            {
                if (string.IsNullOrEmpty(item.SubItems[IdxAmount].Text)) // Amount
                {
                    if (_product.CycleId == null)
                    {
                        if (_product.Amount.HasValue)
                        {
                            item.SubItems[IdxAmount].Text = _product.Amount.GetFormatedValue(_product.Currency.UseCents);
                            item.SubItems[IdxAmount].Tag  = _product.Amount;
                        }
                        else
                        {
                            item.SubItems[IdxAmount].Text = _product.AmountMin.GetFormatedValue(_product.Currency.UseCents);
                            item.SubItems[IdxAmount].Tag  = _product.AmountMin;
                        }
                    }
                    else
                    {
                        item.SubItems[IdxAmount].Text = ((VillageMember)item.Tag).Product.AmountMin.GetFormatedValue(_product.Currency.UseCents);
                    }
                }
                if (string.IsNullOrEmpty(item.SubItems[IdxCurrency].Text)) // Currency
                {
                    if (_product.CycleId == null)
                    {
                        if (_product.Amount.HasValue)
                        {
                            item.SubItems[IdxCurrency].Text = _product.Currency.Code;
                            item.SubItems[IdxCurrency].Tag  = _product.Currency.Code;
                        }
                        else
                        {
                            item.SubItems[IdxCurrency].Text = _product.Currency.Code;
                            item.SubItems[IdxCurrency].Tag  = _product.Currency.Code;
                        }
                    }
                    else
                    {
                        item.SubItems[IdxCurrency].Text = ((VillageMember)item.Tag).Product.Currency.Code;
                    }
                }
                if (string.IsNullOrEmpty(item.SubItems[IdxInterest].Text)) // Interest
                {
                    if (_product.CycleId == null)
                    {
                        if (_product.InterestRate.HasValue)
                        {
                            item.SubItems[IdxInterest].Text = Math.Round(_product.InterestRate.Value * 100, decimalPlaces).ToString();
                            item.SubItems[IdxInterest].Tag  = _product.InterestRate;
                        }
                        else
                        {
                            item.SubItems[IdxInterest].Text = Math.Round(_product.InterestRateMin.Value * 100, decimalPlaces).ToString();
                            item.SubItems[IdxInterest].Tag  = _product.InterestRateMin;
                        }
                    }
                    else
                    {
                        item.SubItems[IdxInterest].Text = Math.Round(((VillageMember)item.Tag).Product.InterestRateMin.Value * 100, decimalPlaces).ToString();
                    }
                }
                if (string.IsNullOrEmpty(item.SubItems[IdxGracePeriod].Text)) // Grace period
                {
                    if (_product.GracePeriod.HasValue)
                    {
                        item.SubItems[IdxGracePeriod].Text = _product.GracePeriod.ToString();
                        item.SubItems[IdxGracePeriod].Tag  = _product.GracePeriod;
                    }
                    else
                    {
                        item.SubItems[IdxGracePeriod].Text = _product.GracePeriodMin.ToString();
                        item.SubItems[IdxGracePeriod].Tag  = _product.GracePeriodMin;
                    }
                }
                if (string.IsNullOrEmpty(item.SubItems[IdxInstallments].Text)) // Installments
                {
                    if (_product.CycleId == null)
                    {
                        if (_product.NbOfInstallments.HasValue)
                        {
                            item.SubItems[IdxInstallments].Text = _product.NbOfInstallments.ToString();
                            item.SubItems[IdxInstallments].Tag  = _product.NbOfInstallments;
                        }
                        else
                        {
                            item.SubItems[IdxInstallments].Text = _product.NbOfInstallmentsMin.ToString();
                            item.SubItems[IdxInstallments].Tag  = _product.NbOfInstallmentsMin;
                        }
                    }
                    else
                    {
                        item.SubItems[IdxInstallments].Text = ((VillageMember)item.Tag).Product.NbOfInstallmentsMin.ToString();
                    }
                }
                if (string.IsNullOrEmpty(item.SubItems[IdxLoanOfficer].Text)) // Loan officer
                {
                    item.SubItems[IdxLoanOfficer].Text = _village.LoanOfficer.ToString();
                    item.SubItems[IdxLoanOfficer].Tag  = _village.LoanOfficer;
                }

                if (string.IsNullOrEmpty(item.SubItems[IdxCreationDate].Text)) // Credit Committee date
                {
                    item.SubItems[IdxCreationDate].Text = TimeProvider.Today.ToShortDateString();
                    item.SubItems[IdxCreationDate].Tag  = TimeProvider.Today.ToShortDateString();
                }

                if (string.IsNullOrEmpty(item.SubItems[IdxFundingLine].Text)) // Funding line
                {
                    FundingLine fl;
                    string      flName;
                    if (_product.FundingLine != null)
                    {
                        flName = _product.FundingLine.Name;
                        fl     = _product.FundingLine;
                    }
                    else if (cbFundingLine.Items.Count > 0)
                    {
                        flName = ((FundingLine)cbFundingLine.Items[0]).Name;
                        fl     = (FundingLine)cbFundingLine.Items[0];
                    }
                    else
                    {
                        flName = string.Empty;
                        fl     = null;
                    }
                    item.SubItems[IdxFundingLine].Text = flName;
                    item.SubItems[IdxFundingLine].Tag  = fl;
                    _accumulatedAmount = _fLServices.CheckIfAmountIsEnough(fl, decimal.Parse(item.SubItems[2].Text));
                    item.SubItems[IdxRemainingFlMoney].Text = _accumulatedAmount.ToString();
                    if (_accumulatedAmount <= 0)
                    {
                        item.BackColor = Color.Red;
                    }
                    else
                    {
                        item.BackColor = Color.Transparent;
                    }
                }
                if (_product.UseCompulsorySavings && string.IsNullOrEmpty(item.SubItems[IdxCompulsorySavings].Text))
                {
                    //item.SubItems[IdxCompulsorySavings]. = _village.
                    //item.SubItems[IdxCompulsorySavings].Tag = _village.LoanOfficer;

                    cbCompulsorySavings.Items.Clear();
                    List <ISavingsContract> savings = ServicesProvider.GetInstance().GetSavingServices().GetSavingsByClientId(((VillageMember)e.Item.Tag).Tiers.Id);
                    savings = savings.Where(item2 => item2 is SavingBookContract).ToList(); // Only savings book

                    if (savings.Count > 0)
                    {
                        foreach (SavingBookContract saving in savings)
                        {
                            cbCompulsorySavings.Items.Add(saving);
                        }

                        item.SubItems[IdxCompulsorySavings].Text = savings[0].Code;
                        item.SubItems[IdxCompulsorySavings].Tag  = savings[0];
                    }
                }
                if (_product.UseCompulsorySavings && string.IsNullOrEmpty(item.SubItems[IdxCompulsoryPercentage].Text))
                {
                    if (_product.CompulsoryAmount.HasValue)
                    {
                        item.SubItems[IdxCompulsoryPercentage].Text = _product.CompulsoryAmount.ToString();
                        item.SubItems[IdxCompulsoryPercentage].Tag  = _product.CompulsoryAmount;
                    }
                    else
                    {
                        item.SubItems[IdxCompulsoryPercentage].Text = _product.CompulsoryAmountMin.ToString();
                        item.SubItems[IdxCompulsoryPercentage].Tag  = _product.CompulsoryAmountMin;
                    }
                }

                /*if (string.IsNullOrEmpty(item.SubItems[IdxPaymentMethod].Text))
                 * {
                 *  cbPaymentMethods.Items.Clear();
                 *  List<PaymentMethod> methods = ServicesProvider.GetInstance().GetPaymentMethodServices().GetAllPaymentMethods();
                 *
                 *  if (methods.Count > 0)
                 *  {
                 *      foreach (PaymentMethod method in methods)
                 *          cbPaymentMethods.Items.Add(method.Name);
                 *
                 *      item.SubItems[IdxPaymentMethod].Text = methods[0].Name;
                 *      item.SubItems[IdxPaymentMethod].Tag = methods[0].Method;
                 *  }
                 * }*/
            }
            else
            {
                for (int i = 2; i < item.SubItems.Count; i++)
                {
                    item.SubItems[i].Text = "";
                }
            }
            if (item == _itemTotal)
            {
                foreach (ListViewItem i in item.ListView.Items)
                {
                    i.Checked = item.Checked;
                }
            }
            UpdateTotal();
        }
Exemplo n.º 31
0
        private void OnEditSaving(EditSavingMessage message)
        {
            var client = ServicesProvider.GetInstance().GetClientServices().FindTiersBySavingsId(message.Id);

            InitializeSavingContractForm(client, message.Id);
        }
Exemplo n.º 32
0
        private void lvMembers_SubItemClicked(object sender, SubItemEventArgs e)
        {
            if (e.Item.Checked && e.Item != _itemTotal)
            {
                switch (e.SubItem)
                {
                case IdxAmount:     // Amount
                    if (_product.CycleId != null)
                    {
                        lvMembers.StartEditing(tbAmount, e.Item, e.SubItem);
                    }
                    if (!_product.Amount.HasValue)
                    {
                        lvMembers.StartEditing(tbAmount, e.Item, e.SubItem);
                    }
                    break;

                case IdxInterest:     // Interest
                    if (_product.CycleId != null)
                    {
                        lvMembers.StartEditing(tbInterest, e.Item, e.SubItem);
                    }
                    else if (!_product.InterestRate.HasValue)
                    {
                        lvMembers.StartEditing(tbInterest, e.Item, e.SubItem);
                    }
                    break;

                case IdxGracePeriod:     // Grace period
                    if (!_product.GracePeriod.HasValue)
                    {
                        lvMembers.StartEditing(udGracePeriod, e.Item, e.SubItem);
                    }
                    break;

                case IdxInstallments:     // Installments
                    if (_product.CycleId != null)
                    {
                        udInstallments.Minimum = ((VillageMember)e.Item.Tag).Product.NbOfInstallmentsMin.Value;
                        udInstallments.Maximum = ((VillageMember)e.Item.Tag).Product.NbOfInstallmentsMax.Value;
                        lvMembers.StartEditing(udInstallments, e.Item, e.SubItem);
                    }
                    else if (!_product.NbOfInstallments.HasValue)
                    {
                        lvMembers.StartEditing(udInstallments, e.Item, e.SubItem);
                    }
                    break;

                case IdxLoanOfficer:
                    lvMembers.StartEditing(cbLoanOfficer, e.Item, e.SubItem);
                    break;

                case IdxCreationDate:
                    lvMembers.StartEditing(dtCreationDate, e.Item, e.SubItem);
                    break;

                case IdxFundingLine:
                    lvMembers.StartEditing(cbFundingLine, e.Item, e.SubItem);
                    break;

                case IdxCompulsorySavings:
                    if (_product.UseCompulsorySavings)
                    {
                        cbCompulsorySavings.Items.Clear();
                        List <ISavingsContract> savings = ServicesProvider.GetInstance().GetSavingServices().
                                                          GetSavingsByClientId(((VillageMember)e.Item.Tag).Tiers.Id);
                        savings = savings.Where(item2 => item2 is SavingBookContract &&
                                                item2.Status != OSavingsStatus.Closed).ToList(); // Only savings book

                        foreach (SavingBookContract saving in savings)
                        {
                            cbCompulsorySavings.Items.Add(saving);
                        }

                        lvMembers.StartEditing(cbCompulsorySavings, e.Item, e.SubItem);
                    }
                    break;

                case IdxCompulsoryPercentage:
                    if (_product.UseCompulsorySavings && !_product.CompulsoryAmount.HasValue)
                    {
                        lvMembers.StartEditing(udCompulsoryPercentage, e.Item, e.SubItem);
                    }
                    break;

                /*
                 * case IdxPaymentMethod:
                 *  cbPaymentMethods.Items.Clear();
                 *  List<PaymentMethod> methods = ServicesProvider.GetInstance().GetPaymentMethodServices().GetAllPaymentMethods();
                 *
                 *  foreach (PaymentMethod method in methods)
                 *      cbPaymentMethods.Items.Add(method.Name);
                 *
                 *  lvMembers.StartEditing(cbPaymentMethods, e.Item, e.SubItem);
                 *  break;
                 */
                default:
                    break;
                }
            }
        }
Exemplo n.º 33
0
 public static ServicesProvider GetServiceProvider()
 {
     if (_theUniqueInstance == null)
         return _theUniqueInstance = new ServicesProvider();
     return _theUniqueInstance;
 }
Exemplo n.º 34
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();
            }
        }
Exemplo n.º 35
0
        private void InitializeControls()
        {
            lvMembers.Items.Clear();
            Color dfc = Color.Gray;
            Color fc  = Color.Black;
            Color bc  = Color.White;

            _fLServices.EmptyTemporaryFLAmountsStorage();

            dtCreationDate.Format       = DateTimePickerFormat.Custom;
            dtCreationDate.CustomFormat = ApplicationSettings.GetInstance("").SHORT_DATE_FORMAT;

            ApplicationSettings generalParameters = ApplicationSettings.GetInstance("");

            decimalPlaces = generalParameters.InterestRateDecimalPlaces;
            ProductServices productServices = ServicesProvider.GetInstance().GetProductServices();
            List <Loan>     listLoan;

            foreach (VillageMember member in _village.Members)
            {
                listLoan = member.ActiveLoans;
                if (listLoan.Count != 0 && !generalParameters.IsAllowMultipleLoans)
                {
                    continue;
                }

                _hasMember = true;
                Person person = (Person)member.Tiers;

                if (_product.CycleId != null)
                {
                    productServices.SetVillageMemberCycleParams(member, _product.Id, person.LoanCycle);
                }
                else
                {
                    member.Product = _product;
                }

                ListViewItem item = new ListViewItem(person.Name)
                {
                    Tag = member
                };
                if (_product.CycleId != null)
                {
                    item.SubItems.Add(person.IdentificationData);
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", member.Product.Amount.HasValue ? dfc : fc, bc, item.Font));
                    item.SubItems.Add(member.Product.Currency.Code);
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", member.Product.InterestRate.HasValue ? dfc : fc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", member.Product.GracePeriod.HasValue ? dfc : fc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", member.Product.NbOfInstallments.HasValue ? dfc : fc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", dfc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", dfc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", dfc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", dfc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", true ? dfc : fc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", dfc, bc, item.Font));
                    item.SubItems.Add("");
                    item.SubItems.Add("");
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", member.Product.Amount.HasValue ? dfc : fc, bc, item.Font));
                    if (_product.UseCompulsorySavings)
                    {
                        item.SubItems.Add("");
                        item.SubItems.Add(
                            new ListViewItem.ListViewSubItem(item, "", member.Product.CompulsoryAmount.HasValue ? dfc : fc, bc, item.Font));
                    }
                    lvMembers.Items.Add(item);
                    item.SubItems[IdxAmount].Tag       = member.Product.AmountMin;
                    item.SubItems[IdxInterest].Tag     = member.Product.InterestRateMin;
                    item.SubItems[IdxInstallments].Tag = member.Product.NbOfInstallmentsMin;
                    item.SubItems[IdxCurrency].Tag     = member.Product.Currency;
                }
                else
                {
                    item.SubItems.Add(person.IdentificationData);
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", _product.Amount.HasValue ? dfc : fc, bc, item.Font));
                    item.SubItems.Add(_product.Currency.Code);
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", _product.InterestRate.HasValue ? dfc : fc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", _product.GracePeriod.HasValue ? dfc : fc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", _product.NbOfInstallments.HasValue ? dfc : fc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", dfc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", dfc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", dfc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", dfc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", true ? dfc : fc, bc, item.Font));
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", dfc, bc, item.Font));
                    item.SubItems.Add("");
                    item.SubItems.Add("");
                    item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", _product.Amount.HasValue ? dfc : fc, bc, item.Font));
                    if (_product.UseCompulsorySavings)
                    {
                        item.SubItems.Add("");
                        item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "", _product.CompulsoryAmount.HasValue ? dfc : fc, bc, item.Font));
                    }
                    lvMembers.Items.Add(item);
                    item.SubItems[IdxCurrency].Tag = member.Product.Currency;
                }
            }
            if (_hasMember)
            {
                OCurrency zero = 0m;
                _itemTotal.Text = GetString("Total");
                _itemTotal.SubItems.Add("");
                _itemTotal.SubItems.Add(zero.GetFormatedValue(true));
                _itemTotal.SubItems.Add("");
                lvMembers.Items.Add(_itemTotal);
            }
            lvMembers.SubItemClicked       += lvMembers_SubItemClicked;
            lvMembers.SubItemEndEditing    += lvMembers_SubItemEndEditing;
            lvMembers.DoubleClickActivation = true;

            if (!_product.GracePeriod.HasValue)
            {
                udGracePeriod.Minimum = _product.GracePeriodMin ?? 0;
                udGracePeriod.Maximum = _product.GracePeriodMax ?? 0;
            }

            if (_product.CycleId == null)
            {
                if (!_product.NbOfInstallments.HasValue)
                {
                    udInstallments.Minimum = _product.NbOfInstallmentsMin ?? 0;
                    udInstallments.Maximum = _product.NbOfInstallmentsMax ?? 0;
                }
            }

            List <User> users = ServicesProvider.GetInstance().GetUserServices().FindAll(false);

            foreach (User user in users)
            {
                cbLoanOfficer.Items.Add(user);
            }

            List <FundingLine> lines = ServicesProvider.GetInstance().GetFundingLinesServices().SelectFundingLines();

            foreach (FundingLine line in lines)
            {
                cbFundingLine.Items.Add(line);
            }

            // Compulsory savings
            if (_product.UseCompulsorySavings)
            {
                if (!_product.CompulsoryAmount.HasValue)
                {
                    udCompulsoryPercentage.Minimum = _product.CompulsoryAmountMin ?? 0;
                    udCompulsoryPercentage.Maximum = _product.CompulsoryAmountMax ?? 0;
                }
            }
        }
Exemplo n.º 36
0
        void ImportMwsDeck(GameInfoItem gameItem, DeckItem deck, string text, CodesMapService mappingManager, Dictionary<string, string> discardedLines)
        {
            ServicesProvider engServicesProvider = servicesProvider;
              if(engServicesProvider.GameLanguageCode != "eng")
              {
            engServicesProvider = new ServicesProvider("eng", "eng");
            engServicesProvider.LoadGame(gameItem);
              }
              discardedLines.Clear();
              foreach(string line in text.Split(new string[] {Environment.NewLine}, StringSplitOptions.None).
            Select(e => e.Trim()).Where(e => e.Length > 0 && !e.StartsWith("//")))
              {
            string[] lineParts = line.Split(' ');
            if(lineParts.Length < 3)
              continue;

            try
            {
              var cardList = deck.MainCards;
              int partIndex = 0;
              if(lineParts[0] == "SB:")
              {
            partIndex++;
            cardList = deck.SideboardCards;
              }
              int amount;
              if(int.TryParse(lineParts[partIndex++], out amount))
              {
            string mwsSetCode = string.Empty;
            try
            {
              mwsSetCode = lineParts[partIndex++].Replace("[", string.Empty).Replace("]", string.Empty);
            }
            catch
            {
              throw new Exception("Cannot read set code on this line: " + line);
            }
            string cardName = string.Empty;
            try
            {
              cardName = string.Concat(
                lineParts.Skip(partIndex).Where(e => e != "(1)" && e != "(2)" && e != "(3)" && e != "(4)").Select(
                e => string.Concat(e, " ")).ToArray()).TrimEnd();
              cardName = cardName.Split(new string[] { "--" }, StringSplitOptions.None).First();
            }
            catch
            {
              throw new Exception("Cannot read card name on this line: " + line);
            }
            string internalSetCode = mappingManager.GetCode(mwsSetCode);
            if(string.IsNullOrEmpty(internalSetCode))
              throw new Exception("Set code unknown: " + mwsSetCode);
            CardSearchParams p = new CardSearchParams();
            p.Sets.Add(internalSetCode);
            p.Name = cardName;
            p.Language = "ENG";
            p.NameExact = true;

            CardItem cardItem = engServicesProvider.CardsService.SelectCards(p).FirstOrDefault();
            if(cardItem == null)
              throw new Exception("Card name unknown: " + cardName);
            for(int i = 0; i < amount; i++)
              cardList.Add(cardItem.Clone());
              }
              else
              {
            throw new Exception("Cannot read card amount on this line: " + line);
              }
            }
            catch(Exception ex)
            {
              discardedLines.Add(line, ex.Message);
            }
              }
        }