Sage 100

 View Only
  • 1.  Scripting in Cash Receipts Header/Detail

    Posted 07-11-2019 16:38
    Hi all,

    I have done some scripting before where I write in lines to things like Sales order and Purchase order but have not ever tried cash receipts and it looks like it is a bit different based on what I am seeing! I am hoping someone here might have some advice on the strange behavior I am seeing with the script posted below. The script is supposed to recognize when line balance is between -4 and 4 dollars, insert a line with a GL distribution for the opposite of the line balance, then go back to the first line and change the amt posted to match the invoice. It is performing all the calculations correctly but when I accept the script (I have tried both Pre-Write and Post-Write on the Header) it seems to mess with the invoice total and amount posted for that line. I feel like this is likely related to having to recalculate posting amounts or something? But I am just not sure where to go from here. Any help would be appreciated!

    DepNo = ""
    DivNo = ""
    CustNo = ""
    DepType = ""
    AmtPosted = 0
    Balance = 0
    Bal = 0
    TotBal = 0
    NewAmt = 0
    RevBal = 0

    retVal = oBusObj.GetValue("DepositNo$", DepNo)
    retVal = oBusObj.GetValue("ARDivisionNo$", DivNo)
    retVal = oBusObj.GetValue("CustomerNo$", CustNo)
    retVal = oBusObj.GetValue("DepositType$", DepType)

    Set oLines = oBusObj.AsObject(oBusObj.Lines)

    retVal = oLines.MoveFirst()
    Do Until CBool(oLines.EOF) = True

    retVal = oLines.GetValue("AmountPosted", AmtPosted)
    retVal = oLines.GetValue("InvoiceBalance", Balance)

    if Balance >-4 and Balance <4 then
    Bal = Balance
    TotBal = Bal + TotBal
    End If

    retVal = oLines.MoveNext()
    Loop

    if TotBal <> 0 then
    RevBal = TotBal *-1
    End If

    if RevBal <> 0 then
    retVal = oLines.AddLine()
    retVal = oLines.SetValue("DepositNo$",DepNo)
    retVal = oLines.SetValue("ARDivisionNo$", DivNo)
    retVal = oLines.SetValue("CustomerNo$",CustNo)
    retVal = oLines.SetValue("DepositType$", DepType)
    retVal = oLines.SetValue("LineType$","G")
    retVal = oLines.SetValue("AccountKey$", "100-00-00")
    retVal = oLines.SetValue("AmountPosted", RevBal)
    retVal = oLines.Write()
    End If

    retVal = oLines.MoveFirst()
    Do Until CBool(oLines.EOF) = True

    if Balance >-4 and Balance <4 then
    NewAmt = AmtPosted + Balance
    retVal = oLines.SetValue("AmountPosted", NewAmt)
    End If

    retVal = oLines.MoveNext()
    Loop

    ------------------------------
    Jesse Braun
    Vrakas/Blum Computer Consulting, Inc.
    ------------------------------


  • 2.  RE: Scripting in Cash Receipts Header/Detail

    Posted 11-07-2020 17:37
    How did this turn out for you? I'm looking at doing a cash receipts header script.

    ------------------------------
    Dan Burleson
    Software Consultant
    Connex Software
    Corvallis OR
    541-224-6642
    ------------------------------