/// <summary>
        /// Search Loyalty Customers
        /// </summary>
        /// <param name="searchTerm"></param>
        /// <param name="totalResults"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public IList <Customer> SearchLoyaltyCustomer(string searchTerm, out int totalResults, int pageIndex = 1,
                                                      int pageSize = 100)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug(
                $"Start,CustomerManager,SearchLoyaltyCustomer,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            var customers = _customerService.SearchLoyaltyCustomer(searchTerm, out totalResults, pageIndex, pageSize);

            Performancelog.Debug(
                $"End,CustomerManager,SearchLoyaltyCustomer,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            if (customers?.Count > 0)
            {
                return(customers);
            }

            string tempAvoidedValuesString = "";

            var error = new MessageStyle();

            var customerByCard = SearchCustomerCard(searchTerm, true, out error);

            if (customerByCard != null)
            {
                //check if get by card
                totalResults = -999;
                customers.Add(customerByCard);
            }

            return(customers);
        }
        /// <summary>
        /// Method to get reasons
        /// </summary>
        /// <param name="reasonType">Reason type</param>
        /// <returns>List of reasons</returns>
        public List <Return_Reason> GetReasons(ReasonType reasonType)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,ReasonManager,GetReasons,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            var type    = (char)reasonType;
            var reasons = new List <Return_Reason>();
            var store   = CacheManager.GetStoreInfo();
            var offSet  = store?.OffSet ?? 0;

            if (type != '\0')
            {
                reasons = _reasonService.GetReasons(type);
            }
            if (reasons == null || reasons.Count == 0)
            {
                reasons = new List <Return_Reason>
                {
                    new Return_Reason
                    {
                        Description = _resourceManager.GetResString(offSet, 207), //"<No reasons defined>"
                        Reason      = "0"
                    }
                };
            }
            Performancelog.Debug($"End,ReasonManager,GetReasons,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(reasons);
        }
Esempio n. 3
0
        /// <summary>
        /// Validate the security code
        /// </summary>
        /// <param name="errorMessage">Error</param>
        /// <returns>True or false</returns>
        private bool IsValidSecurityCode(out ErrorMessage errorMessage)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,LoginManager,IsValidSecurityCode,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            errorMessage = new ErrorMessage();

            var store = _policyManager.LoadStoreInfo();

            //   to load retailerID for SITE real time validation
            // used GetPol function because Policy object is not yet created
            if (_policyManager.SITE_RTVAL)
            {
                store.RetailerID = _utilityService.GetAdminValue("RetailerAccountNo");
            }
            //   end
            var security = _policyManager.LoadSecurityInfo();

            GetInstallDate(ref security);

            var isValid = CheckSecurity(ref security, store);

            errorMessage.MessageStyle = new MessageStyle
            {
                Message     = security.Message,
                MessageType = MessageType.OkOnly
            };
            Performancelog.Debug($"End,LoginManager,IsValidSecurityCode,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(isValid);
        }
Esempio n. 4
0
        /// <summary>
        /// Suspend Sale
        /// </summary>
        /// <param name="tillNumber">Till number</param>
        /// <param name="saleNumber">Sale number</param>
        /// <param name="userCode">User code</param>
        /// <param name="errorMessage">Error</param>
        /// <returns>Sale</returns>
        public Sale SuspendSale(int tillNumber, int saleNumber, string userCode, out ErrorMessage errorMessage)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,SuspendedSaleManager,SuspendSale,{string.Empty},{dateStart:hh.mm.ss.ffffff}");
            if (!CanUserSuspendSale(userCode, out errorMessage))
            {
                return(new Sale());
            }
            var sale   = _saleManager.GetCurrentSale(saleNumber, tillNumber, 0, userCode, out errorMessage);
            var offSet = _policyManager.LoadStoreInfo().OffSet;

            if (!string.IsNullOrEmpty(errorMessage.MessageStyle.Message))
            {
                return(null);
            }

            //Added for checking delete prepay crash recovery
            if (sale.DeletePrepay)
            {
                //Please complete delete prepay first!~Comlete current transaction.
                errorMessage = new ErrorMessage
                {
                    MessageStyle = _resourceManager.CreateMessage(offSet, 11, 50, null),
                    StatusCode   = HttpStatusCode.PreconditionFailed
                };
                return(null);
            }

            if (sale.Sale_Lines.Count == 0 && !_policyManager.SUSPEND_MT)
            {
                errorMessage = new ErrorMessage
                {
                    MessageStyle = _resourceManager.CreateMessage(offSet, 11, 80, null, MessageType.OkOnly),
                    StatusCode   = HttpStatusCode.BadRequest
                };
                return(null);
            }
            //Added checking not allowing suspend sale with prepay
            if (_prepayManager.PrepayItemId(ref sale) > 0)
            {
                //MsgBox ("Cannot suspend sale with prepay, Please remove the prepay sale before suspend!~Suspend a Sale.")
                errorMessage = new ErrorMessage
                {
                    MessageStyle = _resourceManager.CreateMessage(offSet, 11, 57, null, CriticalOkMessageType),
                    StatusCode   = HttpStatusCode.BadRequest
                };
                return(null);
            }
            var sharePolicy = _policyManager.SHARE_SUSP;

            _suspendedSaleService.SuspendSale("SUSPEND", sharePolicy, sale, userCode);
            CacheManager.DeleteCurrentSaleForTill(sale.TillNumber, sale.Sale_Num);
            sale = _saleManager.InitializeSale(tillNumber, sale.Register, userCode, out errorMessage);
            //Update Sale object in Cache
            CacheManager.AddCurrentSaleForTill(sale.TillNumber, sale.Sale_Num, sale);
            Performancelog.Debug($"End,SuspendedSaleManager,SuspendSale,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(sale);
        }
Esempio n. 5
0
        /// <summary>
        /// Close Batch
        /// </summary>
        /// <param name="saleNumber">saleNumber</param>
        /// <param name="tillNumber"></param>
        /// <param name="userCode">userCode</param>
        /// <param name="givexReport">Givex receipt</param>
        /// <param name="errorMessage">errorMessage</param>
        /// <returns>true/false</returns>
        public bool CloseBatch(int saleNumber, int tillNumber, string userCode, out Report givexReport, out ErrorMessage errorMessage)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,GivexManager,CloseBatch,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            var returnVal = false;
            var cashoutId = "";
            var reports   = "";

            givexReport = null;
            //check sale exist for the particular sale number or not
            _saleManager.GetCurrentSale(saleNumber, tillNumber, 0, userCode, out errorMessage);

            if (string.IsNullOrEmpty(errorMessage.MessageStyle.Message))
            {
                if (_givexClientManager.GiveX_Close(saleNumber, ref cashoutId, ref reports, userCode, out errorMessage))
                {
                    if (string.IsNullOrEmpty(errorMessage.MessageStyle.Message))
                    {
                        _givexService.SaveCloseBatch(cashoutId, reports);
                        if (!string.IsNullOrEmpty(cashoutId) && !string.IsNullOrEmpty(reports))
                        {
                            var tempReprint = false;
                            givexReport = _receiptManager.PrintGiveXClose(cashoutId, true, ref tempReprint);
                        }
                        returnVal = true;
                    }
                }
            }
            Performancelog.Debug($"End,GivexManager,CloseBatch,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(returnVal);
        }
Esempio n. 6
0
        /// <summary>
        /// Get the user by user code
        /// </summary>
        /// <param name="userCode">User code</param>
        /// <returns>User</returns>
        public User GetUser(string userCode)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,LoginManager,GetUser,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            if (string.IsNullOrEmpty(userCode))
            {
                return(null);
            }
            var user = _userService.GetUser(userCode.ToUpper());

            if (user == null)
            {
                return(null);
            }

            var pswd          = new EncryptionManager();
            var decryptedText = pswd.DecryptText(user.epw);

            user.Password = decryptedText;

            Performancelog.Debug($"End,LoginManager,GetUser,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(user);
        }
        /// <summary>
        /// Get customer based on client card
        /// </summary>
        /// <param name="cardNumber"></param>
        /// <param name="expDate"></param>
        /// <param name="cardStatus"></param>
        /// <param name="dExpiryDate"></param>
        /// <returns></returns>
        private string GetCustomerBasedOnClientCard(string cardNumber, out string expDate, out string cardStatus,
                                                    out DateTime dExpiryDate)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug(
                $"Start,CustomerManager,GetCustomerBasedOnClientCard,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            var clientCard = _customerService.GetClientCardByCardNumber(cardNumber);

            if (clientCard == null)
            {
                dExpiryDate = new DateTime();
                expDate     = string.Empty;
                cardStatus  = string.Empty;
                Performancelog.Debug(
                    $"End,CustomerManager,GetCustomerBasedOnClientCard,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
                return(string.Empty);
            }

            dExpiryDate = clientCard.ExpirationDate;
            expDate     = clientCard.ExpirationDate.ToString("yyMM");

            cardStatus = clientCard.CardStatus.ToString();

            var returnValue = clientCard.ClientCode;

            Performancelog.Debug(
                $"End,CustomerManager,GetCustomerBasedOnClientCard,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(returnValue);
        }
Esempio n. 8
0
        /// <summary>
        /// Get Givex Card Balance
        /// </summary>
        /// <param name="givexCardNumber">givexCardNumber</param>
        /// <param name="saleNumber">saleNumber</param>
        /// <param name="tillNumber"></param>
        /// <param name="userCode">userCode</param>
        /// <param name="givexReceipt">Givex receipt</param>
        /// <param name="errorMessage">errorMessage</param>
        /// <returns>balance</returns>
        public decimal GetCardBalance(string givexCardNumber, int saleNumber, int
                                      tillNumber, string userCode, out Report givexReceipt, out ErrorMessage errorMessage)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,GivexManager,GetCardBalance,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            decimal amount     = 0;
            var     cardStatus = "";
            var     expDate    = "";

            givexReceipt = null;
            _saleManager.GetCurrentSale(saleNumber, tillNumber, 0, userCode, out errorMessage);
            if (string.IsNullOrEmpty(errorMessage.MessageStyle.Message))
            {
                GiveXReceiptType givex;
                if (_givexClientManager.GiveX_Balance(givexCardNumber.Trim(), saleNumber, ref amount, ref cardStatus,
                                                      ref expDate, userCode, out errorMessage, out givex))
                {
                    givexReceipt = _receiptManager.Print_GiveX_Receipt(givex);
                }
            }
            Performancelog.Debug($"End,GivexManager,GetCardBalance,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(amount);
        }
Esempio n. 9
0
        /// <summary>
        /// Change User
        /// </summary>
        /// <param name="currentUserCode">Current user code</param>
        /// <param name="userName">New user name</param>
        /// <param name="password">New user password</param>
        /// <param name="tillNumber">Till number</param>
        /// <param name="shiftNumber">Shift number</param>
        /// <param name="shiftDate">Shift date</param>
        /// <param name="posId">POS id</param>
        /// <param name="unauthorizedAccess">Unauthorizes switch user or not</param>
        /// <param name="errorMessage">Error message</param>
        /// <param name="newUser">New user</param>
        /// <returns>True or false</returns>
        public bool ChangeUser(string currentUserCode, string userName, string password,
                               int tillNumber, int?shiftNumber, string shiftDate, int posId,
                               bool unauthorizedAccess, out ErrorMessage errorMessage, out string newUser)
        {
            newUser = string.Empty;
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,LoginManager,ChangeUser,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            var returnValue = true;
            var isValidUser = CheckUserId(userName, password, posId, unauthorizedAccess, out errorMessage);

            if (isValidUser && !unauthorizedAccess)
            {
                shiftDate = _tillService.GetTill(tillNumber).ShiftDate.ToString("MM/dd/yyyy");
                UpdateTillInformation(tillNumber, shiftNumber, shiftDate, userName, posId, out errorMessage);
                returnValue = _loginService.UpdateLoggedInUser(userName, tillNumber);
            }
            else if (!isValidUser)
            {
                return(false);
            }
            Performancelog.Debug($"End,LoginManager,ChangeUser,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            var user = _userService.GetUser(userName);

            if (user.User_Group.Code == Utilities.Constants.Trainer)
            {
                newUser = user.User_Group.Code + "-" + user.Code;
            }
            return(returnValue);
        }
Esempio n. 10
0
        /// <summary>
        /// Method to make taxes
        /// </summary>
        /// <param name="stockCode">Stock code</param>
        /// <param name="stockType">Stock type</param>
        /// <returns>Line taxes</returns>
        private Line_Taxes GetLineTaxes(string stockCode, char stockType)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,StockManager,GetLineTaxes,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            var lt = new Line_Taxes();

            if (stockType == 'G')
            {
                return(null);
            }

            var taxes = _taxService.GetTaxInfoByStockCode(stockCode);

            if (taxes != null && taxes.Count != 0)
            {
                foreach (var tax in taxes)
                {
                    lt.Add(tax.TaxName,
                           tax.TaxCode,
                           tax.Rate,
                           tax.Included,
                           Convert.ToSingle(tax.Rebate), 0,
                           tax.TaxName);
                }
            }
            var returnValue = lt;

            Performancelog.Debug($"End,StockManager,GetLineTaxes,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(returnValue);
        }
Esempio n. 11
0
        /// <summary>
        /// Authenitcate the POS
        /// </summary>
        /// <param name="ipAddress">Ip address</param>
        /// <param name="message">Message</param>
        /// <param name="error">Error message</param>
        /// <returns>Pos id</returns>
        public int Authenticate(string ipAddress, out string message, out ErrorMessage error)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,LoginManager,Authenticate,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            message = string.Empty;
            var posId = 0;

            if (IsValidSecurityCode(out error))
            {
                if (!string.IsNullOrEmpty(error.MessageStyle.Message))
                {
                    message = error.MessageStyle.Message;
                    error.MessageStyle.Message = string.Empty;
                }
                posId = _utilityService.GetPosId(ipAddress);
                if (posId != 0 && IsPosAllowed((byte)posId))
                {
                    Performancelog.Debug($"End,LoginManager,Authenticate,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
                    return(posId);
                }
                var offSet = _policyManager.LoadStoreInfo().OffSet;
                error.MessageStyle = _resourceManager.CreateMessage(offSet, 0, 8198, null, MessageType.OkOnly);
                error.StatusCode   = HttpStatusCode.Unauthorized;
                error.ShutDownPos  = true;
            }
            else
            {
                error.StatusCode  = HttpStatusCode.Unauthorized;
                error.ShutDownPos = true;
            }
            Performancelog.Debug($"End,LoginManager,Authenticate,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(posId);
        }
Esempio n. 12
0
        //   to clear all promotions before reloading them
        /// <summary>
        /// Method to clear all promos
        /// </summary>
        /// <returns></returns>
        public bool Clear_AllPromos(ref Promos promos)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,PromoManager,Clear_AllPromos,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            var promoIDs = GetPromosForToday().Select(p => p.PromoID).ToList();

            if (promoIDs.Count != promos.Count)
            {
                Performancelog.Debug($"End,PromoManager,Clear_AllPromos,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

                return(false);
            }

            foreach (var promoId in promoIDs)
            {
                var strKey = promoId;
                if (!string.IsNullOrEmpty(strKey))
                {
                    promos.Remove(strKey);
                }
            }
            Performancelog.Debug($"End,PromoManager,Clear_AllPromos,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(true);
        }
        public PSRefund GetPSRefund(int TILL_NUM, int SALE_NO, string TransactionID)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,PaymentSourceManager,GetPSRefund,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            PSRefund psr;
            Sale     sale = CacheManager.GetCurrentSaleForTill(TILL_NUM, SALE_NO);

            if (sale != null)
            {
                foreach (Sale_Line sl in sale.Sale_Lines)
                {
                    if (sl.Serial_No == TransactionID)
                    {
                        psr           = new PSRefund();
                        psr.UpcNumber = sl.Stock_Code;
                        psr.Amount    = string.Format("{0:0.00}", sl.Amount);
                        psr.Name      = sl.Description;
                        return(psr);
                    }
                }
            }
            psr = _PaymentSourceService.GetPSRefund(TransactionID);
            Performancelog.Debug($"End,PaymentSourceManager,GetPSRefund,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(psr);
        }
Esempio n. 14
0
        /// <summary>
        /// Method to get stock item using stock code
        /// </summary>
        /// <param name="stockCode">Stock code</param>
        /// <param name="error">Error message</param>
        /// <returns>Stock item</returns>
        public StockItem GetStockByCode(string stockCode, out ErrorMessage error)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,StockManager,GetStockByCode,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            error = new ErrorMessage();
            if (string.IsNullOrEmpty(stockCode))
            {
                error.MessageStyle = new MessageStyle
                {
                    Message     = "Stock code is required",
                    MessageType = MessageType.OkOnly
                };
                error.StatusCode = HttpStatusCode.NotAcceptable;
                Performancelog.Debug($"End,StockManager,GetStockByCode,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
                return(null);
            }
            var stock = _stockService.GetStockItemByCode(stockCode, _policyManager.Sell_Inactive);

            if (stock == null)
            {
                var offSet = _policyManager.LoadStoreInfo().OffSet;
                error.MessageStyle = _resourceManager.CreateMessage(offSet, 39, 91, stockCode);
                error.StatusCode   = HttpStatusCode.NotFound;
                Performancelog.Debug($"End,StockManager,GetStockByCode,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
                return(null);
            }
            Performancelog.Debug($"End,StockManager,GetStockByCode,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(stock);
        }
        public List <PSTransaction> GetPSTransactions(int TILL_NUM, int SALE_NO, int PastDays)
        {
            List <PSTransaction> olist = new List <PSTransaction>();

            try
            {
                var sale = CacheManager.GetCurrentSaleForTill(TILL_NUM, SALE_NO);
                if (sale != null)
                {
                    olist = (from c in sale.Sale_Lines
                             where !string.IsNullOrEmpty(c.Serial_No)
                             select new PSTransaction()
                    {
                        TransactionID = c.Serial_No,
                        SALE_DATE = string.Format("{0:MM-dd-yyyy}", DateTime.Now),
                        STOCK_CODE = c.Stock_Code,
                        DESCRIPT = c.Description,
                        Amount = string.Format("{0:0.00}", c.Amount)
                    }).ToList();
                }
                List <PSTransaction> olist1 = _PaymentSourceService.GetPSTransactions(PastDays);
                olist = olist.Union(olist1).ToList();
            }
            catch (Exception ex)
            {
                Performancelog.Error("PaymentSourceManager.GetCurTransactions(): " + ex.Message);
            }
            return(olist);
        }
Esempio n. 16
0
        /// <summary>
        /// Get Installed Date
        /// </summary>
        /// <param name="security">Security</param>
        public void GetInstallDate(ref Security security)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,LoginManager,GetInstallDate,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            var dl = "";

            var strRenamed = security.Install_Date_Encrypt;

            if (strRenamed.Length >= 60)
            {
                short i;
                for (i = 21; i <= 40; i += 2)
                {
                    dl = dl + Convert.ToString(Strings.Chr((int)(Conversion.Val(strRenamed.Substring(i - 1, 2)) - 7)));
                }

                strRenamed            = DateAndTime.Month(DateTime.Parse(dl)).ToString("00") + "/" + DateAndTime.Day(DateTime.Parse(dl)).ToString("00") + "/" + DateAndTime.Year(DateTime.Parse(dl)).ToString("0000");
                security.Install_Date = DateTime.Parse(strRenamed);
                //        Me.Install_Date = Format(DL, "mm/dd/yyyy")
            }
            else
            {
                security.Install_Date = Convert.ToDateTime(DateTime.FromOADate(0));
            }
            Performancelog.Debug($"End,LoginManager,GetInstallDate,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
        }
Esempio n. 17
0
        /// <summary>
        /// Set Policy features
        /// </summary>
        /// <param name="security">Security</param>
        private void SetPolicyFeatures(Security security)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,LoginManager,SetPolicyFeatures,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            _policyManager.SetUpPolicy(security);
            Performancelog.Debug($"End,LoginManager,SetPolicyFeatures,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
        }
        /// <summary>
        /// GiveX batch Close
        /// </summary>
        /// <param name="saleNum">Sale number</param>
        /// <param name="cashoutId">Cash out id</param>
        /// <param name="report">Report</param>
        /// <param name="userCode">User code</param>
        /// <param name="errorMessage">Error message</param>
        /// <returns>True or false</returns>
        public bool GiveX_Close(int saleNum, ref string cashoutId, ref string report,
                                string userCode, out ErrorMessage errorMessage)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,GivexClientManager,GiveX_Close,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            var returnValue = false;
            var response    = new Variables.GiveXResponseType();
            var strReport   = "";

            cashoutId = "";
            report    = "";

            modStringPad.InitGiveXRequest();
            Variables.GX_Request.ServiceType = "CashOut";

            Variables.GX_Request.UserID = Convert.ToString(_givexPolicies["GIVEX_USER"]);

            Variables.GX_Request.UserPassword     = Convert.ToString(_givexPolicies["GIVEX_PASS"]);
            Variables.GX_Request.OperatorID       = "ALL";
            Variables.GX_Request.Language         = "0";
            Variables.GX_Request.TransactionCode  = (saleNum).ToString();
            Variables.GX_Request.TransmissionDate = DateAndTime.Today.ToString("MM/dd/yyyy");
            Variables.GX_Request.TransmissionTime = DateAndTime.TimeOfDay.ToString("hh:mm:ss");
            Variables.GX_Request.TerminalID       = "ALL";
            var strSend = modStringPad.GetGiveXRequest();

            if (SendGiveXRequest(strSend, "CashOut," + (saleNum), "CashOut", ref response, out errorMessage))
            {
                if (response.Result != "Approved")
                {
                    //Call DisplayMsgForm("CashOut is declined from GiveX TPS, CANNOT close batch for GiveX.", 99)
                    errorMessage.MessageStyle = _resourceManager.DisplayMsgForm(_offSet, 3273, 99, null, CriticalOkMessageType);
                    errorMessage.StatusCode   = HttpStatusCode.NotAcceptable;
                    return(false);
                }
                cashoutId = response.CashoutId.Trim();
                if (cashoutId == "0")
                {
                    errorMessage.MessageStyle = _resourceManager.DisplayMsgForm(_offSet, 3274, 99, null, CriticalOkMessageType);
                    errorMessage.StatusCode   = HttpStatusCode.NotAcceptable;
                    return(false);
                }



                returnValue = true;

                if (GetGiveXReport(saleNum, cashoutId, ref strReport, userCode, out errorMessage))
                {
                    report = strReport;
                }
            }
            Performancelog.Debug($"End,GivexClientManager,GiveX_Close,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(returnValue);
        }
Esempio n. 19
0
        /// <summary>
        /// Method to remove temp data
        /// </summary>
        /// <param name="saleNumber">Sale number</param>
        /// <param name="tillNumber">Till number</param>
        private void RemoveTempData(int saleNumber, int tillNumber)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,SaleHeadManager,RemoveTempData,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            _saleService.RemoveTempDataInDbTill(tillNumber, saleNumber);
            Performancelog.Debug($"End,SaleHeadManager,RemoveTempData,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
        }
        //   end

        /// <summary>
        /// Method to set a customer as loyalty customer
        /// </summary>
        /// <param name="customer">Customer</param>
        /// <param name="error"></param>
        /// <returns>True or false</returns>
        public bool SetLoyaltyCustomer(Customer customer, out ErrorMessage error)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug(
                $"Start,CustomerManager,SetLoyaltyCustomer,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            error = new ErrorMessage();
            var offSet = _policyManager.LoadStoreInfo().OffSet;

            if (string.IsNullOrEmpty(customer.Code))
            {
                MessageType messageType = (int)MessageType.Critical + MessageType.OkOnly;
                error.MessageStyle = _resourceManager.CreateMessage(offSet, 0, 8108, null, messageType);
            }
            var existingCustomer = _customerService.GetClientByClientCode(customer.Code);

            if (existingCustomer == null)
            {
                MessageType messageType = (int)MessageType.Critical + MessageType.OkOnly;
                error.MessageStyle = _resourceManager.CreateMessage(offSet, 0, 6581, null, messageType);
                return(false);
            }
            if (!string.IsNullOrEmpty(existingCustomer.Loyalty_Code))
            {
                MessageType messageType = (int)MessageType.Critical + MessageType.OkOnly;
                error.MessageStyle = new MessageStyle
                {
                    Message     = "This customer is already a loyalty customer",
                    MessageType = messageType
                };
                return(false);
            }
            if (customer.Code.Length > 10)
            {
                MessageType messageType = (int)MessageType.Critical + MessageType.OkOnly;
                error.MessageStyle = _resourceManager.CreateMessage(offSet, 16, 90, null, messageType);
                return(false);
            }

            if (string.IsNullOrEmpty(customer.Loyalty_Code) || customer.Loyalty_Code == "0")
            {
                error.MessageStyle = _resourceManager.CreateMessage(offSet, 16, 94, null, MessageType.OkOnly);
                return(false);
            }

            if (CheckCustomerByLoyaltyNumber(customer.Loyalty_Code))
            {
                error.MessageStyle = _resourceManager.CreateMessage(offSet, 16, 93, null, MessageType.OkOnly);
                return(false);
            }
            existingCustomer.Loyalty_Code = customer.Loyalty_Code;
            bool status = _customerService.SaveCustomer(existingCustomer);

            Performancelog.Debug(
                $"End,CustomerManager,SetLoyaltyCustomer,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(status);
        }
Esempio n. 21
0
        /// <summary>
        /// Get password by user code
        /// </summary>
        /// <param name="userCode">User code</param>
        /// <param name="error">Error</param>
        /// <returns>User</returns>
        public string GetPassword(string userCode, out ErrorMessage error)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,LoginManager,GetPassword,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            error = new ErrorMessage();
            if (_policyManager.WINDOWS_LOGIN)
            {
                if (string.IsNullOrEmpty(userCode))
                {
                    error = new ErrorMessage
                    {
                        MessageStyle = new MessageStyle {
                            Message = "Please provide userName"
                        },
                        StatusCode = HttpStatusCode.NotFound
                    };
                    return(null);
                }
                var user = _userService.GetUser(userCode.ToUpper());
                if (user == null)
                {
                    error = new ErrorMessage
                    {
                        MessageStyle = new MessageStyle
                        {
                            Message     = "You are Not Authorized to Login",
                            MessageType = MessageType.OkOnly
                        },
                        StatusCode  = HttpStatusCode.Unauthorized,
                        ShutDownPos = true
                    };
                    return(null);
                }
                //Add user in cache

                var pswd          = new EncryptionManager();
                var decryptedText = pswd.DecryptText(user.epw);
                user.Password = decryptedText;
                CacheManager.AddUser(userCode, user);
                Performancelog.Debug(
                    $"End,LoginManager,GetPassword,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
                return(user.Password);
            }
            error = new ErrorMessage
            {
                MessageStyle = new MessageStyle
                {
                    Message     = Utilities.Constants.InvalidRequest,
                    MessageType = MessageType.OkOnly
                },
                StatusCode  = HttpStatusCode.BadRequest,
                ShutDownPos = true
            };
            return(null);
        }
        public bool DownloadFile()
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,PaymentSourceManager,DownloadFile,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            bool bDownload = _PaymentSourceService.DownloadFile();

            Performancelog.Debug($"End,PaymentSourceManager,DownloadFile,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(bDownload);
        }
        public PSProfile GetPSProfile()
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,PaymentSourceManager,GetPSProfile,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            PSProfile pspf = _PaymentSourceService.GetPSProfile();

            Performancelog.Debug($"End,PaymentSourceManager,GetPSProfile,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(pspf);
        }
        public List <PSProduct> GetPSProducts()
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,PaymentSourceManager,GetPSProducts,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            List <PSProduct> olist = _PaymentSourceService.GetPSProducts();

            Performancelog.Debug($"End,PaymentSourceManager,GetPSProducts,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(olist);
        }
        public string GetFuelCodes()
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,FuelDiscountManager,GetFuelCodes,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            string sCodes = _fuelDiscountService.GetFuelCodes();

            Performancelog.Debug($"End,FuelDiscountManager,GetFuelCodes,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(sCodes);
        }
Esempio n. 26
0
        public string GetAckrooCarwashStockCode(string sDesc)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,AckrooManager,GetAckrooCarwashStockCode,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            string sVal = _AckrooService.GetAckrooCarwashStockCode(sDesc);

            Performancelog.Debug($"End,AckrooManager,GetAckrooCarwashStockCode,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(sVal);
        }
        public List <ClientGroup> GetClientGroups()
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,FuelDiscountManager,GetClientGroups,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            List <ClientGroup> olist = _fuelDiscountService.GetClientGroups();

            Performancelog.Debug($"End,FuelDiscountManager,GetClientGroups,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(olist);
        }
Esempio n. 28
0
        public string GetLoyaltyNo(int Sale_No)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,AckrooManager,GetLoyaltyNo,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            string sVal = _AckrooService.GetLoyaltyNo(Sale_No);

            Performancelog.Debug($"End,AckrooManager,GetLoyaltyNo,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(sVal);
        }
Esempio n. 29
0
        public List <Carwash> GetCarwashCategories()
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,AckrooManager,GetCarwashCategories,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            var olist = _AckrooService.GetCarwashCategories();

            Performancelog.Debug($"End,AckrooManager,GetCarwashCategories,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(olist);
        }
Esempio n. 30
0
        /// <summary>
        /// Method to get stock item using a stock term
        /// </summary>
        /// <param name="searchTerm">Search term</param>
        /// <param name="pageIndex">Page Index</param>
        /// <param name="pageSize">Page size</param>
        /// <returns>List of stock items</returns>
        public List <StockItem> SearchStockItems(string searchTerm, int pageIndex = 1, int pageSize = 100)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,StockManager,SearchStockItems,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            var stockItems = _stockService.SearchStock(searchTerm, _policyManager.Sell_Inactive, pageIndex, pageSize);

            Performancelog.Debug($"End,StockManager,SearchStockItems,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(stockItems);
        }