1/22/2015

How to handle NSF(Not Sufficient Funds) payment in AX 2012.

NSF is very common, and I believe every retail industry ERP user will need to find out a solution of it. No doubt, NSF receiver will need to cancel the payment, and even more, receiver might charge

In technet, the NSF processing in collection is briefly mentioned. But actually, there is another way of dealing with NSF.Different solutions different affections. Let's go through these 2 NSF solutions and get an insight of them.

1. Cancel a NSF payment from customer collection form.
 1.1  Go to Accounts receivable/Common/Collections/Collections and find the customer whose payment is NSF, then open it.

 1.2 Find the payment transaction. If the payment is already settled, user needs to show the closed transaction.
 1.3 Click button "NSF payment" to cancel the payment and click "OK". A dialog of NSF fee pops up, if we set up the NSF charge fee, that fee would be calculated and show here. The NSF charge fee is just created to a new payment journal to create debit of that customer. The journal is open and user needs to manually post it if that debit is necessary.
 1.4 Reason code form pops up. User needs to provide reason code and comment.

 1.5 Click "OK", NSF processing is done.
User can see the customer's balance is updated and the payment is canceled. 
Now let's go to the other solution.

2. Cancel a NSF from bank deposit slip.
If user used deposit slip when posting that payment, the deposit slip will be created under the bank. And user is able to cancel the payment by canceling the deposit slip.
 2.1 Go to Cash and bank management/Common/Bank accounts, find the bank to which the payment is deposited.
 2.2 Click button "Deposit slip" in management payments to bring the deposit slip form.
 2.3 Select the deposit slip which is to be cancelled, and click button "Cancel payment"
 2.4 Then the reason code form pops up which is exactly the same as 1.4, and the cancellation is done after clicking button "OK".

We went through these 2 methods of NSF payment cancellation, and we can tell the difference.
1. Method 1 can automatically generate a open payment journal to charge the customer a NSF fee, but method 2 cannot. To set up the NSF fee charge automation, we need to assign a charges group and NSF payment journal in the bank master form.
2. The other difference I found so far is in the bank transaction. Both methods generates reversal transaction, the reversal transaction method 2 uses the banck transction type of NSF in form "Cash and bank management parameters", but the method 1's reversal transaction doesn't.




1/15/2015

Post PO/SO automatically and periodically by using "Late selection"

I've been asked many times if AX can automatically post SO/PO documents. The requirement is like this, user creates many purchase orders and that user wants to have a batch job to confirm these new created purchase orders automatically and periodically and the user doesn't even want to select the new created purchase orders.

In AX posting form e.g. purchase order confirmation, there's a check box "Late selection". This check box can enable the posting dynamically selecting documents based on the query.


Steps of how to set up  the batch job,
1. Go to "Procurement and sourcing -> Periodic -> Purchase order -> Confirm purchase orders"
2. Check "Late selection".
3. Click "Select" to edit the query of purchase orders.
4. Click "Batch" to set up the batch job.
5. Click "OK" to create the batch job.

User will see the purchase orders found by that query got confirmed automatically and periodically.

One more thing, which I assume it's a bug at least in AX 2012 feature pack version 6.0.1108.6482. That user can open this posting form from a specific purchcase order, and do the exact same steps above, however the batch job creaed by that way will not post any purchase orders except the specific one which is opened from. In other words, the query user edits doesn't work at all. But the weird thing is that if "Late selection" is not checked, the query works.







12/01/2014

Moving average's "Price difference for moving average" in AX 2012

The moving average is brought in AX 2012 feature pack which is commonly used by retailer. As 'moving average' is a perpetual costing method, user doesn't need to recalculate the invent cost of happened transactions, because the cost is automatically averaged by posting purchase order receipt/invoice. Then the question comes, how does AX handle the price differece between receipt and invoice when there's sales invoice posted between these 2 trans?
The answer is that the difference will be posted to account "Price difference for moving average".
I created an item 'test1201' which uses 'moving average' costing method and configed the posting profile,then I did
1. Create a purchase order of 'test1201' and post receipt at price $100.
2. Create a sales order of 'test1201' and post packing slip and invoice.This is the vouchers of invoice,you can see the inventory cost is $100.

3. Post invoice of the purchase order at price $200.This is the vouchers of invoice, and you can see the voucher of "Price difference for moving average".
As you can see the difference is posted to "Price difference for moving average", and the invent cost of sales order is not updated at all. The amount in "Price difference for moving average" will accumulate everyday, or we can do something to manually revaluate the inventory cost of that item and settle the amount in "Price difference for moving average". Will talk about that later.





9/09/2013

How to enable posting sales tax when posting sales packing slip in AX 2012






    1. In the “Inventory management parameters” form, we need to check “Post physical sales tax”
2.     In the “Item model group” form, we need to check “Post to Deferred Revenue Account on Sales Delivery”. Because the deferred sales tax is calculated based on the deferred revenue.
3. Set up the posting accounts related to deferred revenue and tax in posting form.
4. After finishing the settings above, we can post the packing slip with sales tax voucher. See below as an example.