One possible reason for this is that one or some of the items in the sales order might have fulfilled quantities greater than the quantities ordered and invoiced. This happens when the Allow Overage on Item Fulfillments preference was enabled under Setup > Accounting > Accounting Preferences > Order Management tab.
1. Open the sales order in question
*Make sure that the Fulfilled and Invoiced Columns were shown under Items tab
2. Under Items tab > Compare the quantities found in the columns Quantity, Invoiced and Fulfilled and look for a line item where the Fulfilled quantity is greater than the Quantity ordered and Invoiced quantity.
3. Double check if the overage in fulfillment is correct or not and do appropriate changes in either the item fulfillment to decrease the quantity fulfilled if the item was erroneously fulfilled more than ordered or change the quantity in the invoice to match the quantity fulfilled if the quantity fulfilled is correct.
After doing the necessary changes in either the Item Fulfillment or in the Invoice, the sales order status would change to Fully Billed upon refresh of the sales order page.
Another possible reason is the Sales Order was billed (Invoice or Cash Sale was already created) before the order was fulfilled. The item was erroneously removed and added back to the Sales Order. This will cause the Invoiced column to have a value of 0. The alternate solution is:
1. Remove the item on the Invoice
-Click Edit on the Invoice
-Navigate to the Items tab
-Click on the Item > Click Remove
2. Bill the Sales Order
-View the Sales Order
-Click Bill Remaining
Note: If this is a Cash Sale and the Payment Method is credit card the user should ensure that Credit Card Approved is marked instead of the Charge Credit Card on the Payment Method tab.