示例#1
0
        public static LanePayment Create(Lane lane, User collector,
                                         Payment payment, DateTime date, decimal amount)
        {
            LanePayment inst = Create();
            TSB         tsb  = TSB.GetCurrent();

            if (null != tsb)
            {
                tsb.AssignTo(inst);
            }
            if (null != lane)
            {
                lane.AssignTo(inst);
            }
            if (null != collector)
            {
                collector.AssignTo(inst);
            }
            if (null != payment)
            {
                payment.AssignTo(inst);
            }
            inst.PaymentDate = date;
            inst.Amount      = amount;
            return(inst);
        }
示例#2
0
        /// <summary>
        /// Create Lane Attendance.
        /// </summary>
        /// <param name="lane">The Lane instance.</param>
        /// <param name="collector">The User instance.</param>
        /// <returns>Returns LaneAttendance instance.</returns>
        public static NDbResult <LaneAttendance> Create(Lane lane, User collector)
        {
            var result          = new NDbResult <LaneAttendance>();
            SQLiteConnection db = Default;

            if (null == db)
            {
                result.DbConenctFailed();
                return(result);
            }
            LaneAttendance inst = Create();
            var            tsb  = TSB.GetCurrent().Value();

            if (null == tsb)
            {
                result.ParameterIsNull();
            }
            else
            {
                if (null != tsb)
                {
                    tsb.AssignTo(inst);
                }
                if (null != lane)
                {
                    lane.AssignTo(inst);
                }
                if (null != collector)
                {
                    collector.AssignTo(inst);
                }
                result.Success(inst);
            }
            return(result);
        }
示例#3
0
        /// <summary>
        /// Gets TSB Addition Balance.
        /// </summary>
        /// <param name="tsb">The target TSB to get balance.</param>
        /// <returns>Returns TSB Addition balance. If TSB not found returns null.</returns>
        public static TSBAdditionBalance GetCurrent(TSB tsb)
        {
            if (null == tsb)
            {
                return(null);
            }
            lock (sync)
            {
                string cmd = @"
					SELECT TSB.TSBId
						 , TSB.TSBNameEN
						 , TSB.TSBNameTH
						 , ((
							 SELECT IFNULL(SUM(AdditionalBHTTotal), 0) 
							   FROM TSBAdditionTransaction 
							  WHERE (   TSBAdditionTransaction.TransactionType = 0 
									 OR TSBAdditionTransaction.TransactionType = 1
									) -- Initial = 0, Borrow = 1
								AND TSBAdditionTransaction.TSBId = TSB.TSBId
							) -
							(
							 SELECT IFNULL(SUM(AdditionalBHTTotal), 0) 
							   FROM TSBAdditionTransaction 
							  WHERE TSBAdditionTransaction.TransactionType = 2 -- Returns = 2
								AND TSBAdditionTransaction.TSBId = TSB.TSBId
							)) AS AdditionalBHTTotal
					  FROM TSB
					 WHERE TSB.TSBId = ?
				"                ;
                var    ret = NQuery.Query <FKs>(cmd, tsb.TSBId).FirstOrDefault();
                return((null != ret) ? ret.ToTSBAdditionBalance() : null);
            }
        }
        /// <summary>
        /// Gets TSB Coupon summaries.
        /// </summary>
        /// <param name="tsb">The target TSB to get balance.</param>
        /// <returns>Returns List of TSB Coupon balance. If TSB not found returns null.</returns>
        public static NDbResult <List <TSBCouponSummary> > GetTSBCouponSummaries(TSB tsb)
        {
            var result          = new NDbResult <List <TSBCouponSummary> >();
            SQLiteConnection db = Default;

            if (null == db)
            {
                result.DbConenctFailed();
                return(result);
            }
            if (null == tsb)
            {
                result.ParameterIsNull();
                return(result);
            }
            lock (sync)
            {
                MethodBase med = MethodBase.GetCurrentMethod();
                try
                {
                    string cmd     = @"
					SELECT * FROM TSBCouponSummarryView
					 WHERE TSBId = ? "                    ;
                    var    rets    = NQuery.Query <FKs>(cmd, tsb.TSBId).ToList();
                    var    results = rets.ToModels();
                    result.Success(results);
                }
                catch (Exception ex)
                {
                    med.Err(ex);
                    result.Error(ex);
                }
                return(result);
            }
        }
        public static TSBCouponTransaction GetInitial(TSB tsb)
        {
            if (null == tsb)
            {
                return(null);
            }
            lock (sync)
            {
                string cmd = string.Empty;
                cmd += "SELECT TSBCouponTransaction.* ";
                cmd += "     , TSB.TSBNameEN, TSB.TSBNameTH ";
                cmd += "  FROM TSBCouponTransaction, TSB ";
                cmd += " WHERE TSBCouponTransaction.TSBId = TSB.TSBId ";
                cmd += "   AND TSBCouponTransaction.TSBId = ? ";
                cmd += "   AND TSBCouponTransaction.TransactionType = ? ";

                var ret = NQuery.Query <FKs>(cmd,
                                             tsb.TSBId, TransactionTypes.Initial).FirstOrDefault();
                TSBCouponTransaction inst;
                if (null == ret)
                {
                    inst = Create();
                    tsb.AssignTo(inst);
                    inst.TransactionType = TransactionTypes.Initial;
                }
                else
                {
                    inst = ret.ToTSBCouponTransaction();
                }
                return(inst);
            }
        }
示例#6
0
        /// <summary>
        /// Create UserShift.
        /// </summary>
        /// <param name="shift">The Shift instance.</param>
        /// <param name="supervisor">The User instance.</param>
        /// <returns>Returns UserShift instance.</returns>
        public static NDbResult <UserShift> Create(Shift shift, User supervisor)
        {
            var result          = new NDbResult <UserShift>();
            SQLiteConnection db = Default;

            if (null == db)
            {
                result.DbConenctFailed();
                return(result);
            }
            UserShift inst = Create();
            var       tsb  = TSB.GetCurrent().Value();

            if (null != tsb)
            {
                tsb.AssignTo(inst);
            }
            if (null != shift)
            {
                shift.AssignTo(inst);
            }
            if (null != supervisor)
            {
                supervisor.AssignTo(inst);
            }
            result.Success(inst);
            return(result);
        }
        /// <summary>
        /// Gets TSB Coupon transactions.
        /// </summary>
        /// <param name="tsb">The target TSB to get coupon transaction.</param>
        /// <returns>Returns TSB Coupon transactions. If TSB not found returns null.</returns>
        public static List <TSBCouponTransaction> Gets(TSB tsb)
        {
            if (null == tsb)
            {
                return(null);
            }
            lock (sync)
            {
                string cmd = string.Empty;
                cmd += "SELECT TSBCouponTransaction.* ";
                cmd += "     , TSB.TSBNameEN, TSB.TSBNameTH ";
                cmd += "  FROM TSBCouponTransaction, TSB ";
                cmd += " WHERE TSBCouponTransaction.TSBId = TSB.TSBId ";
                cmd += "   AND TSBCouponTransaction.TSBId = ? ";

                var rets = NQuery.Query <FKs>(cmd, tsb.TSBId).ToList();
                if (null == rets)
                {
                    return(new List <TSBCouponTransaction>());
                }
                else
                {
                    var results = new List <TSBCouponTransaction>();
                    rets.ForEach(ret =>
                    {
                        results.Add(ret.ToTSBCouponTransaction());
                    });
                    return(results);
                }
            }
        }
示例#8
0
                public static ToTSBCoupons Create(TSB tsb, List <UserCouponTransaction> coupons)
                {
                    var ret = new ToTSBCoupons();

                    ret.TSB     = tsb;
                    ret.Coupons = coupons;
                    return(ret);
                }
示例#9
0
                public static ByUser Create(TSB tsb, User user)
                {
                    var ret = new ByUser();

                    ret.User = user;
                    ret.TSB  = tsb;
                    return(ret);
                }
 /// <summary>
 /// Gets Active TSB Coupon transactions.
 /// </summary>
 /// <returns>
 /// Returns Current Active TSB Coupon transactions. If not found returns null.
 /// </returns>
 public static List <TSBCouponTransaction> Gets()
 {
     lock (sync)
     {
         var tsb = TSB.GetCurrent();
         return(Gets(tsb));
     }
 }
示例#11
0
 /// <summary>
 /// Gets Active TSB Coupon balance.
 /// </summary>
 /// <returns>Returns Current Active TSB Coupon balance. If not found returns null.</returns>
 public static TSBCouponBalance GetCurrent()
 {
     lock (sync)
     {
         var tsb = TSB.GetCurrent();
         return(GetCurrent(tsb));
     }
 }
 public static TSBCouponTransaction GetInitial()
 {
     lock (sync)
     {
         var tsb = TSB.GetCurrent();
         return(GetInitial(tsb));
     }
 }
示例#13
0
 /// <summary>
 /// Gets Active TSB User Credit transactions.
 /// </summary>
 /// <returns>Returns Current Active TSB User Credit transactions. If not found returns null.</returns>
 public static List <UserCreditTransaction> Gets()
 {
     lock (sync)
     {
         var tsb = TSB.GetCurrent();
         return(Gets(tsb));
     }
 }
示例#14
0
                    public static Filter Create(TSB tsb, Guid groupId,
                                                TSBExchangeTransaction.TransactionTypes transactionType)
                    {
                        var ret = new Filter();

                        ret.TSB             = tsb;
                        ret.GroupId         = groupId;
                        ret.TransactionType = transactionType;
                        return(ret);
                    }
示例#15
0
 public static List <Plaza> GetTSBPlazas(TSB value)
 {
     lock (sync)
     {
         if (null == value)
         {
             return(new List <Plaza>());
         }
         return(GetTSBPlazas(value.TSBId));
     }
 }
示例#16
0
 public static List <Lane> GetTSBLanes(TSB value)
 {
     lock (sync)
     {
         if (null == value)
         {
             return(new List <Lane>());
         }
         return(GetTSBLanes(value.TSBId));
     }
 }
        /// <summary>
        /// Gets List of BHT35 by User in target TSB.
        /// </summary>
        /// <param name="tsb">The target TSB instance.</param>
        /// <param name="user">The user instance.</param>
        /// <returns>Returns List of BHT35.</returns>
        public static NDbResult <List <UserCouponTransaction> > GetUserBHT35Coupons(
            TSB tsb, User user)
        {
            var result          = new NDbResult <List <UserCouponTransaction> >();
            SQLiteConnection db = Default;

            if (null == db)
            {
                result.DbConenctFailed();
                return(result);
            }
            if (null == tsb)
            {
                result.ParameterIsNull();
                return(result);
            }
            lock (sync)
            {
                MethodBase med = MethodBase.GetCurrentMethod();
                try
                {
                    string cmd = string.Empty;
                    cmd += "SELECT * ";
                    cmd += "  FROM UserCouponTransactionView ";
                    cmd += " WHERE TSBId = ? ";
                    cmd += "   AND CouponType = ? ";
                    if (null != user)
                    {
                        cmd += "   AND UserId = ? ";
                    }

                    List <FKs> rets;
                    if (null != user)
                    {
                        rets = NQuery.Query <FKs>(cmd,
                                                  tsb.TSBId, CouponType.BHT35, user.UserId).ToList();
                    }
                    else
                    {
                        rets = NQuery.Query <FKs>(cmd, tsb.TSBId, CouponType.BHT35).ToList();
                    }
                    var results = rets.ToModels();
                    result.Success(results);
                }
                catch (Exception ex)
                {
                    med.Err(ex);
                    result.Error(ex);
                }
                return(result);
            }
        }
示例#18
0
        public static NDbResult <List <TSBExchangeGroup> > GetTSBExchangeGroups(TSB tsb,
                                                                                StateTypes state, FinishedFlags flag, DateTime reqBegin, DateTime reqEnd)
        {
            var result          = new NDbResult <List <TSBExchangeGroup> >();
            SQLiteConnection db = Default;

            if (null == db)
            {
                result.DbConenctFailed();
                return(result);
            }
            if (null == tsb)
            {
                result.ParameterIsNull();
                return(result);
            }

            lock (sync)
            {
                MethodBase med = MethodBase.GetCurrentMethod();
                try
                {
                    string cmd = string.Empty;
                    cmd += "SELECT * ";
                    cmd += "  FROM TSBExchangeGroupView ";
                    cmd += " WHERE TSBId = ? ";
                    cmd += "   AND FinishFlag = ? ";
                    if (state != StateTypes.None)
                    {
                        cmd += "   AND State = ? ";
                    }
                    if (reqBegin != DateTime.MinValue)
                    {
                        cmd += "   AND RequestDate >= ? ";
                        if (reqEnd != DateTime.MinValue)
                        {
                            cmd += "   AND RequestDate <= ? ";
                        }
                    }

                    var rets    = NQuery.Query <FKs>(cmd, tsb.TSBId, flag, state, reqBegin, reqEnd).ToList();
                    var results = rets.ToModels();
                    result.Success(results);
                }
                catch (Exception ex)
                {
                    med.Err(ex);
                    result.Error(ex);
                }
                return(result);
            }
        }
示例#19
0
                public static Filter Create(TSB tsb,
                                            TSBExchangeGroup.StateTypes state   = TSBExchangeGroup.StateTypes.None,
                                            TSBExchangeGroup.FinishedFlags flag = TSBExchangeGroup.FinishedFlags.None)
                {
                    var ret = new Filter();

                    ret.TSB          = tsb;
                    ret.State        = state;
                    ret.FinishedFlag = flag;
                    ret.ReqBegin     = DateTime.MinValue;
                    ret.ReqEnd       = DateTime.MinValue;
                    return(ret);
                }
示例#20
0
        public static NDbResult <List <LaneAttendance> > GetAllNotHasRevenueEntryByUser(User user)
        {
            var result          = new NDbResult <List <LaneAttendance> >();
            SQLiteConnection db = Default;

            if (null == db)
            {
                result.DbConenctFailed();
                return(result);
            }
            if (null == user)
            {
                result.ParameterIsNull();
                return(result);
            }
            var tsb = TSB.GetCurrent().Value();

            if (null == tsb)
            {
                result.ParameterIsNull();
                return(result);
            }
            lock (sync)
            {
                MethodBase med = MethodBase.GetCurrentMethod();
                try
                {
                    string cmd = string.Empty;
                    cmd += "SELECT * ";
                    cmd += "  FROM LaneAttendanceView ";
                    cmd += " WHERE TSBId = ? ";
                    cmd += "   AND (RevenueDate = ?";
                    cmd += "    OR  RevenueId IS NULL ";
                    cmd += "    OR  RevenueId = ?) ";
                    cmd += "   AND UserId = ? ";
                    cmd += " ORDER BY UserId, Begin";

                    var rets = NQuery.Query <FKs>(cmd,
                                                  tsb.TSBId, DateTime.MinValue, string.Empty, user.UserId).ToList();
                    var results = rets.ToModels();
                    result.Success(results);
                }
                catch (Exception ex)
                {
                    med.Err(ex);
                    result.Error(ex);
                }

                return(result);
            }
        }
示例#21
0
        /// <summary>
        /// Gets PlazaGroups (By TSB).
        /// </summary>
        /// <param name="value">The TSB instance.</param>
        /// <returns>Returns List of PlazaGroup.</returns>
        public static NDbResult <List <PlazaGroup> > GetTSBPlazaGroups(TSB value)
        {
            var result          = new NDbResult <List <PlazaGroup> >();
            SQLiteConnection db = Default;

            if (null == db)
            {
                result.DbConenctFailed();
                return(result);
            }
            lock (sync)
            {
                return(GetTSBPlazaGroups(value.TSBId));
            }
        }
示例#22
0
        /// <summary>
        /// Gets Plazas (By TSB).
        /// </summary>
        /// <param name="value">The TSB Instance.</param>
        /// <returns>Returns List of Plaza.</returns>
        public static NDbResult <List <Plaza> > GetTSBPlazas(TSB value)
        {
            var result          = new NDbResult <List <Plaza> >();
            SQLiteConnection db = Default;

            if (null == value)
            {
                result.ParameterIsNull();
                return(result);
            }

            lock (sync)
            {
                return(GetTSBPlazas(value.TSBId));
            }
        }
示例#23
0
        public static UserShift Create(Shift shift, User supervisor)
        {
            UserShift inst = Create();
            TSB       tsb  = TSB.GetCurrent();

            if (null != tsb)
            {
                tsb.AssignTo(inst);
            }
            if (null != shift)
            {
                shift.AssignTo(inst);
            }
            if (null != supervisor)
            {
                supervisor.AssignTo(inst);
            }
            return(inst);
        }
示例#24
0
        public static LaneAttendance Create(Lane lane, User supervisor)
        {
            LaneAttendance inst = Create();
            TSB            tsb  = TSB.GetCurrent();

            if (null != tsb)
            {
                tsb.AssignTo(inst);
            }
            if (null != lane)
            {
                lane.AssignTo(inst);
            }
            if (null != supervisor)
            {
                supervisor.AssignTo(inst);
            }
            return(inst);
        }
示例#25
0
        /// <summary>
        /// Create Lane Payment.
        /// </summary>
        /// <param name="lane">The Lane instance.</param>
        /// <param name="collector">The User instance.</param>
        /// <param name="payment">The Payment instance.</param>
        /// <param name="date">The payment date time.</param>
        /// <param name="amount">The payment amount.</param>
        /// <returns>Returns LanePayment instance.</returns>
        public static NDbResult <LanePayment> Create(Lane lane, User collector,
                                                     Payment payment, DateTime date, decimal amount)
        {
            var result          = new NDbResult <LanePayment>();
            SQLiteConnection db = Default;

            if (null == db)
            {
                result.DbConenctFailed();
                return(result);
            }
            LanePayment inst = Create();
            var         tsb  = TSB.GetCurrent().Value();

            if (null == tsb)
            {
                result.ParameterIsNull();
            }
            else
            {
                if (null != tsb)
                {
                    tsb.AssignTo(inst);
                }
                if (null != lane)
                {
                    lane.AssignTo(inst);
                }
                if (null != collector)
                {
                    collector.AssignTo(inst);
                }
                if (null != payment)
                {
                    payment.AssignTo(inst);
                }
                inst.PaymentDate = date;
                inst.Amount      = amount;
                result.Success(inst);
            }
            return(result);
        }
示例#26
0
        /// <summary>
        /// Gets all LaneAttendance that has not enter revenue.
        /// </summary>
        /// <returns>Returns List of LaneAttendance.</returns>
        public static NDbResult <List <LaneAttendance> > GetAllNotHasRevenueEntry()
        {
            var result          = new NDbResult <List <LaneAttendance> >();
            SQLiteConnection db = Default;

            if (null == db)
            {
                result.DbConenctFailed();
                return(result);
            }
            var tsb = TSB.GetCurrent().Value();

            if (null == tsb)
            {
                result.ParameterIsNull();
                return(result);
            }
            result = GetAllNotHasRevenueEntry(tsb);
            return(result);
        }
        /// <summary>
        /// Gets Active TSB Coupon transactions (all status).
        /// </summary>
        /// <returns>
        /// Returns Current Active TSB Coupon transactions. If not found returns null.
        /// </returns>
        public static NDbResult <List <TSBCouponTransaction> > GetTSBCouponTransactions()
        {
            var result          = new NDbResult <List <TSBCouponTransaction> >();
            SQLiteConnection db = Default;

            if (null == db)
            {
                result.DbConenctFailed();
                return(result);
            }
            var tsb = TSB.GetCurrent().Value();

            if (null == tsb)
            {
                result.ParameterIsNull();
                return(result);
            }
            result = GetTSBCouponTransactions(tsb);
            return(result);
        }
示例#28
0
        /// <summary>
        /// Gets TSB Coupon summaries.
        /// </summary>
        /// <param name="tsb">The target TSB to get balance.</param>
        /// <param name="user">The target User to get balance.</param>
        /// <returns>Returns List of TSB Coupon balance. If TSB not found returns null.</returns>
        public static NDbResult <List <TSBCouponSummary> > GetByUser(User user)
        {
            var result          = new NDbResult <List <TSBCouponSummary> >();
            SQLiteConnection db = Default;

            if (null == db)
            {
                result.DbConenctFailed();
                return(result);
            }
            var tsb = TSB.GetCurrent().Value();

            if (null == tsb)
            {
                result.ParameterIsNull();
                return(result);
            }
            result = GetByUser(tsb, user);
            return(result);
        }
示例#29
0
        /// <summary>
        /// Gets Un Close User Shifts (Active TSB).
        /// </summary>
        /// <returns>Returns List of User Shifts.</returns>
        public static NDbResult <List <UserShift> > GetUnCloseUserShifts()
        {
            var result          = new NDbResult <List <UserShift> >();
            SQLiteConnection db = Default;

            if (null == db)
            {
                result.DbConenctFailed();
                return(result);
            }
            var tsb = TSB.GetCurrent().Value();

            if (null == tsb)
            {
                result.ParameterIsNull();
                return(result);
            }
            result = GetUnCloseUserShifts(tsb.TSBId);
            return(result);
        }
示例#30
0
        /// <summary>
        /// Gets User Credit transactions.
        /// </summary>
        /// <param name="tsb">The target TSB to get transactions.</param>
        /// <returns>Returns User Credit transactions. If TSB not found returns null.</returns>
        public static List <UserCreditTransaction> Gets(TSB tsb)
        {
            if (null == tsb)
            {
                return(null);
            }
            lock (sync)
            {
                string cmd = string.Empty;
                cmd += "SELECT UserCreditTransaction.* ";
                cmd += "     , TSB.TSBNameEN, TSB.TSBNameTH ";
                cmd += "     , PlazaGroup.PlazaGroupNameEN, PlazaGroup.PlazaGroupNameTH, PlazaGroup.Direction ";
                cmd += "     , User.UserId, User.FullNameEN, User.FullNameTH ";
                cmd += "     , UserCredit.UserCreditDate, ";
                cmd += "     , UserCredit.State, UserCredit.BagNo, UserCredit.BeltNo ";
                cmd += "  FROM UserCreditTransaction, TSB, PlazaGroup, User, UserCredit ";
                cmd += " WHERE PlazaGroup.TSBId = TSB.TSBId ";
                cmd += "   AND UserCredit.TSBId = TSB.TSBId ";
                cmd += "   AND UserCredit.PlazaGroupId = PlazaGroup.PlazaGroupId ";
                cmd += "   AND UserCredit.UserId = User.UserId ";
                cmd += "   AND UserCreditTransaction.UserCreditId = UserCredit.UserCreditId ";
                cmd += "   AND UserCredit.TSBId = ? ";

                var rets = NQuery.Query <FKs>(cmd, tsb.TSBId).ToList();
                if (null == rets)
                {
                    return(new List <UserCreditTransaction>());
                }
                else
                {
                    var results = new List <UserCreditTransaction>();
                    rets.ForEach(ret =>
                    {
                        results.Add(ret.ToUserCreditTransaction());
                    });
                    return(results);
                }
            }
        }