Beispiel #1
0
        public bool IsHundredBooksOrdered(InvOfBook inv, int idr)
        {
            DataSet DS = new DataSet();

            con = new SqlConnection(XmlConnections.GetConnection("/Connections/ZakazO"));
            SqlDataAdapter sdvig = new SqlDataAdapter("select * from Reservation_O..Orders where  ID_Reader =" + idr.ToString(), con);

            sdvig.Fill(DS, "Ten");
            int AbonCNT = 0;
            int BKCNT   = 0;

            foreach (DataRow r in DS.Tables["Ten"].Rows)
            {
                InvOfBook tmp = new InvOfBook(r["InvNumber"].ToString(), r["ID_Book_EC"].ToString(), r["IDDATA"].ToString());
                if (tmp.mhr == null)
                {
                    tmp.mhr = "";
                }
                if (tmp.mhr.Contains("Абонемент"))
                {
                    AbonCNT++;
                }
                else
                {
                    BKCNT++;
                }
            }
            con.Dispose();
            sdvig.Dispose();
            if (inv.mhr.Contains("Абонемент"))
            {
                if (AbonCNT >= 100)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                if (BKCNT >= 100)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
Beispiel #2
0
        public void OrdE(InvOfBook _inv, int dur, DateTime date, int idr) //перенос из таблицы корзина в таблицу читатели
        {
            DataSet DS = new DataSet();

            //SqlConnection con = new SqlConnection("Data Source=192.168.3.63;Initial Catalog=Reservation;Persist Security Info=True;User ID=Sasha;Password=Corpse536");
            con = new SqlConnection(XmlConnections.GetConnection("/Connections/Zakaz"));
            SqlDataAdapter sdvig = new SqlDataAdapter("select * from Reservation_E..Orders where ID_Book_EC =" + this.ID, con);

            sdvig.Fill(DS, "Name");
            con.Close();
            DataRow r = DS.Tables["Name"].NewRow();

            r["ID_Reader"]   = idr;
            r["ID_Book_EC"]  = ID;
            r["ID_Book_CC"]  = 0; //че сюда загонять?????пока ноль. это номер книги карточного каталога
            r["Status"]      = 0; //изначально статус нулевой
            r["Start_Date"]  = date;
            r["Change_Date"] = date;
            r["InvNumber"]   = _inv.inv;
            r["Form_Date"]   = DateTime.Now;
            r["Duration"]    = dur;
            r["Who"]         = 0;//кто сменил статус
            r["IDDATA"]      = int.Parse(_inv.iddata);
            //r["INOTE"] = _inv.note;
            if (_inv.IsAllig)
            {
                r["ALGIDM"] = _inv.IdmainOfMainAllig;
            }
            DS.Tables["Name"].Rows.Add(r);


            SqlCommandBuilder cb = new SqlCommandBuilder(sdvig);

            sdvig.InsertCommand = cb.GetInsertCommand();

            sdvig.Update(DS.Tables["Name"]);
            con.Dispose();
            sdvig.Dispose();
        }
Beispiel #3
0
        public void BuildTable1()
        {
            holder1.Controls.Clear();
            DABasket.SelectCommand = new SqlCommand("select * from Basket where IDREADER = 1" /*+ HttpContext.Current.User.Identity.Name*/, con);
            //con.Open();
            DSetBasket = new DataSet();
            DABasket.Fill(DSetBasket, "Basket");

            DABasket.SelectCommand = new SqlCommand("select  R.IDMAIN idm, ZAG.PLAIN zag, INV.PLAIN inv, MHRAN.NAME mhran, KLASS.PLAIN klass from Reservation..Basket R " +
                                                    "join BJVVV..DATAEXT DZAG on R.IDMAIN = DZAG.IDMAIN " +
                                                    "join BJVVV..DATAEXT DINV on R.IDMAIN = DINV.IDMAIN " +
                                                    "join BJVVV..DATAEXT DMHRAN on R.IDMAIN = DMHRAN.IDMAIN " +
                                                    "join BJVVV..DATAEXTPLAIN ZAG on DZAG.ID = ZAG.IDDATAEXT " +
                                                    "JOIN BJVVV..DATAEXTPLAIN INV on DINV.ID = INV.IDDATAEXT " +
                                                    "JOIN BJVVV..DATAEXTPLAIN MHRANshort on DMHRAN.ID = MHRANshort.IDDATAEXT " +
                                                    "join BJVVV..LIST_8 MHRAN on MHRANshort.PLAIN = MHRAN.SHORTNAME " +
                                                    "join BJVVV..DATAEXT DKLASS on R.IDMAIN = DKLASS.IDMAIN " +
                                                    "join BJVVV..DATAEXTPLAIN KLASS on DKLASS.ID = KLASS.IDDATAEXT " +
                                                    "where (DZAG.MNFIELD = 200 and DZAG.MSFIELD = '$a' ) " +
                                                    "and (DINV.MNFIELD = 899 and DINV.MSFIELD = '$p') " +
                                                    "and (DMHRAN.MNFIELD = 899 and DMHRAN.MSFIELD = '$a') " +
                                                    "and (DKLASS.MNFIELD = 921 and DKLASS.MSFIELD = '$c') " +
                                                    "and DINV.IDDATA	 = DMHRAN.IDDATA and R.IDREADER = 1"/*+ HttpContext.Current.User.Identity.Name*/, con);

            int excnt = DABasket.Fill(DSetBasket, "ExactlyBasket");

            long idmainConst = (System.Int64)DSetBasket.Tables["ExactlyBasket"].Rows[0]["idm"];
            long idmain      = idmainConst;
            //bool FoundWithoutOrder = false;
            //bool FoundInRH = false;
            //bool FoundWithoutOrderTsokol = false;
            List <Book>      BooksForTable   = new List <Book>();
            List <InvOfBook> InvsForDates    = new List <InvOfBook>();
            List <InvOfBook> InvsForTable    = new List <InvOfBook>();
            Book             bookForTable    = null;
            InvOfBook        InvForTableKN   = null;
            InvOfBook        InvForTableKNTS = null;

            //InvOfBook InvForTableCHZ;

            foreach (DataRow r in DSetBasket.Tables["ExactlyBasket"].Rows)//ЦИКЛ НЕ РАБОЧИЙ НАДО ИСПРАВЛЯТЬ. ПРОСКАКИВАЕТ СТРОКИ ШО ПЕПЕЦ!!!!!!!!!!!
            {
                //Type p = r["idm"].GetType();
                idmain = (System.Int64)r["idm"];///ЦИКЛ НЕ РАБОЧИЙ НАДО ИСПРАВЛЯТЬ. ПРОСКАКИВАЕТ СТРОКИ ШО ПЕПЕЦ!!!!!!!!!!!

                if (idmainConst == idmain)
                {
                    InvOfBook inv  = new InvOfBook(r["inv"].ToString(), r["mhran"].ToString(), r["klass"].ToString());
                    int       test = inv.mhr.IndexOf("Кнохранение");
                    test         = inv.mhr.IndexOf("этаж");
                    bookForTable = new Book(r["zag"].ToString());
                    bookForTable.InvsOfBook.Add(inv);
                    if ((inv.mhr.IndexOf("Книгохранение") != -1) && (inv.mhr.IndexOf("этаж") != -1))
                    {//этаж имеет преимущестов над цоколем
                        if (bookForTable.FoundWithoutOrder)
                        {
                            continue;
                        }

                        if (inv.Ordered)
                        {
                            //запомнить номер и перейти к след книге
                            InvsForDates.Add(inv);
                        }
                        else
                        {
                            //запомнить все для занесения в таблицу.
                            //InvsForTable = new List<InvOfBook>();
                            //InvsForTable.Add(inv);
                            InvForTableKN = inv;
                            bookForTable.FoundWithoutOrder = true;
                        }
                    }
                    else
                    {
                        if ((inv.mhr.IndexOf("Книгохранение") != -1) && (inv.mhr.IndexOf("цоколь") != -1))
                        {//цоколь
                            if (bookForTable.FoundWithoutOrder)
                            {
                                continue;
                            }
                            if (bookForTable.FoundWithoutOrderTsokol)
                            {
                                continue;
                            }

                            if (inv.Ordered)
                            {
                                //запомнить номер и перейти к след книге
                                InvsForDates.Add(inv);
                            }
                            else
                            {
                                //запомнить все для занесения в таблицу.

                                InvForTableKNTS = inv;
                                bookForTable.FoundWithoutOrderTsokol = true;
                            }
                        }
                        else
                        {
                            if ((inv.mhr.IndexOf("Информационный") != -1) ||
                                (inv.mhr.IndexOf("Комплексный") != -1) ||
                                (inv.mhr.IndexOf("Религиозной") != -1) ||
                                (inv.mhr.IndexOf("детской") != -1) ||
                                (inv.mhr.IndexOf("языкознанию") != -1) ||
                                (inv.mhr.IndexOf("общий читальный") != -1) ||
                                (inv.mhr.IndexOf("периодических") != -1) ||
                                (inv.mhr.IndexOf("лингвистический") != -1) ||
                                (inv.mhr.IndexOf("восточных") != -1) ||
                                (inv.mhr.IndexOf("правовой") != -1))
                            {
                                InvsForTable.Add(inv);
                            }
                            else
                            {
                                //книга в отделе из которого нельзя выдавать
                            }
                        }
                    }
                }
                else
                {
                    idmainConst = idmain;

                    /*if ((bookForTable.FoundWithoutOrder) && (!bookForTable.FoundWithoutOrderTsokol))
                     * {
                     *  //все инвентари это книги заказаны при месте хранения равно книгохранение. еще будет ЧЗ и цоколь. если из хранения все заказаны, то можно и из цоколя на крайняк
                     *  bookForTable.InvsOfBook = InvsForDates;
                     *  bookForTable.AllInvsOrdered = true;
                     * }
                     * else
                     * {
                     *  bookForTable.InvsOfBook = InvsForTable;
                     *  bookForTable.AllInvsOrdered = false;
                     * }*/
                    if (bookForTable == null)
                    {
                        continue;
                    }
                    if (bookForTable.FoundWithoutOrder)
                    {
                        InvsForTable.Add(InvForTableKN);
                        bookForTable.InvsOfBook = InvsForTable;
                    }
                    else
                    {
                        if (bookForTable.FoundWithoutOrderTsokol)
                        {
                            InvsForTable.Add(InvForTableKNTS);
                            bookForTable.InvsOfBook = InvsForTable;
                        }
                        else
                        {
                            InvsForDates.AddRange(InvsForTable);
                            bookForTable.InvsOfBook = InvsForDates;
                        }
                    }
                    BooksForTable.Add(bookForTable);
                    InvForTableKNTS = null;
                    InvForTableKN   = null;
                    //bookForTable = new Book(r["zag"].ToString());
                    InvsForDates = new List <InvOfBook>();
                    InvsForTable = new List <InvOfBook>();
                }
            }



            DABasket.SelectCommand.CommandText = "select * from Status";
            DABasket.Fill(DSetBasket, "Status");

            DABasket.SelectCommand.CommandText = "select * from Orders";
            DABasket.Fill(DSetBasket, "Orders");

            OleDA.SelectCommand             = new OleDbCommand();
            OleDA.SelectCommand.Connection  = OleCon;
            OleDA.SelectCommand.CommandText = "select * from MAIN where NumberReader = 1"; //+ HttpContext.Current.User.Identity.Name;// +" and Family = '" + TextBox2.Text + "'";
            DataSet DS   = new DataSet();
            int     recc = OleDA.Fill(DS, "Surname");

            if (recc == 0)
            {
                OleDA.SelectCommand.CommandText = "select * from MAIN where NumberSC = " + HttpContext.Current.User.Identity.Name;// +" and Family = '" + TextBox2.Text + "'";
                recc = OleDA.Fill(DS, "Surname");
                if (recc == 0)
                {
                    throw new Exception("Быть такого не может! " + HttpContext.Current.User.Identity.Name);
                }
            }

            //Label7.Text = ch.GetNameReader("1");

            //SqlDataAdapter NameReader = new SqlDataAdapter("select  r1.FamilyName from Readers..Main as r1 left join Reservation..Basket as r on r.id = r1.NumberReader where r.id = " + "1", con);
            //NameReader.Fill(DS, "Name");
            Label1.Text = "Личный кабинет пользователя " + DS.Tables["Surname"].Rows[0]["FamilyName"].ToString() + " " + DS.Tables["Surname"].Rows[0]["Name"].ToString() + " " + DS.Tables["Surname"].Rows[0]["FatherName"].ToString();

            Checkboxes    = new CheckBox[DSetBasket.Tables["Basket"].Rows.Count];
            Clntid        = new String[DSetBasket.Tables["Basket"].Rows.Count];
            CalendarTexts = new TextBox[DSetBasket.Tables["Basket"].Rows.Count];
            HF            = new HiddenField[DSetBasket.Tables["Basket"].Rows.Count];
            Calendars     = new CalendarExtender[DSetBasket.Tables["Basket"].Rows.Count];
            CalendarsOrd  = new CalendarExtender[DSetBasket.Tables["Basket"].Rows.Count];
            bs            = new Button[DSetBasket.Tables["Basket"].Rows.Count];


            //        for (int i = 0; i < Table1.Rows.Count; i++)
            //         Table1.Rows.RemoveAt(0);
            Table1.Rows.Clear();

            Table1.Style["left"] = "30px";
            Table1.Style["top"]  = "50px";
            TableRow  row  = new TableRow();
            TableCell cell = new TableCell();

            cell.HorizontalAlign = HorizontalAlign.Center;
            Table1.BorderColor   = System.Drawing.Color.Black;
            Table1.BorderWidth   = 3;

            Table1.Rows.Add(row);
            row.Cells.Add(cell);
            Table1.Rows[0].Cells[0].ColumnSpan = 5;
            Table1.Rows[0].Cells[0].Text       = "<b>КОРЗИНА</b>";
            row = new TableRow();
            //cell = new TableCell();
            //cell.Width = 400;
            //cell.Text = "";
            //row.Cells.Add(cell);
            cell                 = new TableCell();
            cell.Width           = 250;
            cell.HorizontalAlign = HorizontalAlign.Center;
            cell.ColumnSpan      = 2;
            cell.Text            = "<b>Название книги</b>";
            row.Cells.Add(cell);
            //String f = Table1.Rows[0].Cells[0].Width.ToString();
            cell = new TableCell();
            cell.HorizontalAlign = HorizontalAlign.Center;
            cell.Text            = "<b>Дата заказа</b>";
            cell.Width           = 110;
            row.Cells.Add(cell);
            cell = new TableCell();
            cell.HorizontalAlign = HorizontalAlign.Center;
            cell.Text            = "<b>Местонахождение</b>";
            row.Cells.Add(cell);
            Table1.Rows.Add(row);

            DSetBasket.Tables.Add("Books");
            string        scriptTemplate = @"
            <script language=""javascript"" type=""text/javascript"">
            
            var id1 = [{0}];
            var id2 = [{1}];
            var id3 = [{2}];
            var sp = [{3}];
            //var i = 0;
            for (i = 0; i < id1.length; i++){{
         //       var SPECIAL_DAYS = sp[i];
          //      newCal(id1[i], id2[i], i);
            //if (id2[i].value = '') id2[i].value = Date();
            //<%CalendarTexts[i].Text = %>
            }};
                        
            </script>";
            StringBuilder id1            = new StringBuilder();
            StringBuilder id2            = new StringBuilder();
            StringBuilder id3            = new StringBuilder();
            StringBuilder bd             = new StringBuilder();

            String[] Month;
            Month = new String[12];

            for (int i = 0; i < DSetBasket.Tables["Basket"].Rows.Count; i++)
            {
                Checking ch = new Checking(DSetBasket.Tables["Basket"].Rows[i][2].ToString(), "1" /*HttpContext.Current.User.Identity.Name*/);//DSetBasket.Tables["Basket"].Rows[i][1].ToString());
                //ch.Ord("1111");
                row = new TableRow();
                Table1.Rows.Add(row);
                cell = new TableCell();

                //cell.Width = Unit.Percentage(40);
                row.Cells.Add(cell);

                cell = new TableCell();
                row.Cells.Add(cell);
                //cell.Width = Unit.Percentage(20);
                cell = new TableCell();
                row.Cells.Add(cell);
                //cell.Width = Unit.Percentage(40);
                cell = new TableCell();
                row.Cells.Add(cell);
                row.VerticalAlign = VerticalAlign.Middle;

                Table1.Rows[i + 2].Cells[1].Text  = ch.GetZaglavie();//DSetBasket.Tables["Books"].Rows[0][1].ToString();
                Table1.Rows[i + 2].Cells[1].Width = 240;



                Checkboxes[i] = new CheckBox();

                Checkboxes[i].ID = "ch" + i.ToString();
                Clntid[i]        = Checkboxes[i].ClientID;
                //holder1.Controls.Add(Checkboxes[i]);
                Table1.Rows[i + 2].Cells[0].Controls.Add(Checkboxes[i]);

                HF[i]    = new HiddenField();
                HF[i].ID = "hf" + i.ToString();
                holder1.Controls.Add(HF[i]);

                CalendarTexts[i] = new TextBox();


                CalendarTexts[i].ID   = "сtb" + i.ToString();
                CalendarTexts[i].Text = string.Empty; //DateTime.Today.ToString("dd.MM.yyyy");
                //CalendarTexts[i].ReadOnly = true;
                //CalendarTexts[i].Attributes.Add("onChange", "focus()");
                Table1.Rows[i + 2].Cells[2].Controls.Add(CalendarTexts[i]);
                //CalendarTexts[i].Attributes.Add("onprerender", "");
                CalendarTexts[i].Style["z-index"] = "1";
                CalendarTexts[i].Width            = 70;
                //EventArgs ev = new EventArgs();
                CalendarTexts[i].TextChanged += new EventHandler(Default_TextChanged);
                //CalendarTexts[i].TextChanged += new EventHandler(ctb_TextChanged);
                //CalendarTexts[i].TextChanged += new EventHandler(_Default_TextChanged);


                //disable занятые даты
                ArrayList BusDats = ch.DisableBusyDates();
                //Session.Clear();
                for (int h = 0; h < Month.Length; h++)
                {
                    Month[h] = "";
                }
                ;
                for (int Dat = 0; Dat < BusDats.Count; Dat++)
                {
                    DateTime BusDat = (DateTime)BusDats[Dat];
                    Month[BusDat.Month - 1] += BusDat.Day.ToString() + ",";
                }
                ;
                bd.Append("[");
                for (int h = 0; h < Month.Length; h++)
                {
                    if (Month[h].Length != 0)
                    {
                        Month[h] = Month[h].Remove(Month[h].Length - 1, 1);
                    }
                    Month[h]  = "[" + Month[h];
                    Month[h] += "]";
                    bd.Append(Month[h] + ",");
                }
                ;
                bd.Remove(bd.Length - 1, 1);
                bd.Append("],");

                //int h = Session.Count;

                /*            bs[i] = new Button();
                 *          bs[i].ID = "myb"+i.ToString();
                 *          bs[i].Width = 17;
                 *
                 *          bs[i].Text = "...";
                 *          //bs[i].Attributes.Add("onclick", "newCal(\"" + bs[i].ClientID + "\",\"" + CalendarTexts[i].ClientID + "\",\"" + "ff" + "\");return false;");
                 *          bs[i].Attributes.Add("onmouseup", "newCal(\"TabContainer1_TabPanel1_" + bs[i].ID + "\",\"TabContainer1_TabPanel1_" + CalendarTexts[i].ID + "\",\"" + "ff" + "\");return false;");
                 *          //bs[i].Attributes.Add("onclick","return false;");
                 *          //bs[i].Attributes.Add("onmouseover", "");
                 *          //holder1.Controls.Add(b);
                 *          Table1.Rows[i + 2].Cells[2].Controls.Add(bs[i]);*/

                bs[i] = new Button();
                //bs[i].Attributes.Clear();
                bs[i].ID   = "bs" + i.ToString();
                bs[i].Text = "...";

                //bs[i].Attributes.Add("type", "button");
                //string s = bs[i].ClientID.ToString();
                Table1.Rows[i + 2].Cells[2].Controls.Add(bs[i]);
                //bs[i].Attributes.Add("onmouseup", "updatePanel();alert('ahh...');return false;");
                //Button1.Attributes.Add("onmouseup", "updatePanel();alert('ahh...');return false;");
                bs[i].Attributes.Add("onmouseover", "SPECIAL_DAYS = sp[" + i.ToString() + "]");
                bs[i].Attributes.Add("UseSubmitBehavior", "false");
                Button1.Attributes.Add("onmousedown", "isDateSelected()");
                //UpdatePanel1.Triggers.Add(bs[i]);
                //bs[i].Attributes["type"] = "button";                                                                                                                                                    butt.type = 'button';//в IE type нельзя менять
                bs[i].Attributes.Add("onclick", "var ct = document.getElementById('" + CalendarTexts[i].ClientID.ToString() + "');var butt = document.getElementById('" + bs[i].ClientID.ToString() + "');apiCal(id1[" + i.ToString() + "],id2[" + i.ToString() + "],ct.value);");
                //HF[i].Value = "g";
                //CalendarTexts[i].Text = CalendarTexts[i].Text;
                //CalendarTexts[i].Text = Session["my"].ToString();
                //bs[i].Attributes.Add("onmouseout", "cl.hide();");
                //Button2.Attributes.Add("onmouseover", "apiCal(" + bs[i].ClientID.ToString() + "," + CalendarTexts[i].ClientID.ToString() + ");");
                //bs[i].Attributes.Add("onload", "newCal(\"" + bs[i].ClientID + "\",\"" + CalendarTexts[i].ClientID + "\",\"" + "ff" + "\");return false;");

                id1.AppendFormat("\"{0}\",", bs[i].ClientID);
                id2.AppendFormat("\"{0}\",", CalendarTexts[i].ClientID);
                id3.AppendFormat("\"{0}\",", Checkboxes[i].ClientID);

                ////////////////////////////////////////////////////////////////////////////////////////////////
                ////////////////////////////////////////////////////////////////////////////////////////////////
                ////////////////////////////////////////////////////////////////////////////////////////////////
                //начало алгоритма проверки возможности выдачи книги на указанное число/////////////////////////
                ////////////////////////////////////////////////////////////////////////////////////////////////
                ////////////////////////////////////////////////////////////////////////////////////////////////
                ////////////////////////////////////////////////////////////////////////////////////////////////

                /* в каком фонде книга? пока муляж не рабочий..
                 * if (ch.GetWhere(DSetBasket.Tables["Basket"].Rows[i][2].ToString())== "Основной фонд")
                 * if (ch.GetWhere(DSetBasket.Tables["Basket"].Rows[i][2].ToString())== "Подсобный фонд")
                 * if (ch.GetWhere(DSetBasket.Tables["Basket"].Rows[i][2].ToString())== "Открытый доступ")
                 */

                //здесь проверить в свободном фонде ли? если да - не дать возможность заказать и вывести сообщение

                //проверка не заказана ли уже эта книга этим же читателем?
                if (ch.IsAlreadyInOrder())
                {
                    Table1.Rows[i + 2].Cells[3].Text = "Книга уже заказана Вами. Вы не можете заказать книгу второй раз.";
                    Checkboxes[i].Enabled            = false;

                    //bs[i].Enabled = false;
                    Table1.Rows[i + 2].BackColor = ColorTranslator.FromHtml("#FFAAAA");
                    continue;
                }
                //если есть свободные инвентари - то все ок

                if (ch.GetInv() != "")
                {
                    Table1.Rows[i + 2].Cells[3].Text = ch.GetWhere();// "Есть возможность заказать книгу на указанную дату."; писать не статус а местонахождение
                    //где то здесь надо запомнить этот свободный инвентарь
                    continue;
                }
                //если нет свободных инвентарей
                //CalendarTexts[i].Text = CalendarTexts[i].Text;
                else
                if (ch.GetInv() == "")
                {
                    //есто ли какой нибудь инвентарь не попадающий на указанную дату?
                    //                if (CalendarTexts[i].Text == "") CalendarTexts[i].Text = DateTime.Today.ToString();
                    ch.FreeBestCopy(CalendarTexts[i].Text);
                    if ((ch.GetFreeBestCopy().First.ToString() == "-1") ||
                        (ch.GetFreeBestCopy().First.ToString() == "0" &&
                         ch.GetFreeBestCopy().Second.ToString() == "уже нельзя"))
                    {
                        Table1.Rows[i + 2].Cells[3].Text = ch.GetWhere(); //"Нет возможности заказать книгу на указанную дату.";
                        Checkboxes[i].Enabled            = false;
                        //bs[i].Enabled = false;
                        Table1.Rows[i + 2].BackColor = ColorTranslator.FromHtml("#FFAAAA");
                    }
                    if (ch.GetFreeBestCopy().First.ToString() == "0" && ch.GetFreeBestCopy().Second.ToString() != "уже нельзя")
                    {
                        Table1.Rows[i + 2].Cells[3].Text = ch.GetWhere() + "; Книга уже заказана другим читателем, но Вы можете заказать книгу сегодня до его прихода. Для получения книги пройдите в указанный зал такойто.";
                        continue;
                    }
                    if (ch.GetFreeBestCopy().First.ToString() == "1")
                    {
                        Table1.Rows[i + 2].Cells[3].Text = "Есть возможность заказать книгу на указанную дату сроком на 1 день (сегодня).";
                        continue;
                    }
                    if (ch.GetFreeBestCopy().First.ToString() == "2")
                    {
                        Table1.Rows[i + 2].Cells[3].Text = "Есть возможность заказать книгу на указанную дату сроком на 2 дня (включая текущий).";
                        continue;
                    }
                    if (ch.GetFreeBestCopy().First.ToString() == "3")
                    {
                        Table1.Rows[i + 2].Cells[3].Text = "Есть возможность заказать книгу на указанную дату сроком на 3 дня (включая текущий).";
                        continue;
                    }
                    if (ch.GetFreeBestCopy().First.ToString() == "4")
                    {
                        Table1.Rows[i + 2].Cells[3].Text = "Есть возможность заказать книгу на указанную дату.";
                        continue;
                    }
                }

                ////////////////////////////////////////////////////////////////////////////////////////////////
                //конец алгоритма проверки возможности выдачи книги на указанное число/////////////////////////
                ////////////////////////////////////////////////////////////////////////////////////////////////
            }
            if (id1.Length != 0)
            {
                id1.Remove(id1.Length - 1, 1);
            }
            if (id2.Length != 0)
            {
                id2.Remove(id2.Length - 1, 1);
            }
            if (id3.Length != 0)
            {
                id3.Remove(id3.Length - 1, 1);
            }
            if (bd.Length != 0)
            {
                bd.Remove(bd.Length - 1, 1);
            }
            string tmp = "";//исправить баг чтобы даты по всем годам не ходили!!!

            script = string.Format(scriptTemplate, id1, id2, id3, bd, tmp);
            ClientScript.RegisterStartupScript(GetType(), "InitializeCalendars", script);
        }
Beispiel #4
0
    public List <Book> GetBooksForTableNew(DataTable t)
    {
        long idmainConst;
        long idmain;

        idmainConst = (System.Int64)t.Rows[0]["idm"];
        idmain      = idmainConst;
        //BooksForTable = new List<Book>();
        List <InvOfBook> InvsForDates = new List <InvOfBook>();
        List <InvOfBook> InvsForTable = new List <InvOfBook>();
        List <Book>      res          = new List <Book>();
        Book             bookForTable = new Book(GetBibDescr(t.Rows[0]["rtf"].ToString()), idmain.ToString(), t.Rows[0]["avt"].ToString(), t.Rows[0]["idbas"].ToString());

        foreach (DataRow r in t.Rows)
        {
            idmain = (System.Int64)r["idm"];

            if (idmainConst != idmain)
            {
                idmainConst = idmain;
                if (bookForTable == null)
                {
                    continue;
                }
                res.Add(bookForTable);
                InvsForDates = new List <InvOfBook>();
                InvsForTable = new List <InvOfBook>();
                bookForTable = new Book(GetBibDescr(r["rtf"].ToString()), r["idm"].ToString(), r["avt"].ToString(), r["idbas"].ToString());
            }
            //здесь вставить проверку если это аллигат, т.е. а482!=null , то местохранение брать из главного аллигата.
            InvOfBook inv;
            if (r["a482"].ToString() != "")
            {
                //inv = new InvOfBook(r["a482"].ToString(), r["mhran"].ToString(), r["klass"].ToString(), r["idm"].ToString());
                inv = new InvOfBook(r["a482"].ToString(), r["idm"].ToString(), r["a_iddata"].ToString());
            }
            else
            {
                inv = new InvOfBook(r["inv"].ToString(), r["idm"].ToString(), r["iddata"].ToString());

                //inv = new InvOfBook(r["inv"].ToString(), r["mhran"].ToString(), r["klass"].ToString(), r["idm"].ToString());
            }
            if (inv.mhr.Contains("нигохранени"))
            {
                inv.ForOrder = true;
            }
            else
            {
                inv.ForOrder = false;
            }
            if (inv.mhr.Contains("прием"))
            {
                inv.ForOrder = false;
            }
            if (inv.mhr.Contains("ТОД"))
            {
                inv.ForOrder = false;
            }
            if (inv.mhr.Contains("Овальный"))
            {
                inv.ForOrder = false;
            }

            if (inv.mhr.Contains("бонемент"))
            {
                inv.ForOrder = true;
                bookForTable.InvsOfBook.Add(inv);
            }
            else
            {
                bookForTable.InvsOfBook.Add(inv);
            }
        }
        res.Add(bookForTable);
        return(res);
    }
Beispiel #5
0
        public void Ord(InvOfBook _inv, int dur, DateTime date, int idr, int r_type) //перенос из таблицы корзина в таблицу читатели
        {
            if (!_inv.inv.Contains("Электронная"))
            {
                DataSet DS = new DataSet();
                //SqlConnection con = new SqlConnection("Data Source=192.168.3.63;Initial Catalog=Reservation;Persist Security Info=True;User ID=Sasha;Password=Corpse536");
                con = new SqlConnection(XmlConnections.GetConnection("/Connections/ZakazO"));
                SqlDataAdapter sdvig = new SqlDataAdapter("select * from Reservation_O..Orders where ID_Book_EC =" + this.ID, con);
                sdvig.Fill(DS, "Name");
                con.Close();
                DataRow r = DS.Tables["Name"].NewRow();
                r["ID_Reader"]   = idr;
                r["ID_Book_EC"]  = ID;
                r["ID_Book_CC"]  = 0; //че сюда загонять?????пока ноль. это номер книги карточного каталога
                r["Status"]      = 0; //изначально статус нулевой
                r["Start_Date"]  = date;
                r["Change_Date"] = date;
                r["InvNumber"]   = _inv.inv;
                r["Form_Date"]   = DateTime.Now;
                r["Duration"]    = dur;
                r["Who"]         = 0;//кто сменил статус
                r["IDDATA"]      = int.Parse(_inv.iddata);
                r["INOTE"]       = _inv.note;
                if (_inv.IsAllig)
                {
                    r["ALGIDM"] = _inv.IdmainOfMainAllig;
                }
                DS.Tables["Name"].Rows.Add(r);


                SqlCommandBuilder cb = new SqlCommandBuilder(sdvig);

                sdvig.InsertCommand = cb.GetInsertCommand();

                sdvig.Update(DS.Tables["Name"]);
                con.Dispose();
                sdvig.Dispose();
            }
            else
            {
                DataSet DS = new DataSet();
                con = new SqlConnection(XmlConnections.GetConnection("/Connections/ZakazO"));
                SqlDataAdapter da = new SqlDataAdapter("select * from Reservation_O..Orders where ID_Book_EC =" + this.ID, con);
                da.InsertCommand            = new SqlCommand();
                da.InsertCommand.Connection = con;
                if (da.InsertCommand.Connection.State == ConnectionState.Closed)
                {
                    da.InsertCommand.Connection.Open();
                }
                da.InsertCommand.CommandText = "insert into Reservation_R..ELISSUED (IDMAIN,IDREADER,DATEISSUE,DATERETURN,VIEWKEY,FORMDATE,BASE,R_TYPE) values " +
                                               " (@idm,@idr,@di,@dr,@vk,@fd,@idb,@rtype)";
                da.InsertCommand.Parameters.Add("idm", SqlDbType.Int);
                da.InsertCommand.Parameters.Add("idr", SqlDbType.Int);
                da.InsertCommand.Parameters.Add("di", SqlDbType.DateTime);
                da.InsertCommand.Parameters.Add("dr", SqlDbType.DateTime);
                da.InsertCommand.Parameters.Add("vk", SqlDbType.NVarChar);
                da.InsertCommand.Parameters.Add("fd", SqlDbType.DateTime);
                da.InsertCommand.Parameters.Add("idb", SqlDbType.Int);
                da.InsertCommand.Parameters.Add("rtype", SqlDbType.Int);
                da.InsertCommand.Parameters["idm"].Value   = _inv.IDMAIN;
                da.InsertCommand.Parameters["idr"].Value   = idr;
                da.InsertCommand.Parameters["di"].Value    = date;
                da.InsertCommand.Parameters["dr"].Value    = date.AddDays(dur);
                da.InsertCommand.Parameters["fd"].Value    = DateTime.Now;
                da.InsertCommand.Parameters["idb"].Value   = 1;//исправить на базу редкая или основ фонд когда заказ редкой будет
                da.InsertCommand.Parameters["rtype"].Value = r_type;
                byte[] random = new byte[20];
                RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
                rng.GetBytes(random); // The array is now filled with cryptographically strong random bytes.
                da.InsertCommand.Parameters["vk"].Value = Convert.ToBase64String(random);

                da.InsertCommand.ExecuteNonQuery();
                da.InsertCommand.Connection.Close();
            }
        }