Modify the "SaveInvoice" method of `/home/josh/Code/Superior/sngc-invoicing/Fast.Web/Logic/NaturalGas/SaveInvoiceHelper.cs` and the "ApproveInvoiceLines" method of `/home/josh/Code/Superior/sngc-invoicing/Fast.Web/Controllers/InvoiceNatGasController.cs`

For both methods I want them to throw an error, exiting the method before any db changes happen if any of the following fields are empty (null or whitespace):

- InvoiceDate
- DueDate
- Version (InvoiceTypeId)
- Payment Method (ContractPaymentTypeId)
- InternalEntityAddressLine1
- InternalEntityCity
- InternalEntityStateId
- InternalEntityZip
- InternalEntityEmailAddress
- InternalEntityTelephoneNum
- ContactName
- ContactTelephoneNum
- ContactEmail
- PaymentBankName
- Either PaymentAbaNumWire or PaymentAbaNumAch (must have at least one of the two)
- PaymentAccountNum
- CustomerNum
- CounterpartyTelephoneNum
- CounterpartyEmailAddresses

For both methods the check should only occur if all lines of the invoice are approved (IsApproved). If any line is not approved, then the check should not occur.

The error should tell the user which fields are missing.
Since ApproveInvoiceLines operates on a list of invoice lines, it should throw an error for each line that is not approved and tell the user the InvoiceNum and which fields are missing for each line.