Пример #1
0
        internal void AddAttendance(string barcode, BJUserInfo bjUser)
        {
            ReaderInfo reader = ReaderInfo.GetReaderByBar(barcode);

            int readerId = (reader == null) ? -1 : reader.NumberReader;

            dbWrapper.AddAttendance(barcode, bjUser.Id, bjUser.SelectedUserStatus.UnifiedLocationCode, readerId);
        }
Пример #2
0
        internal BARType CheckBAR(string data)
        {
            BJBookInfo book = BJBookInfo.GetBookInfoByBAR(data);

            if (book != null)
            {
                return(BARType.Book);
            }
            ReaderInfo reader = ReaderInfo.GetReaderByBar(data);

            if (reader != null)
            {
                return(BARType.Reader);
            }
            return(BARType.NotExist);
        }
Пример #3
0
        /// <summary>
        /// Возвращаемые значения:
        /// 0 - Издание принято от читателя. Сдано.
        /// 1 - Штрихкод не найден ни в базе читателей ни в базе книг
        /// 2 - ожидался штрихкод читателя, а считан штрихкод издания
        /// 3 - ожидался штрихкод издания, а считан штрихкод читателя
        /// 4 - Издание подготовлено к выдаче. ожидаем штрихкод читателя
        /// 5 - Издание и читатель подготовлены к выдаче
        ///
        /// </summary>
        /// <param name="PortData"></param>
        public int Circulate(string PortData)
        {
            BARType ScannedType;

            if (ExpectedBar == ExpectingAction.WaitingConfimation)//если ожидается подтверждение выдачи
            {
                return(5);
            }

            if ((ScannedType = BookOrReader(PortData)) == BARType.NotExist)//существует ли такой штрихкод вообще либо в базе читателей либо в базе изданий
            {
                return(1);
            }

            if (ExpectedBar == ExpectingAction.WaitingBook) //если сейчас ожидается штрихкод книги
            {
                if (ScannedType == BARType.Reader)          //выяснить какой штрихкод сейчас считан: читатель или книга
                {
                    return(3);
                }
                this.ScannedBook = BJBookInfo.GetBookInfoByBAR(PortData);
                ScannedExemplar  = (BJExemplarInfo)ScannedBook.Exemplars.Find(x => ((BJExemplarInfo)x).Bar == PortData);
                if (ci.IsIssuedToReader(ScannedExemplar))
                {
                    return(0);
                }
                else
                {
                    ExpectedBar = ExpectingAction.WaitingReader;
                    return(4);
                }
            }
            else  //если сейчас ожидается штрихкод читателя
            {
                if (ScannedType == BARType.Book) //выяснить какой штрихкод сейчас считан: читатель или книга
                {
                    return(2);
                }
                ScannedReader = ReaderInfo.GetReaderByBar(PortData);// new ReaderVO(PortData);
                ExpectedBar   = ExpectingAction.WaitingConfimation;
                return(5);
            }
        }