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); } } }
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(); }
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); }
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); }
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(); } }