Create abstract class Order (id, description). Derive two classes PurchaseOrder& SalesOrder with members Vendor and Customer. Create object of each PurchaseOrder and SalesOrder. Display the details of each account.



abstract class Order(id:Int,des:String)
{
	var Id:Int=id;
	var Des:String=des;

}

class PurchaseOrder(vendor:String,customer:String,id:Int,des:String) extends Order(id,des)
{
	var vend:String=vendor;
	var cust:String=customer;
        var Id1:Int=id;
        var Des1:String=des;
        def PurchOrder()
        {
                print(Id1+"\t"+Des1+"\t"+vend+"\t"+cust+"\n");
		
        }

}

class SalesOrder(vendor:String,customer:String,id:Int,des:String) extends Order(id,des)
{
        var vend:String=vendor;
        var cust:String=customer;
        var Id2:Int=id;
        var Des2:String=des;

	def SaleOrder()
	{
                print(Id2+"\t"+Des2+"\t"+vend+"\t"+cust+"\n");
	}
}
object Orders
{
	def main(a:Array[String])
	{
               val ob1=new SalesOrder("Himmat","Aniket",1,"sold");
               val ob2=new PurchaseOrder("Sunny","Sagar",2,"Purchased");
                while(true)
                {
                        println("MENU"+"\n"+"1:SalesOrder"+"\n"+"2:PurchaseOrder"+"\n"+"3:Exit")
                        print("Enter the Choise:");
                        var n1:Int=readInt();

                        n1 match{
                                case 1=>ob1.SaleOrder();

                                case 2=>ob2.PurchOrder();

                                case 3=>System.exit(0);

                        }
                }
	
	}	
}