I'm trying to make a UDF in Sales Order Header that will be a Y/N value indicating whether or not an invoice has been created for that order.
Any ideas?
Unfortunately, a brief test on version 2018 resulted in neither the post validate of CurrentInvoiceNo or the pre write of SO_SalesOrderHeader events firing when invoicing a sales order.
As Kevin pointed…
It is possible that Sage writes this value without triggering any BOI events. That would be unusual, but technically possible. Header Pre-Write would probably be the best bet (with a GetValue added to…
In my test, the script did not fire on either event attached to SO_SalesOrderHeader but I would think you could instead put the script on the post write event of SO_InvoiceHeader and get the value of the…
An SO is not a transaction, it is a potential transaction.
Create SO in SO Entry, then invoice in SO Invoice Entry.
If you are not invoicing, you are not processing the transactions (removing inventory, creating the GL entries, creating the invoices for customers to pay...).
Yeah, we just don't use Invoice Entry to invoice them. Either Starship or Scanforce creates our invoice, depending on the order type, and writes it back to Sage.
That is fine. There are other ways to create the invoices... it doesn't need to be though the Sage interface, but the invoice data should go to those tables.
You are posting the invoices? If you look at them in AR invoice history inquiry, there is an SO # listed?
If yes, then the SO should either be "B" or gone from the open SO tables.
Oh, I'm talking about before we run the update (before they go to history).
I want an identifier that tells me when an open SO has been invoiced. It will not be posted at this point.
Well, I'd like to get into scripting but don't know where to begin.
Could anyone help me out with a simple script where IF the CurrentInvoiceNo field is > 1, it populates a UDF with a Y?
Column post validate on that field.
if value <> "" then
retVal = oBusObj.SetValue("UDF_YOURFIELDNAMEHERE$", "Y")
else
retVal = oBusObj.SetValue("UDF_YOURFIELDNAMEHERE$", "N")
end if
Unfortunately, a brief test on version 2018 resulted in neither the post validate of CurrentInvoiceNo or the pre write of SO_SalesOrderHeader events firing when invoicing a sales order.
As Kevin pointed out, if the CurrentInvoiceNo field is populated, it is currently being shipped/invoiced. You can use this in the sales order entry/inquiry lookup or any reports you might be running to determine whether or not an invoice exists. In the report, you can always translate it to "Yes" or "No".
Once it is posted and if you are retaining sales history, then you can refer to LastInvoiceDate and/or LastInvoiceNo fields in SO_SalesOrderHistoryHeader if you are using SO History vs AR Invoice History for orders that shipped complete. If the order was not shipped complete, then you can refer to LastInvoiceOrderDate and LastInvoiceOrderNo in SO_SalesOrderHeader.
You're saying that script won't work?
"As Kevin pointed out, if the CurrentInvoiceNo field is populated, it is currently being shipped/invoiced. You can use this in the sales order entry/inquiry lookup or any reports you might be running to determine whether or not an invoice exists. In the report, you can always translate it to "Yes" or "No"."
I need it to translate to "Yes"" or "No" for a 3rd party application, not for a report or anything within SAGE.
And what event DOES fire when you invoice a sales order?
*Community Hub is the new name for Sage City