| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- using System;
- using System.Data;
- using System.Windows.Forms;
- using Npgsql;
- namespace PhotoStudioApp
- {
- public partial class OrderForm : Form
- {
- private string _connectionString;
- private int? _orderId;
- public OrderForm(string connectionString, int? orderId = null)
- {
- InitializeComponent();
- _connectionString = connectionString;
- _orderId = orderId;
- LoadComboBoxes();
- if (_orderId.HasValue)
- {
- LoadOrderData();
- }
- }
- private void LoadComboBoxes()
- {
- using (NpgsqlConnection conn = new NpgsqlConnection(_connectionString))
- {
- conn.Open();
- // Загружаем клиентов
- string clientSql = "select client_id, last_name || ' ' || first_name as name from clients";
- NpgsqlDataAdapter clientAdapter = new NpgsqlDataAdapter(clientSql, conn);
- DataTable clientTable = new DataTable();
- clientAdapter.Fill(clientTable);
- cmbClient.DataSource = clientTable;
- cmbClient.DisplayMember = "name";
- cmbClient.ValueMember = "client_id";
- // Загружаем сотрудников
- string employeeSql = "select employee_id, last_name || ' ' || first_name as name from employees";
- NpgsqlDataAdapter employeeAdapter = new NpgsqlDataAdapter(employeeSql, conn);
- DataTable employeeTable = new DataTable();
- employeeAdapter.Fill(employeeTable);
- cmbEmployee.DataSource = employeeTable;
- cmbEmployee.DisplayMember = "name";
- cmbEmployee.ValueMember = "employee_id";
- // Загружаем услуги
- string serviceSql = "select service_id, service_name from services";
- NpgsqlDataAdapter serviceAdapter = new NpgsqlDataAdapter(serviceSql, conn);
- DataTable serviceTable = new DataTable();
- serviceAdapter.Fill(serviceTable);
- cmbService.DataSource = serviceTable;
- cmbService.DisplayMember = "service_name";
- cmbService.ValueMember = "service_id";
- }
- }
- private void LoadOrderData()
- {
- using (NpgsqlConnection conn = new NpgsqlConnection(_connectionString))
- {
- conn.Open();
- string sql = "select client_id, employee_id, service_id from orders where order_id = @orderId";
- NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
- cmd.Parameters.AddWithValue("@orderId", _orderId.Value);
- using (NpgsqlDataReader reader = cmd.ExecuteReader())
- {
- if (reader.Read())
- {
- cmbClient.SelectedValue = reader["client_id"];
- cmbEmployee.SelectedValue = reader["employee_id"];
- cmbService.SelectedValue = reader["service_id"];
- }
- }
- }
- }
- private void btnSave_Click(object sender, EventArgs e)
- {
- if (cmbClient.SelectedValue == null || cmbEmployee.SelectedValue == null || cmbService.SelectedValue == null)
- {
- MessageBox.Show("Выберите все поля");
- return;
- }
- int clientId = (int)cmbClient.SelectedValue;
- int employeeId = (int)cmbEmployee.SelectedValue;
- int serviceId = (int)cmbService.SelectedValue;
- using (NpgsqlConnection conn = new NpgsqlConnection(_connectionString))
- {
- conn.Open();
- string sql;
- if (_orderId.HasValue)
- {
- sql = "update orders set client_id = @clientId, employee_id = @employeeId, service_id = @serviceId where order_id = @orderId";
- }
- else
- {
- sql = "insert into orders (client_id, employee_id, service_id, order_date) values (@clientId, @employeeId, @serviceId, @orderDate)";
- }
- NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
- cmd.Parameters.AddWithValue("@clientId", clientId);
- cmd.Parameters.AddWithValue("@employeeId", employeeId);
- cmd.Parameters.AddWithValue("@serviceId", serviceId);
- if (_orderId.HasValue)
- {
- cmd.Parameters.AddWithValue("@orderId", _orderId.Value);
- }
- else
- {
- cmd.Parameters.AddWithValue("@orderDate", DateTime.Now);
- }
- cmd.ExecuteNonQuery();
- MessageBox.Show("Заказ сохранён");
- this.Close();
- }
- }
- private void btnCancel_Click(object sender, EventArgs e)
- {
- this.Close();
- }
- }
- }
|