import tkinter as tk
from tkinter import messagebox

def transfer_funds():
    sender = entry_sender.get()
    receiver = entry_receiver.get()
    amount = entry_amount.get()
    method = payment_var.get()
    
    if not sender or not receiver or not amount:
        messagebox.showwarning("Input Error", "Please fill all fields.")
        return
    try:
        amt = float(amount)
        if amt <= 0:
            raise ValueError
    except ValueError:
        messagebox.showerror("Invalid Amount", "Please enter a valid positive amount.")
        return

    messagebox.showinfo("Transaction Successful",
                        f"Transfer Successful!\\n\\nSender: {sender}\\nReceiver: {receiver}\\nAmount: ₹{amt}\\nMethod: {method}")

root = tk.Tk()
root.title("Fund Transfer")
root.geometry("400x400")

# Heading label spanning 2 columns
tk.Label(root, text="Fund Transfer Window", font=("Arial", 16, "bold")) \\
    .grid(row=0, column=0, columnspan=2, pady=15)

# Sender Account
tk.Label(root, text="Sender Account:").grid(row=1, column=0, sticky="w", padx=40, pady=5)
entry_sender = tk.Entry(root, width=30)
entry_sender.grid(row=1, column=1, padx=40, pady=5)

# Receiver Account
tk.Label(root, text="Receiver Account:").grid(row=2, column=0, sticky="w", padx=40, pady=5)
entry_receiver = tk.Entry(root, width=30)
entry_receiver.grid(row=2, column=1, padx=40, pady=5)

# Amount
tk.Label(root, text="Amount (₹):").grid(row=3, column=0, sticky="w", padx=40, pady=5)
entry_amount = tk.Entry(root, width=30)
entry_amount.grid(row=3, column=1, padx=40, pady=5)

# Payment Method Radio Buttons
tk.Label(root, text="Payment Method:").grid(row=4, column=0, sticky="w", padx=40, pady=(10, 0))
payment_var = tk.StringVar(value="UPI")
tk.Radiobutton(root, text="UPI", variable=payment_var, value="UPI") \\
    .grid(row=4, column=1, sticky="w", padx=60)
tk.Radiobutton(root, text="Net Banking", variable=payment_var, value="Net Banking") \\
    .grid(row=5, column=1, sticky="w", padx=60)
tk.Radiobutton(root, text="Card", variable=payment_var, value="Card") \\
    .grid(row=6, column=1, sticky="w", padx=60)

# Transfer Button spanning two columns
tk.Button(root, text="Transfer Funds", command=transfer_funds) \\
    .grid(row=7, column=0, columnspan=2, pady=25)

root.mainloop()