Пример #1
0
        private static BJConvoluteInfo GetConvoluteInfo(string InventoryNumber, string fund)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            BJDatabaseWrapper dbw = new BJDatabaseWrapper(fund);
            //DataTable table = dbw.GetExemplar(InventoryNumber);
            DataTable table = dbw.GetConvolute(InventoryNumber);

            sw.Stop();
            if (table.Rows.Count == 0)
            {
                return(null);
            }
            BJConvoluteInfo convolute = new BJConvoluteInfo();

            convolute.Fund   = fund;
            convolute.IDDATA = (int)table.Rows[0]["IDDATA"];
            convolute.IDMAIN = (int)table.Rows[0]["IDMAIN"];
            return(convolute);
        }
Пример #2
0
        public static BJExemplarInfo GetExemplarByIdData(int iddata, string fund)
        {
            BJDatabaseWrapper dbw   = new BJDatabaseWrapper(fund);
            DataTable         table = dbw.GetExemplar(iddata);

            if (table.Rows.Count == 0)
            {
                return(null);
            }
            BJExemplarInfo exemplar = new BJExemplarInfo((int)table.Rows[0]["IDDATA"]);

            exemplar.IDMAIN = (int)table.Rows[0]["IDMAIN"];
            exemplar.Fund   = fund;


            foreach (DataRow row in table.Rows)//записываем все поля в объект
            {
                if (fund == "BJACC")
                {
                    if (row["MNFIELD"].ToString() + row["MSFIELD"].ToString() == "899$w") //в американской базе нет инвентарных номеров. берем штрихкод
                    {
                        exemplar.Created = (DateTime)row["Created"];                      //за дату создания берем дату присвоения штрихкода
                    }
                }
                else
                {
                    if (row["MNFIELD"].ToString() + row["MSFIELD"].ToString() == "899$p") //в остальных есть и берём дату создания поля инвентарный номер
                    {
                        exemplar.Created = (DateTime)row["Created"];                      //за дату создания берем дату присвоения инвентаря
                    }
                }
                if (row["MNFIELD"].ToString() + row["MSFIELD"].ToString() == "899$a")
                {
                    exemplar.Fields.AddField(row["NAME"].ToString(), (int)row["MNFIELD"], row["MSFIELD"].ToString()); //местонахождение берём из LIST_8, а не из DATAEXTPLAIN, потому что в поле PLAIN меняются некоторые символы
                    continue;
                }
                exemplar.Fields.AddField(row["PLAIN"].ToString(), (int)row["MNFIELD"], row["MSFIELD"].ToString());//добавляем все поля блока 260 к объекту экземпляра
            }
            try
            {
                exemplar.ExemplarAccess = BJExemplarInfo.GetExemplarAccess(exemplar);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            if (exemplar.Fields["482$a"].MNFIELD != 0)//это приплётышь
            {
                BJConvoluteInfo convolute = BJExemplarInfo.GetConvoluteInfo(exemplar.Fields["482$a"].ToString(), exemplar.Fund);
                //BJExemplarInfo Convolute = BJExemplarInfo.GetExemplarByInventoryNumber(exemplar.Fields["482$a"].ToString(), exemplar.Fund);
                if (convolute != null)//нашёлся конволют
                {
                    exemplar.ConvolutePin    = $"{convolute.Fund}_{convolute.IDMAIN}";
                    exemplar.ConvoluteIdData = convolute.IDDATA;
                }
                else//не нашёлся конволют
                {
                    exemplar.ConvolutePin = null;
                }
            }
            else
            {
                //это не приплётышь ConvolutePin
                exemplar.ConvolutePin = null;
            }


            exemplar.Cipher = string.IsNullOrEmpty(exemplar.Fields["899$j"].ToString()) ? dbw.GetCipher(exemplar.Fields["899$b"].ToString(), exemplar.IDMAIN) : exemplar.Fields["899$j"].ToString();
            exemplar.Bar    = exemplar.Fields["899$w"].ToString();

            return(exemplar);
        }