public AccountHeadGroup InsertUpdateAccountHeadGroup(AccountHeadGroup accountHeadGroup, AppUA ua)
 {
     if (accountHeadGroup.ID != null && accountHeadGroup.ID != Guid.Empty)
     {
         return(_accountHeadGroupRepository.UpdateAccountHeadGroup(accountHeadGroup, ua));
     }
     else
     {
         return(_accountHeadGroupRepository.InsertAccountHeadGroup(accountHeadGroup, ua));
     }
 }
        public AccountHeadGroup InsertAccountHeadGroup(AccountHeadGroup accountHeadGroup, AppUA ua)
        {
            try
            {
                SqlParameter outputStatus, outputID = null;
                using (SqlConnection con = _databaseFactory.GetDBConnection())
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        if (con.State == ConnectionState.Closed)
                        {
                            con.Open();
                        }
                        cmd.Connection  = con;
                        cmd.CommandText = "[Accounts].[InsertAccountHeadGroup]";
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.Add("@GroupName", SqlDbType.NVarChar, 50).Value    = accountHeadGroup.GroupName;
                        cmd.Parameters.Add("@AccountHeads", SqlDbType.VarChar, 250).Value = accountHeadGroup.AccountHeads;
                        cmd.Parameters.Add("@CreatedBy", SqlDbType.NVarChar, 250).Value   = accountHeadGroup.commonObj.CreatedBy;
                        cmd.Parameters.Add("@CreatedDate", SqlDbType.DateTime).Value      = accountHeadGroup.commonObj.CreatedDate;
                        outputStatus           = cmd.Parameters.Add("@Status", SqlDbType.SmallInt);
                        outputStatus.Direction = ParameterDirection.Output;
                        outputID           = cmd.Parameters.Add("@ID", SqlDbType.UniqueIdentifier);
                        outputID.Direction = ParameterDirection.Output;
                        cmd.ExecuteNonQuery();
                    }
                }

                switch (outputStatus.Value.ToString())
                {
                case "0":
                    AppConst Cobj = new AppConst();
                    throw new Exception(Cobj.InsertFailure);

                case "1":
                    accountHeadGroup.ID = Guid.Parse(outputID.Value.ToString());
                    break;

                case "2":
                    AppConst Cobj1 = new AppConst();
                    throw new Exception(Cobj1.Duplicate);

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(accountHeadGroup);
        }
        public List <AccountHeadGroup> GetDisabledCodeForAccountHeadGroup(string ID)
        {
            List <AccountHeadGroup> accountHeadGroupList = null;

            try
            {
                using (SqlConnection con = _databaseFactory.GetDBConnection())
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        if (con.State == ConnectionState.Closed)
                        {
                            con.Open();
                        }
                        cmd.Connection  = con;
                        cmd.CommandText = "[Accounts].[GetDisabledAccountCodeForAccountHeadGroup]";
                        if (ID != null)
                        {
                            cmd.Parameters.Add("@ID", SqlDbType.UniqueIdentifier).Value = Guid.Parse(ID);
                        }
                        cmd.CommandType = CommandType.StoredProcedure;
                        using (SqlDataReader sdr = cmd.ExecuteReader())
                        {
                            if ((sdr != null) && (sdr.HasRows))
                            {
                                accountHeadGroupList = new List <AccountHeadGroup>();
                                while (sdr.Read())
                                {
                                    AccountHeadGroup _accountObj = new AccountHeadGroup();
                                    {
                                        _accountObj.IsGrouped    = (sdr["IsGrouped"].ToString() != "" ? bool.Parse(sdr["IsGrouped"].ToString()) : _accountObj.IsGrouped);
                                        _accountObj.AccountHeads = (sdr["Code"].ToString() != "" ? sdr["Code"].ToString() : _accountObj.AccountHeads);
                                    }
                                    accountHeadGroupList.Add(_accountObj);
                                }
                            }
                        }
                    }
                }
            }

            catch (Exception ex)
            {
                throw ex;
            }

            return(accountHeadGroupList);
        }
        public List <AccountHeadGroup> GetAllAccountHeadGroup()
        {
            List <AccountHeadGroup> accountHeadGroupList = null;

            try
            {
                using (SqlConnection con = _databaseFactory.GetDBConnection())
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        if (con.State == ConnectionState.Closed)
                        {
                            con.Open();
                        }
                        cmd.Connection  = con;
                        cmd.CommandText = "[Accounts].[GetAllAccountHeadGroup]";
                        cmd.CommandType = CommandType.StoredProcedure;
                        using (SqlDataReader sdr = cmd.ExecuteReader())
                        {
                            if ((sdr != null) && (sdr.HasRows))
                            {
                                accountHeadGroupList = new List <AccountHeadGroup>();
                                while (sdr.Read())
                                {
                                    AccountHeadGroup _accountObj = new AccountHeadGroup();
                                    {
                                        _accountObj.ID           = (sdr["ID"].ToString() != "" ? Guid.Parse(sdr["ID"].ToString()) : _accountObj.ID);
                                        _accountObj.GroupName    = (sdr["GroupName"].ToString() != "" ? (sdr["GroupName"].ToString()) : _accountObj.GroupName);
                                        _accountObj.AccountHeads = (sdr["AccountHead"].ToString() != "" ? sdr["AccountHead"].ToString() : _accountObj.AccountHeads);
                                    }
                                    accountHeadGroupList.Add(_accountObj);
                                }
                            }
                        }
                    }
                }
            }

            catch (Exception ex)
            {
                throw ex;
            }

            return(accountHeadGroupList);
        }
        public List <AccountHeadGroup> GetAllGroupName()
        {
            List <AccountHeadGroup> groupTypeList = null;

            try
            {
                using (SqlConnection con = _databaseFactory.GetDBConnection())
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        if (con.State == ConnectionState.Closed)
                        {
                            con.Open();
                        }
                        cmd.Connection  = con;
                        cmd.CommandText = "[Accounts].[GetGroupNameTypes]";
                        cmd.CommandType = CommandType.StoredProcedure;
                        using (SqlDataReader sdr = cmd.ExecuteReader())
                        {
                            if ((sdr != null) && (sdr.HasRows))
                            {
                                groupTypeList = new List <AccountHeadGroup>();
                                while (sdr.Read())
                                {
                                    AccountHeadGroup groupType = new AccountHeadGroup()
                                    {
                                        ID        = (sdr["ID"].ToString() != "" ? Guid.Parse(sdr["ID"].ToString()) :Guid.Empty),
                                        GroupName = (sdr["GroupName"].ToString() != "" ? sdr["GroupName"].ToString() : string.Empty)
                                    };

                                    groupTypeList.Add(groupType);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(groupTypeList);
        }
        public AccountHeadGroup GetAccountHeadGroupDetailsByID(Guid ID)
        {
            AccountHeadGroup accountHeadGroup = new AccountHeadGroup();

            try
            {
                using (SqlConnection con = _databaseFactory.GetDBConnection())
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        if (con.State == ConnectionState.Closed)
                        {
                            con.Open();
                        }
                        cmd.Connection  = con;
                        cmd.CommandText = "[Accounts].[GetAccountHeadGroupDetails]";
                        cmd.Parameters.Add("@ID", SqlDbType.UniqueIdentifier).Value = ID;
                        cmd.CommandType = CommandType.StoredProcedure;
                        using (SqlDataReader sdr = cmd.ExecuteReader())
                        {
                            if ((sdr != null) && (sdr.HasRows))
                            {
                                if (sdr.Read())
                                {
                                    accountHeadGroup.ID           = (sdr["ID"].ToString() != "" ? Guid.Parse(sdr["ID"].ToString()) : accountHeadGroup.ID);
                                    accountHeadGroup.GroupName    = (sdr["GroupName"].ToString() != "" ? (sdr["GroupName"].ToString()) : accountHeadGroup.GroupName);
                                    accountHeadGroup.AccountHeads = (sdr["AccountHead"].ToString() != "" ? sdr["AccountHead"].ToString() : accountHeadGroup.AccountHeads);
                                }
                            }
                        }
                    }
                }
            }

            catch (Exception ex)
            {
                throw ex;
            }

            return(accountHeadGroup);
        }