AX 2012 for Retail: “The number for one time customer is missing” and payment posts with earlier date than sales invoice when posting Retail Statements

We have seen a few different issues lately when customers have unmarked “Delivery Date Control” in System administration>Setup>Licensing>License configuration > Trade.

The first issue that can happen is the following error when posting the Retail statement:

 

” The number for one-time customer is missing.”

 

The error means that AX cannot find the default customer for the store (not that the customer has the One-time customer box marked).

The first thing to check is that the sysadmin user also receives the error on the one-time customer.

 

The second issue we see is that when posting a Retail statement the Payment posts with an earlier date than the sales invoice.

 

The work-around below has resolved both issues in the past.

 

Set transDate = salesHeader.DeliveryDate instead of transDate = salesHeader.ReceiptDateConfirmed in the RetailStatementSalesOrderCreator/Run class:

 

If you have the above issues and Delivery Date Control is not unmarked, I would suggest creating a support incident as this would involve further investigation.

 

Another setting that can cause the Sales orders and Payments to create the day before the Transaction date is the “Post as business day” checkbox on the store.  This setting was added on AX 2012 R2 CU7.

In support, we have seen instances where the “Post as business day” is marked and the “End of business day” is set to 5:30 pm.  This will create the Sales invoice and Payment on the previous day.  The resolution was to unmark the “Post as business day”.

See the following blog with more details on “End of business day”:

http://blogs.msdn.com/b/axsupport/archive/2015/04/08/retail-store-quot-post-as-business-day-quot-function-for-end-of-day-posting.aspx

 

Note:

“Microsoft provides programming examples for illustration only, without warranty expressed or implied, including, but not limited to, the implied warranties of merchantability or fitness for a particular purpose. This mail message assumes that you are familiar with the programming language that is being demonstrated and the tools that are used to create and debug procedures.”

This has not been officially tested by Microsoft and should be fully tested before implementation.