Esempio n. 1
0
        /// <summary>
        /// Method to update till information
        /// </summary>
        /// <param name="tillNumber">Till number</param>
        /// <param name="shiftNumber">Shift number</param>
        /// <param name="shiftDate">Shift date</param>
        /// <param name="userName">User name</param>
        /// <param name="posId">Pos Id</param>
        /// <param name="errorMessage">Error</param>
        private void UpdateTillInformation(int tillNumber, int?shiftNumber, string shiftDate, string userName, int posId, out ErrorMessage errorMessage)
        {
            var dateStart = DateTime.Now;

            Performancelog.Debug($"Start,TillManager,UpdateTillInformation,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            errorMessage = new ErrorMessage();
            if (!string.IsNullOrEmpty(GetIpAddress(posId)))
            {
                var useShift = _policyManager.USE_SHIFTS;
                var till     = _tillService.GetTill(tillNumber);
                var shift    = new ShiftStore();
                if (!useShift)
                {
                    shiftNumber = null;
                }
                else
                {
                    if (shiftNumber.HasValue)
                    {
                        shift = _shiftService.GetShiftByShiftNumber(shiftNumber.Value);
                        if (shift == null && shiftNumber.Value != 0)
                        {
                            errorMessage = new ErrorMessage
                            {
                                MessageStyle = new MessageStyle
                                {
                                    Message = "Shift does not exists"
                                },
                                StatusCode  = HttpStatusCode.NotFound,
                                ShutDownPos = true
                            };
                            return;
                        }
                    }
                    else
                    {
                        errorMessage = new ErrorMessage
                        {
                            MessageStyle = new MessageStyle
                            {
                                Message = "Please select a shift"
                            },
                            StatusCode  = HttpStatusCode.NotFound,
                            ShutDownPos = true
                        };
                        return;
                    }
                }
                // Nicolette added to record date, time, active=true in
                // Tills table if USE_SHIFTS=No and TILL_FLOAT=No
                if (till != null)
                {
                    DateTime date;
                    DateTime.TryParse(shiftDate, out date);

                    if (!till.Active)
                    {
                        till.Date_Open = DateAndTime.Today;
                        till.Time_Open = DateAndTime.TimeOfDay;
                    }
                    till.Active       = true;
                    till.Processing   = true;
                    till.POSId        = posId;
                    till.UserLoggedOn = userName;
                    if (useShift)
                    {
                        till.Shift     = (short)shiftNumber.Value;
                        till.ShiftDate = date;
                    }
                    else
                    {
                        till.Shift = 0;
                    }
                    _tillService.UpdateTill(till);
                }
                else
                {
                    errorMessage = new ErrorMessage
                    {
                        MessageStyle = new MessageStyle
                        {
                            Message = "Till does not exists"
                        },
                        StatusCode  = HttpStatusCode.NotFound,
                        ShutDownPos = true
                    };
                    return;
                }

                if (useShift && shift != null)
                {
                    if (shift.ShiftNumber == 0)
                    {
                        return;
                    }
                    shift.Active = 1;
                    _shiftService.UpdateShift(shift);
                }
            }
            else
            {
                //"Security Alert. Check your POS IP Address!";
                var offSet = _policyManager.LoadStoreInfo().OffSet;
                errorMessage.MessageStyle = _resourceManager.CreateMessage(offSet, 0, 8198, null, MessageType.OkOnly);
                errorMessage.StatusCode   = HttpStatusCode.Unauthorized;
                errorMessage.ShutDownPos  = true;
            }
            Performancelog.Debug($"End,TillManager,UpdateTillInformation,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
        }