Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПИС Курсач (ВКЛЮЧАЕТ ВСЕ ЛР И ПР)

.pdf
Скачиваний:
13
Добавлен:
25.06.2023
Размер:
1.63 Mб
Скачать

<td>

<asp:TextBox ID="TBmiddleName" runat="server" Enabled="false" Text=""></asp:TextBox>

</td>

</tr>

<tr>

<td>Адрес</td>

<td>

<asp:TextBox ID="TBaddress" runat="server" Enabled="false" Text=""></asp:TextBox>

</td>

</tr>

<tr>

<td>Паспорт</td>

<td>

<asp:TextBox ID="TBpassport" runat="server" Enabled="false" Text=""></asp:TextBox>

</td>

</tr>

<tr>

<td>ПочтовыйИндекс</td>

<td>

<asp:TextBox ID="TBpostIndex" runat="server" Enabled="false" Text=""></asp:TextBox>

</td>

</tr>

<tr>

<td>Логин</td>

<td>

<asp:TextBox ID="TBlogin" runat="server" Enabled="false" Text=""></asp:TextBox>

</td>

</tr>

<tr>

<td>Пароль</td>

<td>

<asp:TextBox ID="TBpassword" runat="server" Enabled="false" Text=""></asp:TextBox>

</td>

</tr>

<tr>

<td>АдминСтатус</td>

<td>

<asp:CheckBox ID="CBadminStatus" Enabled="false" runat="server" />

</td>

</tr>

<tr>

<td style="align-content:center">

<asp:Button ID="ButtonAllowChanges" runat="server" Enabled="false" BackColor="LightGreen" Width="170px" OnClick="ButtonAllowChanges_Click" Text="Разрешить изменения" />

</td>

<td style="align-content:center">

<asp:Button ID="BupdateUserData" runat="server" Enabled="false"

BackColor="WhiteSmoke" Text="Обновить данные пользователя"

OnClick="BupdateUserData_Click" /> </td>

<td>

<asp:Label ID="WarningUpdateUserData" ForeColor="Green" runat="server" Text=""></asp:Label>

</td>

</tr>

</tbody>

</table>

</div>

</asp:View>

</asp:MultiView>

<%-- <asp:Label ID="Warning" runat="server" Text="Warning"></asp:Label>--%>

</div>

</asp:Content>

Листинг 13 – Код файла AdminPanel.aspx.cs

using System;

using System.Collections.Generic; using System.Data.OleDb;

using System.Data; using System.Drawing; using System.Linq; using System.Web; using System.Web.UI;

using System.Web.UI.WebControls; using System.Net.NetworkInformation;

namespace PostSite

{

public partial class AdminPanel : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (Session["userID"] != null && (bool)Session["adminStatus"] == true)

{

CreateOrderButton.Enabled = true; UpdateOrderButton.Enabled = true; UpdateUserDataButton.Enabled = true;

}

}

protected void CreateOrderButton_Click(object sender, EventArgs e)

{

AdminMultiView.SetActiveView(CreateOrderView);

}

protected void UpdateOrderButton_Click(object sender, EventArgs e)

{

AdminMultiView.SetActiveView(UpdateOrderView);

}

protected void UpdateUserDataButton_Click(object sender, EventArgs e)

{

AdminMultiView.SetActiveView(UpdateUserDataView);

}

protected string TextToSqlParam(string str)

{

if (str.Length == 0)

{

return "NULL";

}

else

{

return "'" + str + "'";

}

}

// Viwe 1

protected void V1BtSelectUser_Click(object sender, EventArgs e)

{

string userID = V1TBuserID.Text.Trim(); if (!userID.All(char.IsDigit)) return;

userID = userID.Length == 0 ? "-1" : userID.ToString();

string secondName = V1TBsecondName.Text.Trim(); string firstName = V1TBfirstName.Text.Trim(); string middleName = V1TBmiddleName.Text.Trim(); string pasport = V1TBpasport.Text.Trim();

//if (secondName.Length != 0 | firstName.Length != 0 | middleName.Length != 0 | pasport.Length != 0)

//{

string crit = "SELECT [idПользователя], [Фамилия], [Имя], [Отчество], [Адрес], [Паспорт], [ПочтовыйИндекс], [Логин], [Пароль], [АдминСтатус] " +

"FROM [Пользователь] " +

"where ([idПользователя] = " + userID + " or " + userID + " = -1)" +

"and ([Фамилия] like '%" + secondName + "%' or " + secondName.Length.ToString() + " = 0)" +

"and ([Имя] like '%" + firstName + "%' or " + firstName.Length.ToString() + " = 0)"

+

"and ([Отчество] like '%" + middleName + "%' or " + middleName.Length.ToString() + " = 0)" +

"and ([Паспорт] like '%" + pasport + "%' or " + pasport.Length.ToString() + " =

0)";

Orders.SelectCommand = crit; V1GridView.DataBind(); LblWarnCreateOrder.Text = "";

}

protected void V1BtypeInfo_Click(object sender, EventArgs e)

{

if (V1GridView2.Visible)

{

if (V1DDLtype.SelectedValue == V1GridView2.Rows[0].Cells[0].Text)

{

V1GridView2.Visible = false; return;

}

}

else

{

V1GridView2.Visible = true;

}

fulltype.SelectCommand = "SELECT [idТипОтправления] as Код, [Название], [Описание], [ЦенаЗаГрамм] as [Цена за грамм] " +

"FROM [ТипОтправления] WHERE idТипОтправления = " +

V1DDLtype.SelectedValue.ToString();

V1GridView2.DataBind();

}

protected int GetOrderPrice(int price)

{

V1LblWarningWight.Text = "";

if (V1TBwight.Text.ToString().Trim().Length == 0)

{

V1LblWarningWight.Text = "Введите число!"; return 0;

}

if (!V1TBwight.Text.Trim().ToString().All(char.IsDigit))

{

V1LblWarningWight.Text = "Введено не число!";

return 0;

}

double speedCoef = V1CBspeed.Checked ? 0.2 : 0; double orderedCoef = V1CBzakaz.Checked ? 0.1 : 0;

int weight = Convert.ToInt16(V1TBwight.Text.Trim());

if (weight <= 0)

{

V1LblWarningWight.Text = "Число должно быть больше 0!"; return 0;

}

price = (int)(price * weight);

price = (int)(price + price * speedCoef + price * orderedCoef);

return price;

}

protected void V1BPrice_Click(object sender, EventArgs e)

{

string mySelectQuery = "SELECT [ЦенаЗаГрамм] as price FROM [ТипОтправления] WHERE idТипОтправления = " + V1DDLtype.SelectedValue.ToString();

OleDbConnection myConnection = new OleDbConnection(System.Configuration.ConfigurationManager.ConnectionStrings["Connection PostBD"].ConnectionString);

OleDbDataAdapter adapter = new OleDbDataAdapter(mySelectQuery, myConnection); DataTable dt = new DataTable();

myConnection.Open();

adapter.Fill(dt);

myConnection.Close();

int price = dt.Rows[0]["price"].ToString().Length == 0 ? 0 : Convert.ToInt16(dt.Rows[0]["price"]);

V1LblPrice.Text = GetOrderPrice(price).ToString();

LblWarnCreateOrder.Text = "";

}

protected void V1BtCreateOrder_Click(object sender, EventArgs e)

{

GridViewRow row = V1GridView.SelectedRow;

V1BPrice_Click(sender, e);

if (Convert.ToInt16(V1LblPrice.Text.Trim()) != 0)

{

V1LblWarningWight.Text = "";

}

if (row == null)

{

V1LblWarnSelectUser.Text = "Выборите пользователя!";

}

else

{

V1LblWarnSelectUser.Text = "";

}

if (row == null | Convert.ToInt16(V1LblPrice.Text.Trim()) == 0)

{

return;

}

string InsertSqlQ = "INSERT INTO Накладная(ДатаСоздания, ДатаОплаты,

ДатаДоставки, Срочность, Заказное, Вес, Цена, idПользователя, idТипОтправления, idПунктаВыдачи, idСтатуса)" +

"VALUES('" + DateTime.Now.ToString() + "' , NULL" +

", NULL" +

", " + V1CBspeed.Checked.ToString() +

", " + V1CBzakaz.Checked.ToString() +

", " + V1TBwight.Text.Trim().ToString() +

", " + V1LblPrice.Text.Trim().ToString() + ", " + row.Cells[1].Text.ToString() +

", " + V1DDLtype.SelectedValue.ToString() +

", " + V1DDLissuePoint.SelectedValue.ToString() + ", 1)";

var connect = new OleDbConnection(System.Configuration.ConfigurationManager.ConnectionStrings["Connection PostBD"].ConnectionString);

connect.Open();

var mycom = new OleDbCommand(); mycom.CommandText = InsertSqlQ; mycom.Connection = connect; mycom.ExecuteNonQuery(); connect.Close();

LblWarnCreateOrder.Text = "Успешно!";

}

//Viwe 2

protected void V2BtSelectUser_Click(object sender, EventArgs e)

{

string userID = V2TBuserID.Text.Trim();

if (!userID.All(char.IsDigit)) return;

userID = userID.Length == 0 ? "-1" : userID.ToString();

string secondName = V2TBsecondName.Text.Trim(); string firstName = V2TBfirstName.Text.Trim(); string middleName = V2TBmiddleName.Text.Trim(); string pasport = V2TBpasport.Text.Trim();

string crit = "SELECT [idПользователя], [Фамилия], [Имя], [Отчество], [Адрес], [Паспорт], [ПочтовыйИндекс], [Логин], [Пароль], [АдминСтатус] " +

"FROM [Пользователь] " +

"where ([idПользователя] = " + userID + " or " + userID + " = -1)" + "and ([Фамилия] like '%" + secondName + "%' or " +

secondName.Length.ToString() + " = 0)" +

"and ([Имя] like '%" + firstName + "%' or " + firstName.Length.ToString() + " = 0)"

+

"and ([Отчество] like '%" + middleName + "%' or " + middleName.Length.ToString() + " = 0)" +

"and ([Паспорт] like '%" + pasport + "%' or " + pasport.Length.ToString() + " =

0)";

UserUpOrder.SelectCommand = crit;

V2GridView.DataBind();

V2LblFindWarning.Text = ""; V2LblSetNewStatusSuccess.Text = ""; V2BSetNewStatus.Enabled = false;

}

protected void V2BselectOrder_Click(object sender, EventArgs e)

{

GridViewRow row = V2GridView.SelectedRow; if (row == null)

{

V2LblFindWarning.Text = "Выборите пользователя"; return;

}

else

{

V2LblFindWarning.Text = "";

}

string sqlQ = "SELECT Накладная.idНакладной AS [№ накладной], " +

"Статус.Название AS Статус, " +

"ТипОтправления.Название AS [Тип Отправления], " + "Накладная.Срочность AS Срочное, " + "Накладная.Заказное, " +

"Накладная.ДатаСоздания AS [Дата Создания], " +

"Накладная.ДатаОплаты AS [Дата Оплаты], " + "Накладная.ДатаДоставки AS [Дата Доставки], " + "ПунктВыдачи.Адрес AS [Пункт Выдачи], " + "Накладная.Вес, " + "Накладная.Цена " +

"FROM (((Накладная INNER JOIN ПунктВыдачи ON Накладная.idПунктаВыдачи = ПунктВыдачи.idПунктаВыдачи) " +

"INNER JOIN Статус ON Накладная.idСтатуса = Статус.idСтатуса) " + "INNER JOIN ТипОтправления ON Накладная.idТипОтправления =

ТипОтправления.idТипОтправления) " +

"WHERE Накладная.idПользователя = " + row.Cells[1].Text.Trim().ToString() +

"AND (Накладная.idСтатуса = " + V2DDLstatus.SelectedValue + " or " +

V2DDLstatus.SelectedValue + " = -1)" +

"AND (Накладная.idТипОтправления = " + V2DDLtype.SelectedValue + " or " +

V2DDLtype.SelectedValue + " = -1)" +

"AND (Накладная.Срочность = " + V2DDL4speed.SelectedValue + " or " +

V2DDL4speed.SelectedValue + " = 1)" +

"AND (Накладная.Заказное = " + V2DDL5ordered.SelectedValue + " or " +

V2DDL5ordered.SelectedValue + " = 1)";

V2UserOrders.SelectCommand = sqlQ;

V2GridView2.DataBind();

V2BSetNewStatus.Enabled = false;

V2LblSetNewStatusSuccess.Text = "";

}

protected void V2GridView_SelectedIndexChanged(object sender, EventArgs e)

{

V2BselectOrder_Click(sender, e);

V2BSetNewStatus.Enabled = false; V2LblSetNewStatusSuccess.Text = "";

}

protected void V2GridView2_SelectedIndexChanged(object sender, EventArgs e)

{

V2BSetNewStatus.Enabled = true;

GridViewRow row = V2GridView2.SelectedRow;

if (row.Cells[2].Text.ToString() == "Выдан")

{

V2BSetNewStatus.Enabled = false;

V2LblSetNewStatusWarning.Text = "Отправление выдано!";

}

else

{

V2BSetNewStatus.Enabled = true; V2LblSetNewStatusWarning.Text = "";

}

string sqlQ = "SELECT s.Название, s.idСтатуса FROM [Статус] s WHERE idСтатуса > (SELECT [idСтатуса] FROM [Статус] WHERE Название = '" + row.Cells[2].Text.ToString() + "') ORDER BY s.idСтатуса";

V2status.SelectCommand = sqlQ; V2DDLstat.DataBind();

V2DDLstat.Enabled = false;

V2TBtime.Enabled = false;

V2TBtime.Text = DateTime.Now.ToLocalTime().ToString("yyyy-MM-ddTHH:mm:ss");

V2LblSetNewStatusSuccess.Text = "";

}

protected void V2BSelectOver_CheckedChanged(object sender, EventArgs e)

{

V2DDLstat.Enabled = !V2DDLstat.Enabled;

V2TBtime.Enabled = !V2TBtime.Enabled;

}

protected void V2BSetNewStatus_Click(object sender, EventArgs e)

{

GridViewRow row = V2GridView2.SelectedRow;

string time;

switch (Convert.ToUInt16(V2DDLstat.SelectedValue))

{

case 2:

time = ", ДатаОплаты = '" + Convert.ToDateTime(V2TBtime.Text).ToString("yyyy- MM-dd HH:mm:ss") + "' ";

break; case 6:

time = ", ДатаДоставки = '" + Convert.ToDateTime(V2TBtime.Text).ToString("yyyy- MM-dd HH:mm:ss") + "' ";

break;

default: time = " ";

break;

}

string UpSqlQ = "UPDATE Накладная " +

"SET idСтатуса = " + V2DDLstat.SelectedValue.ToString() + time + "WHERE idНакладной = " + row.Cells[1].Text.ToString();

var connect = new OleDbConnection(System.Configuration.ConfigurationManager.ConnectionStrings["Connection PostBD"].ConnectionString);

connect.Open();

var mycom = new OleDbCommand(); mycom.CommandText = UpSqlQ; mycom.Connection = connect; mycom.ExecuteNonQuery(); connect.Close();

V2BSetNewStatus.Enabled = false;

V2GridView_SelectedIndexChanged(sender, e);

V2GridView2_SelectedIndexChanged(sender, e);

V2LblSetNewStatusSuccess.Text = "Успешно!";

}

// Viwe 3

protected void ButtonSelectUser_Click(object sender, EventArgs e)

{

string userID = TextBoxUserID.Text.Trim(); if (!userID.All(char.IsDigit)) return;

userID = userID.Length == 0 ? "-1" : userID.ToString();

string secondName = TextBoxSecondName.Text.Trim(); string firstName = TextBoxFirstName.Text.Trim(); string middleName = TextBoxMiddleName.Text.Trim(); string pasport = TextBoxPasport.Text.Trim();

//if (secondName.Length != 0 | firstName.Length != 0 | middleName.Length != 0 | pasport.Length != 0)

//{

string crit = "SELECT [idПользователя], [Фамилия], [Имя], [Отчество], [Адрес], [Паспорт], [ПочтовыйИндекс], [Логин], [Пароль], [АдминСтатус] " +

"FROM [Пользователь] " +

"where ([idПользователя] = " + userID + " or " + userID + " = -1)" + "and ([Фамилия] like '%" + secondName + "%' or " +

secondName.Length.ToString() + " = 0)" +

"and ([Имя] like '%" + firstName + "%' or " + firstName.Length.ToString() + " = 0)"

+

"and ([Отчество] like '%" + middleName + "%' or " + middleName.Length.ToString() + " = 0)" +

"and ([Паспорт] like '%" + pasport + "%' or " + pasport.Length.ToString() + " =

0)";