Add this to the query in where clause:
where ((((locate(invoice_number,`invoice number`) > 0 or locate(invoice_number,`customer name`) > 0) and invoice_number <> '')
or
(invoice_number = ''))and(`invoice number` like concat('%',branch_code,'%')) and `invoice date` between date_format(str_to_date('01-04-2014','%d-%m-%Y'),'%Y-%m-%d') and date_format(CURDATE(),'%Y-%m-%d'))
group by `invoice number`,`customer name`
order by date_format(`invoice date`,'%Y-%m-%d')desc, 1 desc;