Exemplo n.º 1
0
        void Settlement_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            try
            {
                using (SqlConnection conn = new SqlConnection(GlobalClass.TConnectionString))
                {
                    if (e.PropertyName == "TRNDATE")
                    {
                        SettlementList = new ObservableCollection <CashSettlement>(
                            conn.Query <CashSettlement>(
                                string.Format("SELECT SETTLEMENT_ID, TRNDATE, AMOUNT, TERMINAL_CODE, SETTLED_UID, TRNTIME, SETTLER_UID, POST FROM CashSettlement WHERE TRNDATE = '{0}'", Settlement.TRNDATE.ToString("MM/dd/yyyy"))
                                ));
                        foreach (CashSettlement cs in SettlementList)
                        {
                            cs.Terminal     = TerminalList.First(x => x.TERMINAL_CODE == cs.TERMINAL_CODE);
                            cs.Settled_User = UserList.First(x => x.UID == cs.SETTLED_UID);
                            cs.Settler_User = UserList.First(x => x.UID == cs.SETTLER_UID);
                        }
                        if (SettlementList.Count > 0)
                        {
                            SettlementList.Add(new CashSettlement {
                                Settler_User = new User {
                                    UserName = "******"
                                }, AMOUNT = SettlementList.Sum(x => x.AMOUNT)
                            });
                        }
                    }
                    else if (e.PropertyName == "SETTLED_UID" || e.PropertyName == "TERMINAL_CODE")
                    {
                        string strSql = string.Empty;
                        switch (GlobalClass.SettlementMode)
                        {
                        case 0:     // Userwise Settlement
                            strSql = string.Format("SELECT ISNULL(SUM(GROSSAMOUNT),0) FROM ParkingSales PS JOIN [SESSION] S ON PS.SESSION_ID = S.SESSION_ID WHERE S.[UID] = {0} AND SESSION_SETTLED = 0 AND LEFT(BillNo,2) IN ('SI', 'TI')", Settlement.SETTLED_UID);
                            break;

                        case 1:     // Terminal wise Settlement
                            strSql = string.Format("SELECT ISNULL(SUM(GROSSAMOUNT),0) FROM ParkingSales PS JOIN [SESSION] S ON PS.SESSION_ID = S.SESSION_ID WHERE SESSION_SETTLED = 0 AND TERMINAL_CODE = '{1}' AND LEFT(BillNo,2) IN ('SI', 'TI')", Settlement.TERMINAL_CODE);
                            break;

                        case 2:     // User And Terminal wise  Settlement
                            strSql = string.Format("SELECT ISNULL(SUM(GROSSAMOUNT),0) FROM ParkingSales PS JOIN [SESSION] S ON PS.SESSION_ID = S.SESSION_ID WHERE S.[UID] = {0} AND SESSION_SETTLED = 0 AND TERMINAL_CODE = '{1}' AND LEFT(BillNo,2) IN ('SI', 'TI')", Settlement.SETTLED_UID, Settlement.TERMINAL_CODE);
                            break;

                        default:
                            strSql = string.Format("SELECT ISNULL(SUM(GROSSAMOUNT),0) FROM ParkingSales PS JOIN [SESSION] S ON PS.SESSION_ID = S.SESSION_ID WHERE S.[UID] = {0} AND SESSION_SETTLED = 0 AND LEFT(BillNo,2) IN ('SI', 'TI')", Settlement.SETTLED_UID);
                            break;
                        }

                        Settlement.CollectionAmount = conn.ExecuteScalar <decimal>(strSql);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Cash Settlement", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }