We consider a batch arrival queueing system with three stage heterogeneous service provided by a single server with different (arbitrary) service time distributions. Each customer undergoes three stages of heterogeneous service. As soon as the completion of third stage of service, if the customer is dissatisfied with his service, he can immediately join the tail of the original queue. The vacation period has two heterogeneous phases. After service completion of a customer the server may take a phase one Bernoulli vacation. Further, after completion of phase one Bernoulli vacation the server may take phase two optional vacation. The vacation times are assumed to be general. In addition we assume restricted admissibility of arriving batches in which not all batches are allowed to join the system at all times. The time dependent probability generating functions have been obtained in terms of their Laplace transforms and the corresponding steady state results have been obtained explicitly. Also the mean number of customers in the queue and the system are also derived. Some particular cases and numerical results are discussed.