How to log customer visits in CRM

How to log customer visits in CRM

Hi all, 

Our Business requires us to visit contacts / customers at their office regularly, to get purchase order from them. The orders are usually yearly, but we have to chase them regularly through out the year.

I wanted to know:

1) How can we record in the CRM, each time our Sales Executive has visited the customer / prospect and the discussions he has had with them.
2) How can we schedule his next visit / Call
3) How can we run report to show customers not visited in last x no. of days
4) How to manage the Sales Pipeline; say if we lost a customer's this year's order and he promises to consider our proposal next time, how do we manage this? Do we keep the opportunity Open / Closed ? How can we schedule the CRM to remind us after few months to contact the customer for his next yearly order.

Thanks a lot

Regards
Ullash