private FundingLineAccountingRule _getFundingLineAccountingRule(OpenCbsReader reader)
        {
            FundingLineAccountingRule rule = new FundingLineAccountingRule();

            rule.Id           = reader.GetInt("id");
            rule.DebitAccount = new Account {
                Id = reader.GetInt("debit_account_number_id")
            };
            rule.CreditAccount = new Account {
                Id = reader.GetInt("credit_account_number_id")
            };
            rule.BookingDirection = (OBookingDirections)reader.GetSmallInt("booking_direction");

            int?fundingLineId = reader.GetInt("funding_line_id");

            if (fundingLineId.HasValue)
            {
                rule.FundingLine = new FundingLine {
                    Id = fundingLineId.Value
                }
            }
            ;

            return(rule);
        }
    }
Exemple #2
0
        public Currency GetPivot()
        {
            Currency     pivot = null;
            const string q     = "SELECT * FROM Currencies where is_pivot = 1";

            using (SqlConnection conn = GetConnection())
                using (OpenCbsCommand c = new OpenCbsCommand(q, conn))
                    using (OpenCbsReader r = c.ExecuteReader())
                    {
                        if (r == null || r.Empty)
                        {
                            return(pivot);
                        }
                        while (r.Read())
                        {
                            pivot = new Currency
                            {
                                Id        = r.GetInt("id"),
                                Name      = r.GetString("name"),
                                Code      = r.GetString("code"),
                                IsPivot   = r.GetBool("is_pivot"),
                                IsSwapped = r.GetBool("is_swapped"),
                                UseCents  = r.GetBool("use_cents")
                            };
                        }
                        return(pivot);
                    }
        }
        public bool SelectAccountingRuleByChartOfAccountsId(Account account)
        {
            const string sqlText = @"SELECT TOP 1 id
                                    FROM AccountingRules
                                    WHERE debit_account_number_id = @id OR credit_account_number_id = @id";

            using (SqlConnection conn = GetConnection())
            {
                using (OpenCbsCommand select = new OpenCbsCommand(sqlText, conn))
                {
                    select.AddParam("@id", account.Id);

                    int?inUse;
                    using (OpenCbsReader reader = select.ExecuteReader())
                    {
                        if (reader == null || reader.Empty)
                        {
                            return(false);
                        }

                        reader.Read();
                        inUse = reader.GetInt("id");
                    }
                    return(inUse != null);
                }
            }
        }
Exemple #4
0
        public List <Currency> SelectAllCurrencies(SqlTransaction t)
        {
            List <Currency> currencies = new List <Currency>();
            const string    q          = @"SELECT * FROM Currencies ORDER BY is_pivot DESC";

            using (OpenCbsCommand c = new OpenCbsCommand(q, t.Connection, t))
                using (OpenCbsReader r = c.ExecuteReader())
                {
                    if (r == null || r.Empty)
                    {
                        return(currencies);
                    }
                    while (r.Read())
                    {
                        currencies.Add(new Currency
                        {
                            Id        = r.GetInt("id"),
                            Name      = r.GetString("name"),
                            Code      = r.GetString("code"),
                            IsPivot   = r.GetBool("is_pivot"),
                            IsSwapped = r.GetBool("is_swapped"),
                            UseCents  = r.GetBool("use_cents")
                        });
                    }
                }

            return(currencies);
        }
        public Account SelectChartAccount(int pAccountId)
        {
            const string sqlText = @"SELECT id, 
                                       account_number,
                                       label,
                                       debit_plus, 
                                       type_code,                                                    
                                       account_category_id, 
                                       type,  
                                       parent_account_id, lft, rgt
                                     FROM ChartOfAccounts 
                                     WHERE id = @id";

            using (SqlConnection conn = GetConnection())
            {
                using (OpenCbsCommand select = new OpenCbsCommand(sqlText, conn))
                {
                    select.AddParam("@id", pAccountId);
                    using (OpenCbsReader reader = select.ExecuteReader())
                    {
                        if (reader == null || reader.Empty)
                        {
                            return(null);
                        }

                        reader.Read();
                        return(GetAccount(reader));
                    }
                }
            }
        }
        ///// <summary>
        ///// This method Fill the instance of the ProvisioningTable object accessed by singleton
        ///// </summary>
        public List <ProvisioningRate> SelectAllProvisioningRates()
        {
            List <ProvisioningRate> list = new List <ProvisioningRate>();

            const string sqlText = @"SELECT 
                                       id,
                                       number_of_days_min, 
                                       number_of_days_max, 
                                       provisioning_value 
                                     FROM ProvisioningRules";

            using (SqlConnection conn = GetConnection())
            {
                using (OpenCbsCommand select = new OpenCbsCommand(sqlText, conn))
                {
                    using (OpenCbsReader reader = select.ExecuteReader())
                    {
                        if (reader.Empty)
                        {
                            return(list);
                        }
                        while (reader.Read())
                        {
                            list.Add(GetProvisionningRate(reader));
                        }
                        return(list);
                    }
                }
            }
        }
        public Booking SelectStandardBookingById(int id)
        {
            const string sqlText = @"SELECT Id, [Name], debit_account_id, credit_account_id 
                                    FROM StandardBookings
                                    WHERE Id = @Id";
            Booking standardBooking = new Booking();
            using (SqlConnection conn = GetConnection())
            {
                using (OpenCbsCommand select = new OpenCbsCommand(sqlText, conn))
                {
                    select.AddParam("@Id", id);

                    using (OpenCbsReader reader = select.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            standardBooking.Id = reader.GetInt("Id");
                            standardBooking.Name = reader.GetString("Name");

                            Account account =
                                _chartOfAccounts.GetAccountById(reader.GetInt("debit_account_id"));
                            standardBooking.DebitAccount = account;

                            account =
                                _chartOfAccounts.GetAccountById(reader.GetInt("credit_account_id"));
                            standardBooking.CreditAccount = account;
                        }
                    }
                }
            }
            return standardBooking;
        }
        public List <Account> SelectAllAccounts()
        {
            List <Account> list = new List <Account>();

            const string sqlText = @"SELECT id, 
                                       account_number,
                                       label,
                                       debit_plus, 
                                       type_code,                                                    
                                       account_category_id, 
                                       type,  
                                       parent_account_id, lft, rgt
                                     FROM ChartOfAccounts
                                     ORDER BY account_number";

            using (SqlConnection conn = GetConnection())
            {
                using (OpenCbsCommand select = new OpenCbsCommand(sqlText, conn))
                {
                    using (OpenCbsReader reader = select.ExecuteReader())
                    {
                        if (reader == null || reader.Empty)
                        {
                            return(list);
                        }
                        while (reader.Read())
                        {
                            list.Add(GetAccount(reader));
                        }
                    }
                    return(list);
                }
            }
        }
Exemple #9
0
        public Currency SelectCurrencyByName(string name)
        {
            const string q = @"SELECT id, code, is_pivot, is_swapped, use_cents FROM [Currencies] WHERE name = @name";

            using (SqlConnection conn = GetConnection())
                using (OpenCbsCommand c = new OpenCbsCommand(q, conn))
                {
                    c.AddParam("@name", name);
                    using (OpenCbsReader r = c.ExecuteReader())
                    {
                        if (r == null || r.Empty)
                        {
                            return(null);
                        }

                        r.Read();
                        return(new Currency
                        {
                            Id = r.GetInt("id"),
                            Code = r.GetString("code"),
                            Name = name,
                            IsPivot = r.GetBool("is_pivot"),
                            IsSwapped = r.GetBool("is_swapped"),
                            UseCents = r.GetBool("use_cents")
                        });
                    }
                }
        }
Exemple #10
0
        public List <AccountCategory> SelectAccountCategories()
        {
            List <AccountCategory> list = new List <AccountCategory>();

            const string sqlText = @"SELECT id, name FROM AccountsCategory";

            using (SqlConnection conn = GetConnection())
            {
                using (OpenCbsCommand select = new OpenCbsCommand(sqlText, conn))
                {
                    using (OpenCbsReader reader = select.ExecuteReader())
                    {
                        if (reader == null || reader.Empty)
                        {
                            return(list);
                        }
                        while (reader.Read())
                        {
                            list.Add(new AccountCategory
                            {
                                Id   = reader.GetSmallInt("id"),
                                Name = reader.GetString("name"),
                            }
                                     );
                        }
                        return(list);
                    }
                }
            }
        }
Exemple #11
0
        public static string GetDatabaseVersion(string database, SqlConnection connection)
        {
            if (connection == null)
            {
                throw new ArgumentException("Both connection and transaction cannot be null.");
            }

            if (!IsOctopusDatabase(database, connection))
            {
                return(string.Empty);
            }

            string sqlText = string.Format(
                "USE [{0}] SELECT [value] FROM [TechnicalParameters] WHERE [name]='version'", database);

            using (OpenCbsCommand select = new OpenCbsCommand(sqlText, connection))
                using (OpenCbsReader reader = select.ExecuteReader())
                {
                    if (reader.Empty)
                    {
                        return(string.Empty);
                    }
                    reader.Read();
                    return(reader.GetString("value"));
                }
        }
Exemple #12
0
        private static Dictionary <string, char> GetFilelist(string file, SqlConnection connection)
        {
            //list of files of a backup.
            Dictionary <string, char> databaseFiles = new Dictionary <string, char>();

            string q = @"RESTORE FILELISTONLY FROM DISK = '{0}'";

            q = string.Format(q, file);
            OpenCbsCommand cmd = new OpenCbsCommand(q, connection);

            using (OpenCbsReader reader = cmd.ExecuteReader())
            {
                if (null == reader || reader.Empty)
                {
                    return(null);
                }
                while (reader.Read())
                {
                    string logicalName = reader.GetString("LogicalName");
                    char   type        = reader.GetString("Type").ToCharArray()[0];
                    databaseFiles.Add(logicalName, type);
                }
            }
            return(databaseFiles);
        }
Exemple #13
0
        public AccountCategory SelectAccountCategoriesById(int id)
        {
            const string sqlText = @"SELECT id, name 
                                     FROM AccountsCategory
                                     WHERE id = @id";

            using (SqlConnection conn = GetConnection())
            {
                using (OpenCbsCommand select = new OpenCbsCommand(sqlText, conn))
                {
                    select.AddParam("@id", id);
                    using (OpenCbsReader reader = select.ExecuteReader())
                    {
                        if (reader == null || reader.Empty)
                        {
                            return(null);
                        }
                        reader.Read();
                        return(new AccountCategory
                        {
                            Id = reader.GetSmallInt("id"),
                            Name = reader.GetString("name"),
                        });
                    }
                }
            }
        }
        public List<Booking> SelectAllStandardBookings()
        {
            const string sqlText = @"SELECT Id, [Name], debit_account_id, credit_account_id FROM StandardBookings";
            List<Booking> list = new List<Booking>();
            using (SqlConnection conn = GetConnection())
            {
                using (OpenCbsCommand select = new OpenCbsCommand(sqlText, conn))
                {
                    using (OpenCbsReader reader = select.ExecuteReader())
                    {
                        if (reader.Empty) return list;
                        while (reader.Read())
                        {
                            Booking standardBooking = new Booking();
                            standardBooking.Id = reader.GetInt("Id");
                            standardBooking.Name = reader.GetString("Name");

                            Account account =
                                _chartOfAccounts.GetAccountById(reader.GetInt("debit_account_id"));
                            standardBooking.DebitAccount = account;

                            account =
                                _chartOfAccounts.GetAccountById(reader.GetInt("credit_account_id"));
                            standardBooking.CreditAccount = account;

                            list.Add(standardBooking);
                        }
                    }
                }
                return list;
            }
        }
        public ExchangeRate Select(DateTime pDate, Currency pCurrency)
        {
            const string q = @"SELECT exchange_date, exchange_rate, currency_id
                                FROM ExchangeRates 
                                WHERE DATEADD(dd, 0, DATEDIFF(dd, 0, exchange_date)) = @date 
                                  AND currency_id = @currency";

            using (SqlConnection conn = GetConnection())
                using (OpenCbsCommand c = new OpenCbsCommand(q, conn))
                {
                    c.AddParam("@date", pDate.Date);
                    c.AddParam("@currency", pCurrency.Id);

                    using (OpenCbsReader r = c.ExecuteReader())
                    {
                        if (r.Empty)
                        {
                            return(null);
                        }

                        r.Read();

                        return(new ExchangeRate
                        {
                            Date = pDate,
                            Rate = r.GetDouble("exchange_rate"),
                            Currency = pCurrency
                        });
                    }
                }
        }
Exemple #16
0
        private static SavingEvent ReadEvent(OpenCbsReader r, ISavingProduct pProduct)
        {
            string      code = r.GetString("code");
            SavingEvent e    = GetSavingsEvent(code);

            SetSavingsEvent(r, e, pProduct);

            return(e);
        }
Exemple #17
0
 private static LoanScaleRate GetLoanScale(OpenCbsReader pReader)
 {
     return(new LoanScaleRate
     {
         Number = pReader.GetInt("id"),
         ScaleMin = pReader.GetInt("ScaleMin"),
         ScaleMax = pReader.GetInt("ScaleMax")
     });
 }
        /// <summary>
        /// Select all events for selected Funding Line
        /// </summary>
        /// <param name="fundingLine">funding line </param>
        /// <returns>list of Funding Line events</returns>
        public List <FundingLineEvent> SelectFundingLineEvents(FundingLine fundingLine)
        {
            List <FundingLineEvent> list = new List <FundingLineEvent>();

            const string sqlText =
                @"SELECT 
                        [id],
                        [code],
                        [amount],
                        [direction],
                        [fundingline_id],
                        [deleted],
                        [creation_date],
                        [type] 
                  FROM [FundingLineEvents] 
                  WHERE fundingline_id = @fundingline_id 
                  ORDER BY creation_date DESC, id DESC";

            using (SqlConnection conn = GetConnection())
                using (OpenCbsCommand cmd = new OpenCbsCommand(sqlText, conn))
                {
                    cmd.AddParam("@fundingline_id", fundingLine.Id);

                    using (OpenCbsReader reader = cmd.ExecuteReader())
                    {
                        if (reader == null || reader.Empty)
                        {
                            return(list);
                        }
                        {
                            while (reader.Read())
                            {
                                FundingLineEvent fundingLineEvent = new FundingLineEvent
                                {
                                    Id       = reader.GetInt("id"),
                                    Code     = reader.GetString("code"),
                                    Amount   = reader.GetMoney("amount"),
                                    Movement =
                                        ((OBookingDirections)
                                         reader.GetSmallInt("direction")),
                                    IsDeleted =
                                        reader.GetBool("deleted"),
                                    CreationDate =
                                        reader.GetDateTime("creation_date"),
                                    Type =
                                        ((OFundingLineEventTypes)
                                         reader.GetSmallInt("type")),
                                    FundingLine = fundingLine
                                };
                                list.Add(fundingLineEvent);
                            }
                        }
                    }
                    return(list);
                }
        }
 private static ProvisioningRate GetProvisionningRate(OpenCbsReader reader)
 {
     return(new ProvisioningRate
     {
         Number = reader.GetInt("id"),
         NbOfDaysMin = reader.GetInt("number_of_days_min"),
         NbOfDaysMax = reader.GetInt("number_of_days_max"),
         Rate = reader.GetDouble("provisioning_value")
     });
 }
        /// <summary>
        /// Create at "SetupPath" a OCTOPUS_('version').xml who contains diagram of the current database
        /// </summary>
        public static void SaveDatabaseDiagramsInXml(bool pDestination, string pDatabaseName, SqlConnection pSqlConnection)
        {
            string         sql     = string.Format(@"USE [{0}] SELECT table_name, column_name, data_type, is_nullable 
			                FROM information_schema.columns WHERE(table_name IN (SELECT table_name FROM Information_Schema.Tables 
		                    WHERE Table_Type = 'Base Table')) ORDER BY table_name"        , pDatabaseName);
            OpenCbsCommand command = new OpenCbsCommand(sql, pSqlConnection);

            string path = !pDestination
                              ? Path.Combine(UserSettings.GetUpdatePath, string.Format(SCHEMA_FILE_NAME, TechnicalSettings.SoftwareVersion))
                              : Path.Combine(UserSettings.GetUpdatePath, string.Format(LOCAL_SCHEMA_FILE_NAME, TechnicalSettings.SoftwareVersion));

            XmlTextWriter xml = new XmlTextWriter(path, Encoding.Unicode);

            xml.WriteStartDocument();
            xml.WriteStartElement("Database");
            xml.WriteAttributeString("Version", TechnicalSettings.SoftwareVersion);
            xml.WriteAttributeString("SystemDate", DateTime.Today.ToString("dd MM yyyy"));

            bool firstTable = true;

            using (OpenCbsReader reader = command.ExecuteReader())
            {
                string tableName = "";
                while (reader.Read())
                {
                    string tableNameTemp = reader.GetString("table_name");
                    if ((tableNameTemp != "sysdiagrams") && (tableNameTemp != "dtproperties") && (!tableNameTemp.StartsWith("Tconso_SP_Octopus_Consolidation_")))
                    {
                        if (tableName != tableNameTemp && firstTable)
                        {
                            xml.WriteStartElement("table");
                            tableName = tableNameTemp;
                            xml.WriteAttributeString("name", tableNameTemp);
                            firstTable = false;
                        }
                        else if (tableName != tableNameTemp)
                        {
                            xml.WriteEndElement(); //table

                            xml.WriteStartElement("table");
                            tableName = tableNameTemp;
                            xml.WriteAttributeString("name", tableNameTemp);
                        }
                        xml.WriteStartElement("column");
                        xml.WriteAttributeString("name", reader.GetString("column_name"));
                        xml.WriteAttributeString("type", reader.GetString("data_type"));
                        xml.WriteAttributeString("is_nullable", reader.GetString("is_nullable").Trim().ToUpper());
                        xml.WriteEndElement(); //column
                    }
                }
            }
            xml.WriteEndElement(); //database
            xml.Close();
        }
        public AccountingRuleCollection SelectAllByEventType(string type)
        {
            const string sqlText = @"SELECT id, rule_type
                                     FROM [AccountingRules] 
                                     WHERE deleted = 0
                                       AND (event_type = @event_type OR @event_type = '')";

            AccountingRuleCollection rules = new AccountingRuleCollection();

            using (SqlConnection conn = GetConnection())
            {
                using (OpenCbsCommand select = new OpenCbsCommand(sqlText, conn))
                {
                    select.AddParam("@event_type", type);

                    using (OpenCbsReader reader = select.ExecuteReader())
                    {
                        if (reader.Empty)
                        {
                            return(rules);
                        }

                        while (reader.Read())
                        {
                            if (reader.GetChar("rule_type") == 'C')
                            {
                                rules.Add(new ContractAccountingRule {
                                    Id = reader.GetInt("id")
                                });
                            }
                        }
                    }
                }
            }

            List <Account> accounts = _accountManager.SelectAllAccounts();

            for (int i = 0; i < rules.Count; i++)
            {
                if (rules[i] is ContractAccountingRule)
                {
                    rules[i] = SelectContractAccountingRule(rules[i].Id);
                }
                else
                {
                    rules[i] = SelectFundingLineAccountingRule(rules[i].Id);
                }

                rules[i].DebitAccount  = accounts.FirstOrDefault(item => item.Id == rules[i].DebitAccount.Id);
                rules[i].CreditAccount = accounts.FirstOrDefault(item => item.Id == rules[i].CreditAccount.Id);
            }

            return(rules);
        }
        public List <ExchangeRate> SelectRatesByDate(DateTime beginDate, DateTime endDate)
        {
            const string q =
                @"SELECT 
                     exchange_date, 
                     exchange_rate, 
                     currency_id,
                    is_pivot,
                    is_swapped,
                    name,
                    code
                  FROM ExchangeRates 
                  INNER JOIN Currencies ON ExchangeRates.currency_id = Currencies.id 
                  WHERE exchange_date BETWEEN @beginDate AND @endDate";

            List <ExchangeRate> rates;

            using (SqlConnection conn = GetConnection())
                using (OpenCbsCommand c = new OpenCbsCommand(q, conn))
                {
                    c.AddParam("@beginDate", beginDate.Date);
                    c.AddParam("@endDate", endDate.Date);
                    using (OpenCbsReader r = c.ExecuteReader())
                    {
                        if (r == null || r.Empty)
                        {
                            return(null);
                        }

                        rates = new List <ExchangeRate>();
                        while (r.Read())
                        {
                            ExchangeRate newRate = new ExchangeRate
                            {
                                Date     = r.GetDateTime("exchange_date"),
                                Rate     = r.GetDouble("exchange_rate"),
                                Currency = new Currency
                                {
                                    Id        = r.GetInt("currency_id"),
                                    IsPivot   = r.GetBool("is_pivot"),
                                    IsSwapped = r.GetBool("is_swapped"),
                                    Name      = r.GetString("name"),
                                    Code      = r.GetString("code")
                                }
                            };
                            rates.Add(newRate);
                        }
                    }
                }
            return(rates);
        }
Exemple #23
0
        private static string BackupToFile(string fileName, string database, SqlConnection connection)
        {
            string backupDirectory;

            if (TechnicalSettings.UseDemoDatabase)
            {
                backupDirectory = @"C:\Users\Public";
            }
            else
            {
                // To perform a backup we first need to get the appropriate backup folder, which is a bit tricky.
                // First, we need to get the service name.
                const string   query       = "SELECT @@SERVICENAME AS name";
                OpenCbsCommand cmd         = new OpenCbsCommand(query, connection);
                string         serviceName = string.Empty;
                using (OpenCbsReader reader = cmd.ExecuteReader())
                {
                    if (reader.Empty)
                    {
                        return(null);
                    }
                    reader.Read();
                    serviceName = reader.GetString("name");
                }

                // Then get the instance name from the registry
                const string sqlServerKey = @"SOFTWARE\Microsoft\Microsoft SQL Server";
                string       key          = string.Format(@"{0}\Instance Names\SQL", sqlServerKey);
                string       instanceName = ExtendedRegistry.GetKeyValue(key, serviceName);
                if (string.IsNullOrEmpty(instanceName))
                {
                    return(null);
                }

                // Finally, get the backup directory
                key             = string.Format(@"{0}\{1}\MSSQLServer", sqlServerKey, instanceName);
                backupDirectory = ExtendedRegistry.GetKeyValue(key, "BackupDirectory");
                if (string.IsNullOrEmpty(backupDirectory))
                {
                    return(null);
                }
            }

            string path = Path.Combine(backupDirectory, fileName);

            BackupToFileImpl(path, database, connection);
            return(path);
        }
        public List <QueuedEmail> SelectAll()
        {
            List <QueuedEmail> qeuedEmails = new List <QueuedEmail>();
            const string       q           =
                @"SELECT * FROM dbo.QueuedEmails where Deleted <> 1";

            using (SqlConnection conn = GetConnection())
                using (OpenCbsCommand c = new OpenCbsCommand(q, conn))
                    using (OpenCbsReader r = c.ExecuteReader())
                    {
                        if (r.Empty)
                        {
                            return(qeuedEmails);
                        }

                        while (r.Read())
                        {
                            var queuedEmail = new QueuedEmail
                            {
                                Id             = r.GetInt("Id"),
                                Priority       = r.GetInt("Priority"),
                                From           = r.GetString("From"),
                                FromName       = r.GetString("FromName"),
                                To             = r.GetString("To"),
                                ToName         = r.GetString("ToName"),
                                ReplyTo        = r.GetString("ReplyTo"),
                                ReplyToName    = r.GetString("ReplyToName"),
                                CC             = r.GetString("CC"),
                                Bcc            = r.GetString("Bcc"),
                                Body           = r.GetString("Body"),
                                CreatedOnUtc   = r.GetDateTime("CreatedOnUtc"),
                                SentOnUtc      = r.GetNullDateTime("SentOnUtc"),
                                EmailAccountId = r.GetInt("EmailAccountId"),
                                SentTries      = r.GetInt("SentTries"),
                                Subject        = r.GetString("Subject"),
                                Deleted        = r.GetBool("Deleted"),
                            };

                            if (queuedEmail.EmailAccountId > 0)
                            {
                                EmailAccountManager _emailAccountManager = new EmailAccountManager(user);
                                queuedEmail.EmailAccount = _emailAccountManager.SelectById(queuedEmail.EmailAccountId);
                            }
                            qeuedEmails.Add(queuedEmail);
                        }
                    }
            return(qeuedEmails);
        }
Exemple #25
0
 private static Account GetAccount(OpenCbsReader pReader)
 {
     return(new Account
     {
         Id = pReader.GetInt("id"),
         Number = pReader.GetString("account_number"),
         Label = pReader.GetString("label"),
         DebitPlus = pReader.GetBool("debit_plus"),
         TypeCode = pReader.GetString("type_code"),
         AccountCategory = ((OAccountCategories)pReader.GetSmallInt("account_category_id")),
         Type = pReader.GetBool("type"),
         ParentAccountId = pReader.GetNullInt("parent_account_id"),
         Left = pReader.GetInt("lft"),
         Right = pReader.GetInt("rgt")
     });
 }
        public IAccountingRule Select(int pId)
        {
            const string sqlText = @"SELECT rule_type
                                     FROM [AccountingRules]
                                     WHERE deleted = 0 
                                     AND id = @id";

            IAccountingRule rule = new ContractAccountingRule();

            using (SqlConnection conn = GetConnection())
            {
                using (OpenCbsCommand select = new OpenCbsCommand(sqlText, conn))
                {
                    select.AddParam("@id", pId);

                    using (OpenCbsReader reader = select.ExecuteReader())
                    {
                        if (reader.Empty)
                        {
                            return(null);
                        }

                        reader.Read();
                        if (reader.GetChar("rule_type") == 'C')
                        {
                            rule = new ContractAccountingRule {
                                Id = pId
                            }
                        }
                        ;
                    }
                }
            }

            if (rule is ContractAccountingRule)
            {
                rule = SelectContractAccountingRule(rule.Id);
            }

            List <Account> accounts = _accountManager.SelectAllAccounts();

            rule.DebitAccount  = accounts.FirstOrDefault(item => item.Id == rule.DebitAccount.Id);
            rule.CreditAccount = accounts.FirstOrDefault(item => item.Id == rule.CreditAccount.Id);

            return(rule);
        }
        /// <summary>
        /// Fills General Settings with values from database
        /// </summary>
        ///

        public void FillGeneralSettings()
        {
            ApplicationSettings.GetInstance(_user.Md5).DeleteAllParameters();

            string sqlText = "SELECT  UPPER([key]) as [key], [value] FROM GeneralParameters";

            using (SqlConnection conn = GetConnection())
                using (OpenCbsCommand c = new OpenCbsCommand(sqlText, conn))
                    using (OpenCbsReader r = c.ExecuteReader())
                    {
                        while (r.Read())
                        {
                            ApplicationSettings.GetInstance(_user.Md5).AddParameter(r.GetString("key"),
                                                                                    r.GetString("value"));
                        }
                    }
        }
Exemple #28
0
        public static string GetDatabaseBranchCode(string pDatabaseName, SqlConnection pSqlConnection)
        {
            string sqlText = string.Format("USE [{0}] SELECT [value] FROM [GeneralParameters] WHERE [key]='BRANCH_CODE'", pDatabaseName);

            using (OpenCbsCommand select = new OpenCbsCommand(sqlText, pSqlConnection))
            {
                using (OpenCbsReader reader = select.ExecuteReader())
                {
                    if (reader.Empty)
                    {
                        return(string.Empty);
                    }
                    reader.Read();
                    return(reader.GetString("value"));
                }
            }
        }
        public Guid?GetGuid()
        {
            string query = "SELECT [value] FROM TechnicalParameters WHERE [name] = 'GUID'";

            using (SqlConnection conn = GetConnection())
                using (OpenCbsCommand c = new OpenCbsCommand(query, conn))
                    using (OpenCbsReader r = c.ExecuteReader())
                    {
                        if (!r.Empty)
                        {
                            r.Read();
                            string temp = r.GetString("value");
                            return(new Guid(temp));
                        }
                    }
            return(null);
        }
        public int SelectFundingLineEventId(FundingLineEvent pFundingLineEvent, SqlTransaction sqlTransac,
                                            bool includeDeleted)
        {
            int id = -1;

            string sqlText =
                @"SELECT [id] 
                          FROM [FundingLineEvents] 
                          WHERE [code] = @code 
                                 AND [amount] = @amount
                                 AND [direction] = @direction
                                 AND [type] = @type
                                 AND [fundingline_id] = @fundinglineid";

            if (!includeDeleted)
            {
                sqlText += " and deleted = @deleted";
            }

            OpenCbsCommand cmd = new OpenCbsCommand(sqlText, sqlTransac.Connection, sqlTransac);

            cmd.AddParam("@code", pFundingLineEvent.Code);
            cmd.AddParam("@amount", pFundingLineEvent.Amount);
            cmd.AddParam("@direction", (int)pFundingLineEvent.Movement);
            cmd.AddParam("@type", (int)pFundingLineEvent.Type);
            cmd.AddParam("@fundinglineid", pFundingLineEvent.FundingLine.Id);
            if (!includeDeleted)
            {
                cmd.AddParam("@deleted", pFundingLineEvent.IsDeleted);
            }

            using (OpenCbsReader reader = cmd.ExecuteReader())
            {
                if (reader != null)
                {
                    if (!reader.Empty)
                    {
                        reader.Read();
                        id = reader.GetInt("id");
                    }
                }
            }
            return(id);
        }
Exemple #31
0
 private static Event GetWriteOffEvent(OpenCbsReader r)
 {
     return new WriteOffEvent
                           {
                               Id = r.GetInt("woe_id"),
                               OLB = r.GetMoney("woe_olb"),
                               AccruedInterests = r.GetMoney("woe_accrued_interests"),
                               AccruedPenalties = r.GetMoney("woe_accrued_penalties"),
                               PastDueDays = r.GetInt("woe_past_due_days"),
                               OverduePrincipal = r.GetMoney("woe_overdue_principal")
                           };
 }
        private static LoanProduct GetProduct(OpenCbsReader r)
        {
            LoanProduct package = new LoanProduct();
            package.Id = r.GetInt("id");
            package.Delete = r.GetBool("deleted");
            package.Name = r.GetString("name");
            package.Code = r.GetString("code");
            package.ClientType = r.GetChar("client_type");
            package.LoanType = (OLoanTypes)r.GetSmallInt("loan_type");
            package.RoundingType = (ORoundingType)r.GetSmallInt("rounding_type");
            package.Amount = r.GetMoney("amount");
            package.AmountMin = r.GetMoney("amount_min");
            package.AmountMax = r.GetMoney("amount_max");
            package.InterestRate = r.GetNullDecimal("interest_rate");
            package.InterestRateMin = r.GetNullDecimal("interest_rate_min");
            package.InterestRateMax = r.GetNullDecimal("interest_rate_max");
            package.GracePeriod = r.GetNullInt("grace_period");
            package.GracePeriodMin = r.GetNullInt("grace_period_min");
            package.GracePeriodMax = r.GetNullInt("grace_period_max");
            package.GracePeriodOfLateFees = r.GetNullInt("grace_period_of_latefees");
            package.NbOfInstallments = r.GetNullInt("number_of_installments");
            package.NbOfInstallmentsMin = r.GetNullInt("number_of_installments_min");
            package.NbOfInstallmentsMax = r.GetNullInt("number_of_installments_max");

            package.AnticipatedTotalRepaymentPenalties = r.GetNullDouble("anticipated_total_repayment_penalties");
            package.AnticipatedTotalRepaymentPenaltiesMin = r.GetNullDouble("anticipated_total_repayment_penalties_min");
            package.AnticipatedTotalRepaymentPenaltiesMax = r.GetNullDouble("anticipated_total_repayment_penalties_max");

            package.AnticipatedPartialRepaymentPenalties = r.GetNullDouble("anticipated_partial_repayment_penalties");
            package.AnticipatedPartialRepaymentPenaltiesMin = r.GetNullDouble("anticipated_partial_repayment_penalties_min");
            package.AnticipatedPartialRepaymentPenaltiesMax = r.GetNullDouble("anticipated_partial_repayment_penalties_max");

            package.ChargeInterestWithinGracePeriod = r.GetBool("charge_interest_within_grace_period");
            package.KeepExpectedInstallment = r.GetBool("keep_expected_installment");

            package.AnticipatedTotalRepaymentPenaltiesBase = (OAnticipatedRepaymentPenaltiesBases)r.GetSmallInt("anticipated_total_repayment_base");
            package.AnticipatedPartialRepaymentPenaltiesBase = (OAnticipatedRepaymentPenaltiesBases)r.GetSmallInt("anticipated_partial_repayment_base");

            package.NonRepaymentPenalties.InitialAmount = r.GetNullDouble("non_repayment_penalties_based_on_initial_amount");
            package.NonRepaymentPenalties.OLB = r.GetNullDouble("non_repayment_penalties_based_on_olb");
            package.NonRepaymentPenalties.OverDueInterest = r.GetNullDouble("non_repayment_penalties_based_on_overdue_interest");
            package.NonRepaymentPenalties.OverDuePrincipal = r.GetNullDouble("non_repayment_penalties_based_on_overdue_principal");

            package.NonRepaymentPenaltiesMin.InitialAmount = r.GetNullDouble("non_repayment_penalties_based_on_initial_amount_min");
            package.NonRepaymentPenaltiesMin.OLB = r.GetNullDouble("non_repayment_penalties_based_on_olb_min");
            package.NonRepaymentPenaltiesMin.OverDuePrincipal = r.GetNullDouble("non_repayment_penalties_based_on_overdue_principal_min");
            package.NonRepaymentPenaltiesMin.OverDueInterest = r.GetNullDouble("non_repayment_penalties_based_on_overdue_interest_min");

            package.NonRepaymentPenaltiesMax.InitialAmount = r.GetNullDouble("non_repayment_penalties_based_on_initial_amount_max");
            package.NonRepaymentPenaltiesMax.OLB = r.GetNullDouble("non_repayment_penalties_based_on_olb_max");
            package.NonRepaymentPenaltiesMax.OverDueInterest = r.GetNullDouble("non_repayment_penalties_based_on_overdue_interest_max");
            package.NonRepaymentPenaltiesMax.OverDuePrincipal = r.GetNullDouble("non_repayment_penalties_based_on_overdue_principal_max");
            package.AllowFlexibleSchedule = r.GetBool("allow_flexible_schedule");

            package.UseGuarantorCollateral = r.GetBool("use_guarantor_collateral");
            package.SetSeparateGuarantorCollateral = r.GetBool("set_separate_guarantor_collateral");

            package.PercentageTotalGuarantorCollateral = r.GetInt("percentage_total_guarantor_collateral");
            package.PercentageSeparateGuarantour = r.GetInt("percentage_separate_guarantor");
            package.PercentageSeparateCollateral = r.GetInt("percentage_separate_collateral");

            package.UseCompulsorySavings = r.GetBool("use_compulsory_savings");
            package.CompulsoryAmount = r.GetNullInt("compulsory_amount");
            package.CompulsoryAmountMin = r.GetNullInt("compulsory_amount_min");
            package.CompulsoryAmountMax = r.GetNullInt("compulsory_amount_max");
            package.UseEntryFeesCycles = r.GetBool("use_entry_fees_cycles");

            //if (DatabaseHelper.GetNullAuthorizedInt32("fundingLine_id", pReader).HasValue)
            //{
            //    package.FundingLine = new FundingLine { Id = r.GetNullInt("fundingLine_id").Value };
            //    package.FundingLine.Name = r.GetString("funding_line_name");
            //    package.FundingLine.Currency = new Currency { Id = r.GetInt("funding_line_currency_id") };
            //}
            if (r.GetNullInt("currency_id").HasValue)
            {
                package.Currency = new Currency
                                       {
                                           Id = r.GetInt("currency_id"),
                                           Code = r.GetString("currency_code"),
                                           Name = r.GetString("currency_name"),
                                           IsPivot = r.GetBool("currency_is_pivot"),
                                           IsSwapped = r.GetBool("currency_is_swapped"),
                                           UseCents = r.GetBool("currency_use_cents")
                                       };
            }

            /* Line of credit */
            package.DrawingsNumber = r.GetNullInt("number_of_drawings_loc");

            package.AmountUnderLoc = r.GetMoney("amount_under_loc");
            package.AmountUnderLocMin = r.GetMoney("amount_under_loc_min");
            package.AmountUnderLocMax = r.GetMoney("amount_under_loc_max");

            package.MaturityLoc = r.GetNullInt("maturity_loc");
            package.MaturityLocMin = r.GetNullInt("maturity_loc_min");
            package.MaturityLocMax = r.GetNullInt("maturity_loc_max");
            package.ActivatedLOC = r.GetBool("activated_loc");
            package.CycleId = r.GetNullInt("cycle_id");
            package.CreditInsuranceMin = r.GetDecimal("insurance_min");
            package.CreditInsuranceMax = r.GetDecimal("insurance_max");
            package.InterestScheme = (OInterestScheme)r.GetInt("interest_scheme");
            return package;
        }
 private static EntryFee GetEntryFee(OpenCbsReader r)
 {
     EntryFee entryFee = new EntryFee
                        {
                            Id = r.GetInt("id"),
                            Name = r.GetString("name_of_fee"),
                            Min = r.GetNullDecimal("min"),
                            Max = r.GetNullDecimal("max"),
                            Value = r.GetNullDecimal("value"),
                            IsRate = r.GetNullBool("rate") ?? false,
                            Index = r.GetInt("fee_index"),
                            CycleId = r.GetNullInt("cycle_id")
                        };
     return entryFee;
 }
 private static ExoticInstallmentsTable _GetExoticProduct(OpenCbsReader r)
 {
     return new ExoticInstallmentsTable
                {
                    Id = r.GetInt("id"),
                    Name = r.GetString("name")
                };
 }
 private static ExoticInstallment _GetExoticInstallment(OpenCbsReader r)
 {
     return new ExoticInstallment
                {
                    Number = r.GetInt("number"),
                    PrincipalCoeff = r.GetDouble("principal_coeff"),
                    InterestCoeff =r.GetNullDouble("interest_coeff")
                };
 }
 private static BookingToView GetBooking(Account pAccount, OpenCbsReader reader)
 {
     return new BookingToView
                {
                    Date = reader.GetDateTime("date"),
                    EventCode = reader.GetString("event_code"),
                    ExchangeRate = reader.GetNullDouble("exchange_rate"),
                    AmountInternal = reader.GetMoney("amount"),
                    ContractCode = reader.GetString("contract_code"),
                    Direction =
                        (reader.GetString("debit_local_account_number") == pAccount.Number
                             ? OBookingDirections.Debit
                             : OBookingDirections.Credit),
                    IsExported = reader.GetBool("is_exported")
                };
 }
Exemple #37
0
        private static Alert GetAlert(OpenCbsReader pReader, char pType)
        {
            int i = 0;
            var alert = new Alert();

            while (i < pReader.FieldCount)
            {
                alert.AddParameter(pReader.GetName(i), pReader.GetValue(i));
                i++;
            }

            alert.Type = pType;
            return alert;
        }
Exemple #38
0
        private SavingBookContract GetSavingFromReader(OpenCbsReader pReader)
        {
            var savingContract = new SavingBookContract(
                ApplicationSettings.GetInstance(_user.Md5),
                _user);
            savingContract.Product = new SavingsBookProduct
            {
                Id = pReader.GetInt("product_id")
            };

            savingContract.Id = pReader.GetInt("id");
            savingContract.Code = pReader.GetString("code");
            savingContract.Status = (OSavingsStatus)pReader.GetSmallInt("status");
            savingContract.CreationDate = pReader.GetDateTime("creation_date");
            savingContract.ClosedDate = pReader.GetNullDateTime("closed_date");
            savingContract.InterestRate = pReader.GetDouble("interest_rate");
            savingContract.SavingsOfficer = new User
            {
                Id = pReader.GetInt("savings_officer_id")
                , FirstName = pReader.GetString("so_first_name")
                , LastName = pReader.GetString("so_last_name")
            };
            savingContract.InitialAmount = pReader.GetMoney("initial_amount");
            savingContract.EntryFees = pReader.GetMoney("entry_fees");
            savingContract.NsgID = pReader.GetNullInt("nsg_id");

            return savingContract;
        }
Exemple #39
0
        private Loan _GetLoan(OpenCbsReader r)
        {
            return new Loan(_user, ApplicationSettings.GetInstance(_user.Md5),
                            NonWorkingDateSingleton.GetInstance(_user.Md5),
                            ProvisionTable.GetInstance(_user), ChartOfAccounts.GetInstance(_user))
                       {
                           Id = r.GetInt("credit_id"),
                           ClientType = r.GetChar("client_type_code") == 'I'
                                            ? OClientTypes.Person
                                            : r.GetChar("client_type_code") == 'G'
                                                  ? OClientTypes.Group
                                                  : OClientTypes.Corporate,
                           ContractStatus = (OContractStatus) r.GetSmallInt("status"),
                           CreditCommiteeDate = r.GetNullDateTime("credit_commitee_date"),
                           CreditCommiteeComment = r.GetString("credit_commitee_comment"),
                           CreditCommitteeCode = r.GetString("credit_commitee_code"),
                           Amount = r.GetMoney("amount"),
                           InterestRate = r.GetDecimal("interest_rate"),
                           NbOfInstallments = r.GetInt("nb_of_installment"),
                           NonRepaymentPenalties = new NonRepaymentPenalties
                                                       {
                                                           InitialAmount = r.GetDouble("non_repayment_penalties_based_on_initial_amount"),
                                                           OLB = r.GetDouble("non_repayment_penalties_based_on_olb"),
                                                           OverDueInterest = r.GetDouble("non_repayment_penalties_based_on_overdue_interest"),
                                                           OverDuePrincipal = r.GetDouble("non_repayment_penalties_based_on_overdue_principal")
                                                       },

                           AnticipatedTotalRepaymentPenalties = r.GetDouble("anticipated_total_repayment_penalties"),
                           AnticipatedPartialRepaymentPenalties = r.GetDouble("anticipated_partial_repayment_penalties"),
                           AnticipatedPartialRepaymentPenaltiesBase = (OAnticipatedRepaymentPenaltiesBases)
                               r.GetSmallInt("anticipated_partial_repayment_base"),
                           AnticipatedTotalRepaymentPenaltiesBase =(OAnticipatedRepaymentPenaltiesBases)
                               r.GetSmallInt("anticipated_total_repayment_base"),

                           Disbursed = r.GetBool("disbursed"),
                           GracePeriod = r.GetNullInt("grace_period"),
                           GracePeriodOfLateFees = r.GetNullInt("grace_period_of_latefees"),
                           WrittenOff = r.GetBool("written_off"),
                           Rescheduled = r.GetBool("rescheduled"),

                           Code = r.GetString("contract_code"),
                           BranchCode = r.GetString("branch_code"),
                           CreationDate = r.GetDateTime("creation_date"),
                           StartDate = r.GetDateTime("start_date"),
                           AlignDisbursementDate = r.GetDateTime("align_disbursed_date"),
                           CloseDate = r.GetDateTime("close_date"),
                           Closed = r.GetBool("closed"),
                           BadLoan = r.GetBool("bad_loan"),
                           Synchronize = r.GetBool("synchronize"),
                           ScheduleChangedManually = r.GetBool("schedule_changed"),
                           AmountUnderLoc = r.GetMoney("amount_under_loc"),
                           CompulsorySavingsPercentage = r.GetNullInt("loan_percentage"),
                           LoanPurpose = r.GetString("loan_purpose"),
                           Comments = r.GetString("comments"),
                           AmountMin = r.GetMoney("amount_min"),
                           AmountMax = r.GetMoney("amount_max"),
                           InterestRateMin = r.GetNullDecimal("ir_min"),
                           InterestRateMax = r.GetNullDecimal("ir_max"),
                           NmbOfInstallmentsMin = r.GetNullInt("nmb_of_inst_min"),
                           NmbOfInstallmentsMax = r.GetNullInt("nmb_of_inst_max"),
                           LoanCycle = r.GetNullInt("loan_cycle"),
                           Insurance = r.GetDecimal("insurance"),
                           NsgID = r.GetNullInt("nsg_id"),
                           EconomicActivityId = r.GetInt("activity_id"),
                           FirstInstallmentDate = r.GetDateTime("preferred_first_installment_date"),
            };
        }
Exemple #40
0
 private static TrancheEvent GetTrancheLoanEvent(OpenCbsReader r)
 {
     return new TrancheEvent{
         Id = r.GetInt("tranche_id"),
         Amount = r.GetMoney("tranche_amount"),
         InterestRate = r.GetMoney("tranche_interest_rate").Value,
         Maturity = r.GetInt("tranche_maturity"),
         StartDate = r.GetDateTime("tranche_start_date")
     };
 }
Exemple #41
0
        private static Event GetSavingEvent(OpenCbsReader r)
        {
            SavingEvent e;

            switch (r.GetString("code"))
            {
                case OSavingEvents.Deposit:
                    e = new SavingDepositEvent();
                    break;
                case OSavingEvents.Withdraw:
                    e = new SavingWithdrawEvent();
                    break;
                case OSavingEvents.InitialDeposit:
                    e = new SavingInitialDepositEvent();
                    break;
                case OSavingEvents.CreditTransfer:
                    e = new SavingCreditTransferEvent();
                    break;
                case OSavingEvents.DebitTransfer:
                    e = new SavingDebitTransferEvent();
                    break;
                case OSavingEvents.SpecialOperationCredit:
                    e = new SavingCreditOperationEvent();
                    break;
                case OSavingEvents.SpecialOperationDebit:
                    e = new SavingDebitOperationEvent();
                    break;
                case OSavingEvents.InterBranchCreditTransfer:
                    e = new SavingCreditInterBranchTransferEvent();
                    break;
                case OSavingEvents.InterBranchDebitTransfer:
                    e = new SavingDebitInterBranchTransferEvent();
                    break;
                default:
                    throw new Exception();
            }

            e.Amount = r.GetMoney("se_amount");
            if (e is ISavingsFees)
                ((ISavingsFees)e).Fee = r.GetMoney("se_fees");
            if (e is SavingTransferEvent)
                ((SavingTransferEvent)e).RelatedContractCode = r.GetString("se_transfer_code");

            return e;
        }
Exemple #42
0
 private static RescheduleLoanEvent GetReschedulingLoanEvent(OpenCbsReader r)
 {
     return new RescheduleLoanEvent{
         Id = r.GetInt("rle_id"),
         Amount = r.GetMoney("rle_amount"),
         NbOfMaturity = r.GetInt("rle_maturity"),
         DateOffset = r.GetInt("rle_date_offset")
     };
 }
Exemple #43
0
 private static ProvisionEvent GetProvisionEvent(OpenCbsReader r)
 {
     return new ProvisionEvent{
         Id = r.GetInt("pe_id"),
         Amount = r.GetMoney("pe_amount"),
         OverdueDays = r.GetInt("pe_overdue_days")
     };
 }
Exemple #44
0
        private static SavingEvent ReadEvent(OpenCbsReader r, ISavingProduct pProduct)
        {
            string code = r.GetString("code");
            SavingEvent e = GetSavingsEvent(code);
            SetSavingsEvent(r, e, pProduct);

            return e;
        }
Exemple #45
0
 private LoanDisbursmentEvent GetLoanDisbursmentEvent(OpenCbsReader r)
 {
     return new LoanDisbursmentEvent
                {
                    Id = r.GetInt("lde_id"),
                    Amount = r.GetMoney("lde_amount"),
                    Fee = r.GetMoney("lde_fees"),
                    PaymentMethodId = r.GetNullInt("lde_pm"),
                    PaymentMethod = r.GetNullInt("lde_pm") == null
                                        ? null
                                        : _paymentMethodManager.SelectPaymentMethodById(
                                            r.GetNullInt("lde_pm").Value)
                };
 }
Exemple #46
0
        private RepaymentEvent GetRepaymentEvent(OpenCbsReader r)
        {
            RepaymentEvent e = new RepaymentEvent {Id = r.GetInt("rpe_id")};
            switch (r.GetString("event_type"))
            {
                case "RBLE":
                    {
                        e = new BadLoanRepaymentEvent {Id = r.GetInt("rpe_id")};
                        break;
                    }
                case "RRLE":
                    {
                        e = new RescheduledLoanRepaymentEvent {Id = r.GetInt("rpe_id")};
                        break;
                    }
                case "ROWO":
                    {
                        e = new RepaymentOverWriteOffEvent { Id = r.GetInt("rpe_id") };
                        break;
                    }
                case "PRLR":
                    {
                        e = new PendingRepaymentEvent(r.GetString("event_type"))
                                {Id = r.GetInt("rpe_id")};
                        break;
                    }
                case "PBLR":
                    {
                        e = new PendingRepaymentEvent(r.GetString("event_type"))
                                {Id = r.GetInt("rpe_id")};
                        break;
                    }
                case "PRWO":
                    {
                        e = new PendingRepaymentEvent(r.GetString("event_type"))
                                {Id = r.GetInt("rpe_id")};
                        break;
                    }
                case "PERE":
                    {
                        e = new PendingRepaymentEvent(r.GetString("event_type"))
                                {Id = r.GetInt("rpe_id")};
                        break;
                    }
            }

            e.Principal = r.GetMoney("rpe_principal");
            e.Interests = r.GetMoney("rpe_interests");
            e.Penalties = r.GetMoney("rpe_penalties");
            e.Commissions = r.GetMoney("rpe_commissions");
            e.PastDueDays = r.GetInt("rpe_past_due_days");
            e.InstallmentNumber = r.GetInt("rpe_installment_number");
            e.PaymentMethodId = r.GetNullInt("rpe_pm");
            e.PaymentMethod = e.PaymentMethodId == null ? null :
                _paymentMethodManager.SelectPaymentMethodById(e.PaymentMethodId.Value);

            e.CalculatedPenalties = r.GetMoney("rpe_calculated_penalties");
            e.WrittenOffPenalties = r.GetMoney("rpe_written_off_penalties");
            e.UnpaidPenalties = r.GetMoney("rpe_unpaid_penalties");

            e.Code = r.GetString("event_type");

            if (e.Code != "RBLE")
                e.RepaymentType = OPaymentType.StandardPayment;

            // set type of payment
            switch (r.GetString("event_type").Trim())
            {
                case "ATR":
                    {
                        e.RepaymentType = OPaymentType.TotalPayment;
                        break;
                    }
                case "APR":
                    {
                        e.RepaymentType = OPaymentType.PartialPayment;
                        break;
                    }
                case "APTR":
                    {
                        e.RepaymentType = OPaymentType.PersonTotalPayment;
                        break;
                    }
            }

            return e;
        }
        private static Booking GetBooking(OpenCbsReader reader)
        {
            return new Booking
                       {
                           Id = reader.GetInt("id"),
                           Amount = reader.GetMoney("amount"),
                           IsExported = reader.GetBool("is_exported"),
                           DebitAccount =
                               new Account
                                   {
                                       Id = reader.GetInt("debit_account_number_id")
                                   },
                           CreditAccount =
                               new Account
                                   {
                                       Id = reader.GetInt("credit_account_number_id")
                                   },
                           EventId = reader.GetInt("event_id"),
                           ContractId = reader.GetInt("contract_id"),

                           Date = reader.GetDateTime("transaction_date"),
                           Currency =
                               new Currency
                                   {Id = reader.GetInt("currency_id")},
                           ExchangeRate = reader.GetDouble("exchange_rate"),
                           Description = reader.GetString("description"),
                           Branch = new Branch {Id = reader.GetInt("branch_id")}

                       };
        }
Exemple #48
0
        private Event ReadEvent(OpenCbsReader r)
        {
            Event e;

            if (r.GetNullInt("lde_id").HasValue)
            {
                e = GetLoanDisbursmentEvent(r);
            }
            else if (r.GetNullInt("woe_id").HasValue)
            {
                e = GetWriteOffEvent(r);
            }
            else if (r.GetNullInt("rle_id").HasValue)
            {
                e = GetReschedulingLoanEvent(r);
            }
            else if (r.GetNullInt("rpe_id").HasValue)
            {
                e = GetRepaymentEvent(r);
            }
            else if (r.GetNullInt("tranche_id").HasValue)
            {
                e = GetTrancheLoanEvent(r);
            }
            else if (r.GetNullInt("liae_id").HasValue)
            {
                e = GetLoanInterestAccruingEvent(r);
            }
            else if (r.GetNullInt("ov_id").HasValue)
            {
                e = GetOverdueEvent(r);
            }
            else if (r.GetNullInt("pe_id").HasValue)
            {
                e = GetProvisionEvent(r);
            }
            else if (r.GetNullInt("ef_id").HasValue)
            {
                e = GetEntryFeeEvent(r);
            }
            else if (r.GetNullInt("cie_id").HasValue)
            {
                e = GetCreditInsuranceEvent(r);
            }
            else if (r.GetString("code").StartsWith("S"))
            {
                e = GetSavingEvent(r);
            }
            else
            {
                if(r.GetString("code").Equals("LOVE"))
                    e = new LoanValidationEvent{Id = r.GetInt("event_id")};
                else if (r.GetString("code").Equals("LOCE"))
                    e = new LoanCloseEvent{Id = r.GetInt("event_id")};
                else
                    e = new RegEvent {Id = r.GetInt("event_id")};
            }

            GetEvent(r, e);

            return e;
        }
Exemple #49
0
 private static Account GetAccount(OpenCbsReader pReader)
 {
     return new Account
     {
         Id = pReader.GetInt("id"),
         Number = pReader.GetString("account_number"),
         Label = pReader.GetString("label"),
         DebitPlus = pReader.GetBool("debit_plus"),
         TypeCode = pReader.GetString("type_code"),
         AccountCategory = ((OAccountCategories)pReader.GetSmallInt("account_category_id")),
         Type = pReader.GetBool("type"),
         ParentAccountId = pReader.GetNullInt("parent_account_id"),
         Left = pReader.GetInt("lft"),
         Right = pReader.GetInt("rgt")
     };
 }
        private static ContractAccountingRule GetContractAccountingRule(OpenCbsReader reader)
        {
            ContractAccountingRule rule = new ContractAccountingRule();

            rule.Id = reader.GetInt("id");
            rule.EventType = new EventType
                                 {
                                     EventCode = reader.GetString("event_type"),
                                     Description = reader.GetString("event_description")
                                 };
            rule.EventAttribute = new EventAttribute
                                      {
                                          Id = reader.GetInt("event_attribute_id"),
                                          Name = reader.GetString("attribute_name")
                                      };
            rule.DebitAccount = new Account { Id = reader.GetInt("debit_account_number_id") };
            rule.CreditAccount = new Account { Id = reader.GetInt("credit_account_number_id") };
            rule.BookingDirection = (OBookingDirections)reader.GetSmallInt("booking_direction");
            rule.Order = reader.GetInt("order");
            rule.Description = reader.GetString("rule_description");

            rule.ProductType = (OProductTypes)reader.GetSmallInt("product_type");

            int? loanProductId = reader.GetNullInt("loan_product_id");
            if (loanProductId.HasValue)
                rule.LoanProduct = new LoanProduct { Id = loanProductId.Value };

            int? currencyId = reader.GetNullInt("currency_id");
            if (currencyId.HasValue)
                rule.Currency = new Currency { Id = currencyId.Value };

            int? savingsProductId = reader.GetNullInt("savings_product_id");
            if (savingsProductId.HasValue)
                rule.SavingProduct = new SavingsBookProduct { Id = savingsProductId.Value };

            rule.ClientType = reader.GetChar("client_type").ConvertToClientType();

            int? activityId = reader.GetNullInt("activity_id");

            if (activityId.HasValue)
                rule.EconomicActivity = new EconomicActivity { Id = activityId.Value };

            return rule;
        }
Exemple #51
0
        private static void SetSavingsEvent(OpenCbsReader r, SavingEvent e, ISavingProduct pProduct)
        {
            e.Id = r.GetInt("id");
            e.ContracId = r.GetInt("contract_id");
            e.Code = r.GetString("code");
            e.Amount = r.GetMoney("amount");
            e.Description = r.GetString("description");
            e.Deleted = r.GetBool("deleted");
            e.Date = r.GetDateTime("creation_date");
            e.Cancelable = r.GetBool("cancelable");
            e.IsFired = r.GetBool("is_fired");
            e.CancelDate = r.GetNullDateTime("cancel_date");

            if(pProduct != null)
                e.ProductType = pProduct.GetType();

            if (r.GetNullSmallInt("savings_method").HasValue)
                e.SavingsMethod = (OSavingsMethods)r.GetNullSmallInt("savings_method").Value;

            e.IsPending = r.GetBool("pending");
            e.PendingEventId = r.GetNullInt("pending_event_id");
            e.TellerId = r.GetNullInt("teller_id");
            e.LoanEventId = r.GetNullInt("loan_event_id");

            if (pProduct != null)
            {
                e.ProductType = pProduct.GetType();
            }

            if (e is SavingTransferEvent)
            {
                ((SavingTransferEvent)e).RelatedContractCode = r.GetString("related_contract_code");
            }

            if (e is ISavingsFees)
            {
                ((ISavingsFees) e).Fee = r.GetMoney("fees");
            }

            e.User = new User
                         {
                             Id = r.GetInt("user_id"),
                             UserName = r.GetString("user_name"),
                             Password = r.GetString("user_pass"),
                             LastName = r.GetString("last_name"),
                             FirstName = r.GetString("first_name")
                         };
            e.User.SetRole(r.GetString("role_code"));

            e.ClientType = OClientTypes.All;

            switch (r.GetString("client_type_code"))
            {
                case "I":
                    e.ClientType = OClientTypes.Person; break;
                case "C":
                    e.ClientType = OClientTypes.Corporate; break;
                case "G":
                    e.ClientType = OClientTypes.Group; break;
                case "V":
                    e.ClientType = OClientTypes.Village; break;
            }

            e.Branch = new Branch { Id = r.GetInt("branch_id") };
            e.Currency = new Currency
                             {
                                 Id = r.GetInt("currency_id"),
                                 Code = r.GetString("currency_code"),
                                 IsPivot = r.GetBool("is_pivot"),
                                 IsSwapped = r.GetBool("is_swapped")
                             };
            e.SavingProduct = new SavingsBookProduct { Id = r.GetInt("product_id") };
        }
Exemple #52
0
 private static Event GetCreditInsuranceEvent(OpenCbsReader r)
 {
     CreditInsuranceEvent cie = new CreditInsuranceEvent();
     cie.Id = r.GetInt("cie_id");
     cie.Commission = r.GetDecimal("cie_commission");
     cie.Principal = r.GetDecimal("cie_principal");
     return cie;
 }
        private FundingLineAccountingRule _getFundingLineAccountingRule(OpenCbsReader reader)
        {
            FundingLineAccountingRule rule = new FundingLineAccountingRule();

            rule.Id = reader.GetInt("id");
            rule.DebitAccount = new Account { Id = reader.GetInt("debit_account_number_id") };
            rule.CreditAccount = new Account { Id = reader.GetInt("credit_account_number_id") };
            rule.BookingDirection = (OBookingDirections)reader.GetSmallInt("booking_direction");

            int? fundingLineId = reader.GetInt("funding_line_id");

            if (fundingLineId.HasValue)
                rule.FundingLine = new FundingLine { Id = fundingLineId.Value };

            return rule;
        }
Exemple #54
0
 private static LoanEntryFeeEvent GetEntryFeeEvent(OpenCbsReader r)
 {
     return new LoanEntryFeeEvent
     {
         Id = r.GetInt("ef_id"),
         Fee = r.GetMoney("ef_fee"),
         Cancelable = true,
         DisbursementEventId = r.GetInt("disbursement_event_id")
     };
 }
Exemple #55
0
 private static TrancheEvent GetTransh(OpenCbsReader r)
 {
     return new TrancheEvent
     {
         Number = r.GetInt("Number"),
         StartDate = r.GetDateTime("start_date"),
         Amount = r.GetMoney("amount"),
         Maturity = r.GetInt("countOfInstallments"),
         ApplyNewInterest = r.GetBool("ApplyNewInterest"),
         InterestRate = r.GetDecimal("interest_rate"),
         StartedFromInstallment = r.GetInt("started_from_installment"),
         Deleted = r.GetBool("is_deleted"),
         Id = r.GetInt("event_id")
     };
 }
Exemple #56
0
        private static void GetEvent(OpenCbsReader r, Event pEvent)
        {
            //abstract class Event attributes
            string eventType = r.GetString("event_type");
            pEvent.Code = eventType;
            pEvent.ContracId = r.GetInt("contract_id");
            pEvent.Date = r.GetDateTime("event_date");
            pEvent.EntryDate = r.GetDateTime("entry_date");
            pEvent.Deleted = r.GetBool("event_deleted");
            pEvent.IsFired = true;
            pEvent.Cancelable = true;
            pEvent.ExportedDate = DateTime.MinValue;
            pEvent.Comment = r.GetString("comment");
            pEvent.TellerId = r.GetNullInt("teller_id");
            pEvent.ParentId = r.GetNullInt("parent_id");
            pEvent.CancelDate = r.GetNullDateTime("cancel_date");
            pEvent.ClientType = OClientTypes.All;

            switch (r.GetString("client_type_code"))
            {
                case "I":
                    pEvent.ClientType = OClientTypes.Person;
                    break;
                case "C":
                    pEvent.ClientType = OClientTypes.Corporate;
                    break;
                case "G":
                    pEvent.ClientType = OClientTypes.Group;
                    break;
                case "V":
                    pEvent.ClientType = OClientTypes.Village;
                    break;
            }

            //User associated to the event
            pEvent.User = new User
                              {
                                  Id = r.GetInt("user_id"),
                                  UserName = r.GetString("user_username"),
                                  Password = r.GetString("user_password"),
                                  LastName = r.GetString("user_lastname"),
                                  FirstName = r.GetString("user_firstname")
                              };

            pEvent.Currency = new Currency
                                  {
                                      Id = r.GetInt("currency_id"),
                                      Code = r.GetString("currency_code"),
                                      IsPivot = r.GetBool("is_pivot"),
                                      IsSwapped = r.GetBool("is_swapped")
                                  };

            pEvent.Branch = new Branch { Id = r.GetInt("branch_id") };
            pEvent.LoanProduct = new LoanProduct { Id = r.GetInt("product_id") };

            pEvent.User.SetRole(r.GetString("user_role"));
            if (
                eventType.Equals("ULIE") ||
                eventType.Equals("ULOE")
                )
                return;

            if (r.HasColumn("contract_code"))
                pEvent.Description = r.GetString("contract_code");
        }
Exemple #57
0
 private void GetSavingBookFromReader(SavingBookContract saving, OpenCbsReader reader)
 {
     saving.FlatWithdrawFees = reader.GetNullDecimal("flat_withdraw_fees");
     saving.RateWithdrawFees = reader.GetNullDouble("rate_withdraw_fees");
     saving.FlatTransferFees = reader.GetNullDecimal("flat_transfer_fees");
     saving.RateTransferFees = reader.GetNullDouble("rate_transfer_fees");
     saving.DepositFees = reader.GetNullDecimal("flat_deposit_fees");
     saving.ChequeDepositFees = reader.GetNullDecimal("cheque_deposit_fees");
     saving.CloseFees = reader.GetNullDecimal("flat_close_fees");
     saving.ManagementFees = reader.GetNullDecimal("flat_management_fees");
     saving.OverdraftFees = reader.GetNullDecimal("flat_overdraft_fees");
     saving.InOverdraft = reader.GetBool("in_overdraft");
     saving.AgioFees = reader.GetNullDouble("rate_agio_fees");
     saving.ReopenFees = reader.GetNullDecimal("flat_reopen_fees");
     saving.FlatInterBranchTransferFee = reader.GetNullDecimal("flat_ibt_fee");
     saving.RateInterBranchTransferFee =reader.GetNullDouble("rate_ibt_fee");
     saving.UseTermDeposit = reader.GetBool("use_term_deposit");
     saving.NumberOfPeriods = reader.GetInt("term_deposit_period");
     saving.TermDepositPeriodMin = reader.GetNullInt("term_deposit_period_min");
     saving.TermDepositPeriodMax = reader.GetNullInt("term_deposit_period_max");
     saving.TransferAccount = new SavingBookContract(ApplicationSettings.GetInstance(_user.Md5), _user)
     { Code = reader.GetString("transfer_account") };
     saving.NextMaturity = reader.GetNullDateTime("next_maturity");
     if (saving.UseTermDeposit)
         saving.Rollover = (OSavingsRollover) reader.GetInt("rollover");
     // This is the bozo's way of fetching branch information.
     // Ideally it should be available through the saving's client object.
     // But that object is initialized in many places so that modifying
     // it does not look feasible.
     // Instead, we constract a new Branch object *partially* and then
     // through the OnSavingSelected below call back into the Service layer
     // to finalize the construction.
     saving.Branch = new Branch {Id = reader.GetInt("branch_id")};
 }
Exemple #58
0
 private static AccruedInterestEvent GetLoanInterestAccruingEvent(OpenCbsReader r)
 {
     return new AccruedInterestEvent{
                    Id = r.GetInt("liae_id"),
                    AccruedInterest = r.GetMoney("liae_accruedInterest"),
                    Interest = r.GetMoney("liae_interestPrepayment"),
                    Rescheduled = r.GetBool("liae_rescheduled"),
                    InstallmentNumber = r.GetInt("liae_installmentNumber")
                };
 }
 private static ProvisioningRate GetProvisionningRate(OpenCbsReader reader)
 {
     return new ProvisioningRate
                {
                    Number = reader.GetInt("id"),
                    NbOfDaysMin = reader.GetInt("number_of_days_min"),
                    NbOfDaysMax = reader.GetInt("number_of_days_max"),
                    ProvisioningValue = reader.GetDouble("provisioning_value"),
                    ProvisioningInterest = reader.GetDouble("provisioning_interest"),
                    ProvisioningPenalty = reader.GetDouble("provisioning_penalty")
                };
 }
Exemple #60
0
 private static OverdueEvent GetOverdueEvent(OpenCbsReader r)
 {
     return new OverdueEvent{
         Id = r.GetInt("ov_id"),
         OLB = r.GetMoney("ov_olb"),
         OverdueDays = r.GetInt("ov_overdue_days"),
         OverduePrincipal = r.GetMoney("ov_overdue_principal")
     };
 }