public static List<CurrentShowCost> GetUserShowChargeList(int ShowID, int UserID)
        {
            String moduleSettings = ModuleConfig.GetSettings();
            Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);

            DataSet ds = t.getUserShowCharges(ShowID, UserID);
            List<CurrentShowCost> showCostsList = new List<CurrentShowCost>();
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                showCostsList.Add(new CurrentShowCost(row));
            }
            return showCostsList;
        }
        public static RunningPlanDto GetUserTransactions(int Id, string refCode)
        {
            String moduleSettings = ModuleConfig.GetSettings();
            Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);

            DataSet ds = t.GetUserTransactions(Id, refCode);
            DataRow row = ds.Tables[0].Rows[0];
            var item = new RunningPlanDto
                {
                    Amount = Convert.ToDecimal(row["Amount"]),
                    RefCode = Convert.ToString(row["RefCode"]),
                    EnteredBy = Convert.ToInt32(row["EnteredBy"])
                };

            return item;
        }
 public static List<Transaction> getTransactionForUserRefCode(int ShowID, int UserID, int refcode)
 {
     String moduleSettings = ModuleConfig.GetSettings();
     Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);
     DataSet ds = t.getTransactionsFor(ShowID, UserID, refcode);
     List<Transaction> translist = new List<Transaction>();
     foreach (DataRow row in ds.Tables[0].Rows)
     {
         translist.Add(new Transaction(row));
     }
     return translist;
 }
        public static List<ShowTransaction> getTransactionForUser(int UserID)
        {
            String moduleSettings = ModuleConfig.GetSettings();
            Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);
            DataSet ds = t.GetAllTransactionForUser(UserID);
            List<ShowTransaction> showTranslist = new List<ShowTransaction>();

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                showTranslist.Add(new ShowTransaction(row));
            }
            return showTranslist;
        }
 /*
  * public static List<Transaction> getTransactionForShowUser(int ShowID, int UserID)
 {
     String moduleSettings = ModuleConfig.GetSettings();
     Data.Transaction t = new Fpp.WebModules.Data.Transaction(moduleSettings);
     DataSet ds = t.getTransactionsFor(ShowID, UserID, RefCode);
     List<Transaction> translist = new List<Transaction>();
     foreach (DataRow row in ds.Tables[0].Rows)
     {
         translist.Add(new Transaction(row));
     }
     return translist;
 }
  *
  * */
 public static List<Transaction> GetTransactionForShowUser(int Id)
 {
     String moduleSettings = ModuleConfig.GetSettings();
     Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);
     DataSet ds = t.getTransactionsFor(Id.ToString());
     List<Transaction> translist = new List<Transaction>();
     foreach (DataRow row in ds.Tables[0].Rows)
     {
         translist.Add(new Transaction(row));
     }
     return translist;
 }
        public Transaction(int TransactionID)
            : base()
        {
            Init();
            _transaction = new Fpp.Data.Transaction(ModuleSettings);

            ID = TransactionID;
            DataTable dt = _transaction.GetTransaction(ID).Tables[0];
            if (dt.Rows.Count > 0)
            {
                LoadFromRow(dt.Rows[0]);
            }
        }
        public static TransactionSummary getTransactionSummary(int ShowID, int UserID)
        {
            String moduleSettings = ModuleConfig.GetSettings();
            Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);

            DataSet ds = t.getTransactionSummary(ShowID, UserID);
            if (ds.Tables[0].Rows.Count > 0)
            {
                return new TransactionSummary(ds.Tables[0].Rows[0]);
            }
            else
            {
                return new TransactionSummary();
            }
        }
        public static List<OffLineTransactionSummary> getOfflineSummary(int ShowID)
        {
            String moduleSettings = ModuleConfig.GetSettings();
            Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);
            DataSet ds = t.getOfflineSummary(ShowID);
            List<OffLineTransactionSummary> showTranslist = new List<OffLineTransactionSummary>();

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                showTranslist.Add(new OffLineTransactionSummary(row));
            }
            return showTranslist;
        }
        public static List<Transaction> getOnlineUserTransactions(int ShowID)
        {
            String moduleSettings = ModuleConfig.GetSettings();
            Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);
            DataSet ds = t.getOnlineUserTransactions(ShowID);
            List<Transaction> showTranslist = new List<Transaction>();

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                showTranslist.Add(new Transaction(row));
            }
            return showTranslist;
        }
 public static void Delete(int Id)
 {
     String moduleSettings = ModuleConfig.GetSettings();
     Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);
     t.DeleteById(Id);
 }
        public static List<Transaction> getOfflineList(int ShowID, DateTime fromDate, DateTime toDate)
        {
            String moduleSettings = ModuleConfig.GetSettings();
            Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);
            DataSet ds = t.getOfflineList(ShowID, fromDate, toDate);
            List<Transaction> showTranslist = new List<Transaction>();

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                showTranslist.Add(new Transaction(row));
            }
            return showTranslist;
        }
 public static int Add(String refCode, TransactionTypes TransactionType, Decimal amount, String Comment, int ShowID, int UserID, DateTime TransactionDate, Decimal cheque)
 {
     String moduleSettings = ModuleConfig.GetSettings();
     Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);
     return t.Add(refCode, (int)TransactionType, amount, Comment, ShowID, UserID, TransactionDate, cheque);
 }
 public Transaction(DataRow row)
     : base()
 {
     Init();
     _transaction = new Fpp.Data.Transaction(ModuleSettings);
     LoadFromRow(row);
 }
        public Transaction(int UserID, int ShowID)
            : base()
        {
            Init();
            _transaction = new Fpp.Data.Transaction(ModuleSettings);

            DataTable dt = _transaction.GetAllTransactionForShowUser(ShowID, UserID).Tables[0];
            if (dt.Rows.Count > 0)
            {
                LoadFromRow(dt.Rows[0]);
            }
        }
        public static Transaction.ENTERED_BY hasShowAdminUpdateEntry(int ShowID, int UserID)
        {
            Transaction.ENTERED_BY eb = Transaction.ENTERED_BY.ONLINE_ENTRY;
            String moduleSettings = ModuleConfig.GetSettings();
            Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);

            DataSet ds = t.hasShowAdminUpdateEntry(ShowID, UserID);
            if (ds.Tables[0].Rows.Count > 0)
            {
                int count = Convert.ToInt32(ds.Tables[0].Rows[0]["Count"]);
                if (count > 0)
                {
                    eb = Transaction.ENTERED_BY.SHOW_ADMIN_ENTRY;
                }
            }

            return eb;
        }
        public static List<RunningPlanDto> GetRunningPlansList(int Id)
        {
            String moduleSettings = ModuleConfig.GetSettings();
            Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);

            List<RunningPlanDto> list = new List<RunningPlanDto>();
            DataSet ds = t.GetRunningPlansList(Id);
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                list.Add(new RunningPlanDto
                {
                    Amount = Convert.ToDecimal(row["Amount"]),
                    Name = Convert.ToString(row["Name"]),
                    RefCode = Convert.ToString(row["RefCode"]),
                    UserId = Convert.ToInt32(row["UserId"]),
                    EnteredBy = Convert.ToInt32(row["EnteredBy"])
                });
            }

            return list;
        }
 public static void SetEnteredBy(int transID, ENTERED_BY EnteredBy)
 {
     String moduleSettings = ModuleConfig.GetSettings();
     Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);
     t.SetEnteredBy(transID, (int )EnteredBy);
 }
        public static List<RefundsDto> GetShowRefunds(int ShowId)
        {
            List<RefundsDto> res = new List<RefundsDto>();
            Fpp.Data.Transaction t = new Fpp.Data.Transaction(ModuleConfig.GetSettings());
            DataSet ds = t.GetShowRefunds(ShowId);

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                res.Add(new RefundsDto
                {
                    UserShowId = Convert.ToInt32(row["UserShowId"]),
                    Amount = Convert.ToInt32(row["Amount"]),
                    Comment = Convert.ToString(row["Comment"]),
                    Name = Convert.ToString(row["Name"]),
                    TransactionDate = Convert.ToDateTime(row["TransactionDate"]),
                    TransactionType = Convert.ToInt32(row["TransactionType"])
                });
            }
            return res;
        }
        public TransactionSummary(int ShowID, int UserID)
            : base()
        {
            String moduleSettings = ModuleConfig.GetSettings();
            Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);

            DataSet ds = t.getTransactionSummary(ShowID, UserID);
            if (ds.Tables[0].Rows.Count  > 0)
            {
                LoadFromRow(ds.Tables[0].Rows[0]);
            }
        }
        public static List<Transaction> getTransactionByTransactionNo(string txnNo)
        {
            String moduleSettings = ModuleConfig.GetSettings();
            Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);
            DataSet ds = t.GetTransactionsForTxnNo(txnNo);
            List<Transaction> showTranslist = new List<Transaction>();

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                showTranslist.Add(new Transaction(row));
            }
            return showTranslist;
        }
        public static String GetUserShowCharges(int ShowID, int UserID)
        {
            String moduleSettings = ModuleConfig.GetSettings();
            Fpp.Data.Transaction t = new Fpp.Data.Transaction(moduleSettings);

            DataSet ds = t.getUserShowCharges(ShowID, UserID);
            List<CurrentShowCost> showCostsList = new List<CurrentShowCost>();
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                showCostsList.Add(new CurrentShowCost(row));
            }
            if (showCostsList.Count > 0)
            {
                return  JsonConvert.SerializeObject(showCostsList);
            }
            else
            {
                return "";
            }
        }
 public Transaction()
     : base()
 {
     _transaction = new Fpp.Data.Transaction(ModuleSettings);
     Init();
 }