示例#1
0
        /// <summary>
        /// Add a new entry to the RegisterDrawer table
        /// </summary>
        public static RegisterDrawer Add(int registerId, int registerSubId, int employeeId,
                                         double startAmount)
        {
            RegisterDrawer result      = null;
            double?        closeAmount = null;
            DateTime       startTime   = DateTime.Now;

            registerId    = MathHelper.Clamp(registerId, 0, 255);
            registerSubId = MathHelper.Clamp(registerSubId, 0, 255);

            SqlConnection cn  = GetConnection();
            string        cmd = "AddRegisterDrawer";

            using (SqlCommand sqlCmd = new SqlCommand(cmd, cn))
            {
                sqlCmd.CommandType = CommandType.StoredProcedure;
                BuildSqlParameter(sqlCmd, "@RegisterDrawerRegisterId", SqlDbType.TinyInt, registerId);
                BuildSqlParameter(sqlCmd, "@RegisterDrawerRegisterSubId", SqlDbType.TinyInt, registerSubId);
                BuildSqlParameter(sqlCmd, "@RegisterDrawerEmployeeId", SqlDbType.Int, employeeId);
                BuildSqlParameter(sqlCmd, "@RegisterDrawerStartTime", SqlDbType.DateTime, startTime);
                BuildSqlParameter(sqlCmd, "@RegisterDrawerStartAmount", SqlDbType.Float, startAmount);
                BuildSqlParameter(sqlCmd, "@RegisterDrawerCurrentAmount", SqlDbType.Float, startAmount);
                BuildSqlParameter(sqlCmd, "@RegisterDrawerCloseAmount", SqlDbType.Float, closeAmount);
                BuildSqlParameter(sqlCmd, "@RegisterDrawerId", SqlDbType.Int, ParameterDirection.ReturnValue);
                if (sqlCmd.ExecuteNonQuery() > 0)
                {
                    result = new RegisterDrawer(Convert.ToInt32(sqlCmd.Parameters["@RegisterDrawerId"].Value),
                                                registerId, registerSubId, employeeId, startTime, startAmount, startAmount, closeAmount, null);
                }
            }
            FinishedWithConnection(cn);
            return(result);
        }
示例#2
0
        /// <summary>
        /// Update an entry in the RegisterDrawer table
        /// </summary>
        public static bool Update(RegisterDrawer registerDrawer)
        {
            bool result = false;

            SqlConnection cn = GetConnection();

            result = Update(cn, registerDrawer);
            FinishedWithConnection(cn);

            return(result);
        }
示例#3
0
        /// <summary>
        /// Get an entry from the RegisterDrawer table
        /// </summary>
        public static RegisterDrawer Get(int id)
        {
            RegisterDrawer result = null;

            SqlConnection cn = GetConnection();

            result = Get(cn, id);
            FinishedWithConnection(cn);

            return(result);
        }
示例#4
0
        private static RegisterDrawer Get(SqlConnection cn, int id)
        {
            RegisterDrawer result = null;

            using (SqlCommand cmd = new SqlCommand("SELECT * FROM RegisterDrawer WHERE RegisterDrawerId=" + id, cn))
            {
                using (SqlDataReader rdr = cmd.ExecuteReader())
                {
                    if (rdr.Read())
                    {
                        result = BuildRegisterDrawer(rdr);
                    }
                }
            }
            return(result);
        }
示例#5
0
        /// <summary>
        /// Delete an entry from the RegisterDrawer table
        /// </summary>
        public static bool Delete(int id)
        {
            Int32          rowsAffected   = 0;
            SqlConnection  cn             = GetConnection();
            RegisterDrawer registerDrawer = Get(cn, id);

            if (registerDrawer != null)
            {
                using (SqlCommand sqlCmd = cn.CreateCommand())
                {
                    sqlCmd.CommandText = "DELETE FROM RegisterDrawer WHERE RegisterDrawerId=" + id;
                    rowsAffected       = sqlCmd.ExecuteNonQuery();
                }
            }
            FinishedWithConnection(cn);
            return(rowsAffected != 0);
        }
示例#6
0
        public static RegisterDrawer GetFloating(int employeeId)
        {
            RegisterDrawer result = null;
            SqlConnection  cn     = GetConnection();

            using (SqlCommand cmd = new SqlCommand("SELECT * FROM RegisterDrawer WHERE (RegisterDrawerRegisterId IS NULL) AND RegisterDrawerEmployeeId=" + employeeId, cn))
            {
                using (SqlDataReader rdr = cmd.ExecuteReader())
                {
                    if (rdr.Read())
                    {
                        result = BuildRegisterDrawer(rdr);
                    }
                }
            }
            FinishedWithConnection(cn);
            return(result);
        }
示例#7
0
        private static bool Update(SqlConnection cn, RegisterDrawer registerDrawer)
        {
            Int32 rowsAffected = 0;

            using (SqlCommand sqlCmd = cn.CreateCommand())
            {
                sqlCmd.CommandText = "UPDATE RegisterDrawer SET RegisterDrawerRegisterId=@RegisterDrawerRegisterId,RegisterDrawerRegisterSubId=@RegisterDrawerRegisterSubId,RegisterDrawerEmployeeId=@RegisterDrawerEmployeeId,RegisterDrawerStartTime=@RegisterDrawerStartTime,RegisterDrawerStartAmount=@RegisterDrawerStartAmount,RegisterDrawerCurrentAmount=@RegisterDrawerCurrentAmount,RegisterDrawerCloseTime=@RegisterDrawerCloseTime,RegisterDrawerCloseAmount=@RegisterDrawerCloseAmount WHERE RegisterDrawerId=@RegisterDrawerId";

                BuildSqlParameter(sqlCmd, "@RegisterDrawerId", SqlDbType.Int, registerDrawer.Id);
                BuildSqlParameter(sqlCmd, "@RegisterDrawerRegisterId", SqlDbType.TinyInt, registerDrawer.RegisterId);
                BuildSqlParameter(sqlCmd, "@RegisterDrawerRegisterSubId", SqlDbType.TinyInt, registerDrawer.RegisterSubId);
                BuildSqlParameter(sqlCmd, "@RegisterDrawerEmployeeId", SqlDbType.Int, registerDrawer.EmployeeId);
                BuildSqlParameter(sqlCmd, "@RegisterDrawerStartTime", SqlDbType.DateTime, registerDrawer.StartTime);
                BuildSqlParameter(sqlCmd, "@RegisterDrawerStartAmount", SqlDbType.Float, registerDrawer.StartAmount);
                BuildSqlParameter(sqlCmd, "@RegisterDrawerCurrentAmount", SqlDbType.Float, registerDrawer.CurrentAmount);
                BuildSqlParameter(sqlCmd, "@RegisterDrawerCloseTime", SqlDbType.DateTime, registerDrawer.EndTime);
                BuildSqlParameter(sqlCmd, "@RegisterDrawerCloseAmount", SqlDbType.Float, registerDrawer.EndAmount);

                rowsAffected = sqlCmd.ExecuteNonQuery();
            }
            return(rowsAffected != 0);
        }
示例#8
0
        /// <summary>
        /// Gets the open (no target specified) RegisterMove for the spcified employee id
        /// </summary>
        /// <param name="employeeId"></param>
        /// <returns></returns>
        public static RegisterMove GetOpen(int employeeId)
        {
            RegisterDrawer registerDrawer = RegisterDrawer.GetFloating(employeeId);

            if (registerDrawer == null)
            {
                return(null);
            }
            RegisterMove  result = null;
            SqlConnection cn     = GetConnection();

            using (SqlCommand cmd = new SqlCommand("SELECT * FROM RegisterMove WHERE (RegisterMoveEndTime IS NULL) AND RegisterMoveRegisterDrawerId=" + registerDrawer.Id, cn))
            {
                using (SqlDataReader rdr = cmd.ExecuteReader())
                {
                    if (rdr.Read())
                    {
                        result = BuildRegisterMove(rdr);
                    }
                }
            }
            FinishedWithConnection(cn);
            return(result);
        }