Ejemplo n.º 1
0
        private void butOK_Click(object sender, EventArgs e)
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
            conn.Open();

            string sql;

            // MessageBox.Show(curBookId.ToString());
            if (curOrderId == -1)
            {
                sql = "INSERT INTO orders (id, order_number, dt, r_user_add_id, r_client_id) VALUES (nextval('books_seq'), @order_number, (SELECT CURRENT_TIMESTAMP), @user_add, @client); SELECT last_value FROM books_seq;";
            }
            else
            {
                sql = "UPDATE orders SET order_number = @order_number, r_client_id = @client WHERE id = @id; SELECT -100;";
            }


            int res;

            using (NpgsqlCommand command = new NpgsqlCommand(sql, conn))
            {
                if (curOrderId != -1)
                {
                    command.Parameters.AddWithValue("id", curOrderId);
                }
                else
                {
                    command.Parameters.AddWithValue("user_add", CurrentUser.getUserId());
                }

                command.Parameters.AddWithValue("order_number", medOrderNumber.Text);
                command.Parameters.AddWithValue("client", selClientId);



                res = Convert.ToInt32(command.ExecuteScalar());
            }

            string[] booksIds = new string[dataGridBooks.Rows.Count];

            string sqlOrder = "DELETE FROM ref_orders_books WHERE r_orders_id = " + curOrderId + "; ";
            int    orderId  = curOrderId == -1 ? res : curOrderId;

            int i = 0;



            foreach (DataGridViewRow row in dataGridBooks.Rows)
            {
                booksIds[i] = row.Cells["id"].Value != null ? row.Cells["id"].Value.ToString() : string.Empty;
                sqlOrder   += "INSERT INTO ref_orders_books (id, r_orders_id, r_books_id ) VALUES (nextval('books_seq'), " + orderId + ", " + booksIds[i] + "); ";
                i++;
            }

            //  MessageBox.Show(authSql);
            this.Close();


            using (NpgsqlCommand command = new NpgsqlCommand(sqlOrder, conn))
            {
                command.ExecuteNonQuery();
            }
        }