Hi all, I'm in need of some guidance and help as I'm stuck in my process of inserting an SO Invoice using SO_Invoice_Bus that includes non inventory (like misc or charges item)
these items are in sales order with 0 quantity and need to be in the invoice, but I am having issue in trying to add them, in the below example item is /C
Set oScript = CreateObject ("ProvideX.Script") oScript.Init("\\xxxx") Set oSS = oScript.NewObject("SY_SESSION") retVAL = oSS.nlogon() If retVAL = 0 Then retVAL = oSS.nSetUser("xx", "xxxxx") End If If retVAL = 0 Then WScript.Echo("0|Login failed") oSS.nCleanup() oSS.DropObject() Set oSS = Nothing WScript.Quit End If retVal = oSS.nSetCompany("TST") If retVAL = 0 Then WScript.Echo("0|Failed to set company") oSS.nCleanup() oSS.DropObject() Set oSS = Nothing WScript.Quit End If retVal = oSS.nSetDate("S/O","20220401") ' Date retVal = oSS.nSetModule("S/O") retVal = oSS.nSetProgram(oSS.nLookupTask("SO_Invoice_Ui")) Set oSOInvoice = oScript.NewObject("SO_Invoice_Bus", oSS) retVal = oSOInvoice.nSelectBatch("00401") If retVal = 0 Then msgVal = oSOInvoice.sLastErrorMsg errCode = 0 errMsg = errMsg & "|Failed Setting Batch No: &" + msgVal oSS.nCleanup() oSS.DropObject() Set oss = Nothing Set oScript = Nothing WScript.Echo(errCode & errMsg) WScript.Quit End If retVal = oSOInvoice.nSetKeyValue("InvoiceNo$", "0448877") retVal = oSOInvoice.nSetKey() If Not retVal = 1 Then retVal = oSOInvoice.nSetValue("ARDivisionNo$", "01") retVal = oSOInvoice.nSetValue("SalesOrderNo$", "0338912") If retVAL = -2 Then oSS.nCleanup() oSS.DropObject() Set oSS = Nothing WScript.Echo("2|Failed Setting Sales Order Number: " + oSOInvoice.sLastErrorMsg) WScript.quit End If retVal = oSOInvoice.nSetValue("CustomerNo$", "0082791") retVal = oSOInvoice.nSetValue("OrderDate$", "20220401") retVal = oSOInvoice.nSetValue("OrderType$", "S") retVal = oSOInvoice.nSetValue("InvoiceType$", "IN") retVal = oSOInvoice.nSetValue("ShipVia$", "") retVal = oSOInvoice.nSetValue("FOB$", "") retVal = oSOInvoice.nSetValue("WarehouseCode$", "200") retVal = oSOInvoice.nSetValue("ConfirmTo$", "") retVal = oSOInvoice.nSetValue("Comment$", "") retVal = oSOInvoice.nSetValue("InvoiceDate$", "20220401") retVal = oSOInvoice.nSetValue("TaxSchedule$", "AVATAX") retVal = oSOInvoice.oLines.nAddLine() retVal = oSOInvoice.oLines.nSetValue("ItemCode$", "SB-EBC-2") If retVal = 0 Then msgVal = oSOInvoice.sLastErrorMsg errCode = 0 errMsg = errMsg & "|Failed on Invoice item: &" + msgVal oSS.nCleanup() oSS.DropObject() Set oss = Nothing Set oScript = Nothing WScript.Echo(errCode & errMsg) WScript.Quit End If retVal = oSOInvoice.oLines.nSetValue("ItemType$", "1") retVal = oSOInvoice.oLines.nSetValue("ItemCodeDesc$", "item 1") retVal = oSOInvoice.oLines.nSetValue("Price", 99.00000) retVal = oSOInvoice.oLines.nSetValue("WarehouseCode$", "200") If retVal = 0 Then msgVal = oSOInvoice.sLastErrorMsg errCode = 0 errMsg = errMsg & "|Failed setting item Invoice: &" + msgVal oSS.nCleanup() oSS.DropObject() Set oss = Nothing Set oScript = Nothing WScript.Echo(errCode & errMsg) WScript.Quit End If retVal = oSOInvoice.oLines.nSetValue("TaxClass$", "TX") retVal = oSOInvoice.oLines.nSetValue("QuantityOrdered", 1.00000) retVal = oSOInvoice.oLines.nSetValue("QuantityShipped", 1.00000) retVal = oSOInvoice.oLines.nSetValue("UnitPrice", 99.00000) If retVal = 0 Then msgVal = oSOInvoice.sLastErrorMsg errCode = 0 errMsg = errMsg & "|Failed setting price &" + msgVal oSS.nCleanup() oSS.DropObject() Set oss = Nothing Set oScript = Nothing WScript.Echo(errCode & errMsg) WScript.Quit End If retVal = oSOInvoice.oLines.nWrite() retVal = oSOInvoice.oLines.nAddLine() retVal = oSOInvoice.oLines.nSetValue("ItemCode$", "/C") If retVal = 0 Then msgVal = oSOInvoice.sLastErrorMsg errCode = 0 errMsg = errMsg & "|Failed on Invoice item: &" + msgVal oSS.nCleanup() oSS.DropObject() Set oss = Nothing Set oScript = Nothing WScript.Echo(errCode & errMsg) WScript.Quit End If retVal = oSOInvoice.oLines.nSetValue("ItemType$", "4") retVal = oSOInvoice.oLines.nSetValue("ItemCodeDesc$", "Default Item Code /C") retVal = oSOInvoice.oLines.nSetValue("Price", 0.00000) retVal = oSOInvoice.oLines.nSetValue("WarehouseCode$", "200") If retVal = 0 Then msgVal = oSOInvoice.sLastErrorMsg errCode = 0 errMsg = errMsg & "|Failed setting item Invoice: &" + msgVal oSS.nCleanup() oSS.DropObject() Set oss = Nothing Set oScript = Nothing WScript.Echo(errCode & errMsg) WScript.Quit End If retVal = oSOInvoice.oLines.nSetValue("TaxClass$", "TX") retVal = oSOInvoice.oLines.nSetValue("QuantityOrdered", 0.00000) retVal = oSOInvoice.oLines.nSetValue("QuantityShipped", 0.00000) retVal = oSOInvoice.oLines.nSetValue("UnitPrice", 0.00000) If retVal = 0 Then msgVal = oSOInvoice.sLastErrorMsg errCode = 0 errMsg = errMsg & "|Failed setting price &" + msgVal oSS.nCleanup() oSS.DropObject() Set oss = Nothing Set oScript = Nothing WScript.Echo(errCode & errMsg) WScript.Quit End If retVal = oSOInvoice.oLines.nWrite() If retVal = 0 Then msgVal = oSOInvoice.sLastErrorMsg errCode = 0 errMsg = errMsg & "|Failed updating Invoice: &" + msgVal oSS.nCleanup() oSS.DropObject() Set oss = Nothing Set oScript = Nothing WScript.Echo(errCode & errMsg) WScript.Quit End If retVal = oSOInvoice.nWrite() If retVal = 0 Then msgVal = oSOInvoice.sLastErrorMsg errCode = 0 errMsg = errMsg & "|Failed Inserting Invoice: &" + msgVal oSS.nCleanup() oSS.DropObject() Set oss = Nothing Set oScript = Nothing WScript.Echo(errCode & errMsg) WScript.Quit End If WScript.Echo("1") WScript.Quit Else WScript.Echo("0|Error: Invoice already exists in Sage") WScript.Quit End If oSOInvoice.DropObject() oSS.nCleanup() oSS.DropObject() Set oSOInvoice = Nothing Set oSS = Nothing Set oScript = Nothing