/// <summary>
        ///     Finalizuje zamówienie - dla recepty
        ///     Wykorzystuje: AddToOrder()
        /// </summary>

        public static void OrderFinalization(OrderSqlTransaction orderSqlTransaction, Prescription prescription, Medicine medicine, int quantity)
        {
            try
            {
                // Dla nowej recepty bez ID
                if (prescription != null && prescription.ID == null)
                {
                    orderSqlTransaction.InsertPrescription(prescription);
                }

                // Update - odjęcie sprzedanej ilości
                orderSqlTransaction.UpdateMedicineAmount(medicine, (medicine.Amount - quantity));

                // Dla leku bez recepty
                if (prescription == null)
                {
                    orderSqlTransaction.InsertOrderWithoutPrescription(new Order(null, null, medicine.ID, DateTime.Now, quantity));
                }
                // Dla leku z receptą
                else
                {
                    orderSqlTransaction.InsertOrderWithPrescription(new Order(null, prescription.ID, medicine.ID, DateTime.Now, quantity));
                }

                // Upewnienie się
                Console.WriteLine($"\nSuma zamówienia: {medicine.Price * quantity}zł. Czy klient zapłacił? (Y/N): ");
                if (Console.ReadLine().Trim().ToUpper() != "Y")
                {
                    ConsoleEx.WriteLineWithColor("Anulowano akcję!", ConsoleColor.Red);
                    orderSqlTransaction.TransactionRollback();
                    return;
                }

                orderSqlTransaction.TransactionCommit();
                ConsoleEx.WriteLineWithColor("Sukces!", ConsoleColor.Green);
            }
            catch (Exception e)
            {
                ConsoleEx.WriteLineWithColor($"Wyjątek przy finalizacji: {e.GetType()}: {e.Message}", ConsoleColor.Red);
                orderSqlTransaction.TransactionRollback();
            }
        }