FileMaker can do this. The key question is can YOU do it with FileMaker. You may need to invest some time in training tutorials, videos and or books on the subject to acquire sufficient knowledge in how Filemaker works in order to make the needed modifications.
Here's a general description of two approaches that might work with the FileMaker Invoices Starter solution. Which you might choose to use is more of a business practices based decision than it is a database design issue.
1) Add a status field that identifies an invoice as either an estimate or an Invoice. When the time arrives, just change the status field to read invoice and update the line items to lock down any final details. This is very simple to do, but you lose any electronic record of the original estimate, which can create issues should your client dispute their bill, claiming that the bill is not in agreement with your original estimate.
2) Use the same status field, but use a script to duplicate the estimate record and it's line items in a new invoice record with "invoice" entered in this status field. This keeps the original estimate around for comparision purposes. You can also log the InvoiceID of the original estimate record in this new Invoice record so that you can easily refer back to the original estimate when communicating with your customer.