Identify Who Applied Cash to a Customer’s Account
-
Identify Who Applied Cash to a Customer’s Account
Posted by Laurie Millington on July 2, 2019 at 11:37 am-
Does anyone know of a way that you can identified who applied a cash receipt payment or credit memo to a customer’s account when the transaction is open, posted or in history status? Ā
I have found this query and it gets me closer but I would still need to see who processed those batch/transactions. Any suggestions?Ā
SELECT T.CUSTNMBR Customer_ID,
CM.CUSTNAME Customer_Name,
CM.SHRTNAME Short_Name,
T.DOCDATE Document_Date,
T.GLPOSTDT GL_Posting_Date,
CASE T.RMDTYPAL
WHEN 7 THEN ‘Credit Memo’
WHEN 8 THEN ‘Return’
WHEN 9 THEN ‘Payment’
END AS RM_Doc_Type,
T.BACHNUMB Payment_Batch,
T.docTypeNum Document_Type_and_Number,
T.DOCNUMBR Document_Number,
T.ORTRXAMT Original_Trx_Amount,
T.CURTRXAM Current_Trx_Amount,
T.amountApplied Total_Applied_Amount,
A.APPTOAMT Amount_Applied,
A.APTODCTY Applied_to_Doc_Type,
A.debitType Applied_to_Doc_Type_Name,
A.APTODCNM Applied_to_Doc_Number,
A.APTODCDT Applied_to_Document_Date,
A.ApplyToGLPostDate Applied_to_GL_Posting_Date,
A.DISTKNAM Discount,
A.WROFAMNT Writeoff,
A.DATE1 Apply_Document_Date,
A.GLPOSTDT Apply_GL_Posting_Date,
D.ORTRXAMT Applied_To_Doc_Total,
D.DINVPDOF Applied_To_Date_Paid_Off,
D.CURTRXAM Applied_To_Doc_Unapplied_Amount,
D.CSPORNBR Customer_PO_NumberFROM (SELECT CUSTNMBR, DOCDATE, GLPOSTDT, RMDTYPAL,
CASE RMDTYPAL
WHEN 7 THEN ‘Credit Memo’
WHEN 8 THEN ‘Return’
WHEN 9 THEN
CASE CSHRCTYP
WHEN 0 THEN ‘Payment – Check ‘ +
CASE CHEKNMBR
WHEN ” THEN ”
ELSE ‘#’ + CHEKNMBR
END
WHEN 1 THEN ‘Payment – Cash’
WHEN 2 THEN ‘Payment – Credit Card’
END
END AS docTypeNum,
DOCNUMBR, ORTRXAMT, CURTRXAM, BACHNUMB,
ORTRXAMT – CURTRXAM amountAppliedFROM RM20101
WHERE (RMDTYPAL > 6) and (VOIDSTTS = 0)UNION
SELECT CUSTNMBR, DOCDATE, GLPOSTDT, RMDTYPAL,
CASE RMDTYPAL
WHEN 7 THEN ‘Credit Memo’
WHEN 8 THEN ‘Return’
WHEN 9 THEN
CASE CSHRCTYP
WHEN 0 THEN ‘Payment – Check ‘ +
CASE CHEKNMBR
WHEN ” THEN ”
ELSE ‘#’ + CHEKNMBR
END
WHEN 1 THEN ‘Payment – Cash’
WHEN 2 THEN ‘Payment – Credit Card’
END
END AS docTypeNum,
DOCNUMBR, ORTRXAMT, CURTRXAM, BACHNUMB,
ORTRXAMT – CURTRXAM amountAppliedFROM RM30101
WHERE (RMDTYPAL > 6) and (VOIDSTTS = 0)) TINNER JOIN RM00101 CM
ON T.CUSTNMBR = CM.CUSTNMBRINNER JOIN
(SELECT tO1.CUSTNMBR, APTODCTY, APTODCNM,
APFRDCTY,APFRDCNM,
CASE APTODCTY
WHEN 1 THEN ‘Sale / Invoice’
WHEN 2 THEN ‘Scheduled Payment’
WHEN 3 THEN ‘Debit Memo’
WHEN 4 THEN ‘Finance Charge’
WHEN 5 THEN ‘Service Repair’
WHEN 6 THEN ‘Warranty’
END as debitType,
APPTOAMT, ApplyToGLPostDate, APTODCDT, tO2.DISTKNAM,
tO2.WROFAMNT, tO2.DATE1, tO2.GLPOSTDTFROM RM20201 tO2
INNER JOIN RM20101 tO1
ON tO2.APTODCTY = tO1.RMDTYPAL
AND tO2.APTODCNM = tO1.DOCNUMBRUNION
SELECT tH1.CUSTNMBR, APTODCTY, APTODCNM,
APFRDCTY, APFRDCNM,
CASE APTODCTY
WHEN 1 THEN ‘Sale / Invoice’
WHEN 2 THEN ‘Scheduled Payment’
WHEN 3 THEN ‘Debit Memo’
WHEN 4 THEN ‘Finance Charge’
WHEN 5 THEN ‘Service Repair’
WHEN 6 THEN ‘Warranty’
END AS debitType,
APPTOAMT, ApplyToGLPostDate, APTODCDT, tH2.DISTKNAM,
tH2.WROFAMNT, tH2.DATE1, tH2.GLPOSTDT
FROM RM30201 tH2INNER JOIN RM30101 tH1
ON tH2.APTODCTY = tH1.RMDTYPAL
AND tH2.APTODCNM = tH1.DOCNUMBR) AON A.APFRDCTY = T.RMDTYPAL and A.APFRDCNM = T.DOCNUMBR
INNER JOIN
(SELECT RMDTYPAL, DOCNUMBR, ORTRXAMT, DINVPDOF,
CURTRXAM, CSPORNBR
FROM RM20101UNION
SELECT RMDTYPAL, DOCNUMBR, ORTRXAMT, DINVPDOF,
CURTRXAM = 0, CSPORNBR
FROM RM30101) DON A.APTODCTY = D.RMDTYPAL and A.APTODCNM = D.DOCNUMBR
——————————
Laurie Millington
Boyer & Associates
Plymouth MN
—————————— -
Laurie – I have a query on table SY05000, which has security information.
That will have a message:Ā “The XXXXXXXXX record in the Sales Transaction Work file was modified.” where XXXXXXX is your invoice number or your return #.User id, date and time will be in the record.Not sure if that will help in your situation, but that how I identify the user.
?
——————————
Brenda Zeben
Controller
Imlach Movers, Inc.
Trenton MI
——————————
——————————————- -
I have made a few additions to the query you supplied to add the users.Ā I also added a little logic to deal with unhandled CASE conditions:
SELECT T.CUSTNMBR as Customer_ID
Ā Ā Ā , CM.CUSTNAME as Customer_Name
, CM.SHRTNAME as Customer_Short_Name
, T.DOCDATE as Document_Date
, T.GLPOSTDT as GL_Posting_Date
, CASE T.RMDTYPAL
Ā Ā Ā Ā Ā Ā WHEN 7 THEN 'Credit Memo'
Ā Ā Ā Ā Ā Ā WHEN 8 THEN 'Return'
Ā Ā Ā Ā Ā Ā WHEN 9 THEN 'Payment'
ELSE 'OTHER'
Ā Ā Ā Ā END AS RM_Doc_Type
Ā Ā Ā , T.BACHNUMB as Payment_Batch
, T.docTypeNum as Document_Type_and_Number
, T.DOCNUMBR as Document_Number
, T.ORTRXAMT as Original_Trx_Amount
, T.CURTRXAM as Current_Trx_Amount
, T.amountApplied as Total_Applied_Amount
, A.APPTOAMT as Amount_Applied
, A.APTODCTY as Applied_to_Doc_Type
, A.debitType as Applied_to_Doc_Type_Name
, A.APTODCNM as Applied_to_Doc_Number
, A.APTODCDT as Applied_to_Document_Date
, A.ApplyToGLPostDate as Applied_to_GL_Posting_Date
, A.DISTKNAM as Discount
, A.WROFAMNT as Writeoff
, A.DATE1 as Apply_Document_Date
, A.GLPOSTDT as Apply_GL_Posting_Date
, A.PSTUSRID as Posting_User
, D.ORTRXAMT as Applied_To_Doc_Total
, D.DINVPDOF as Applied_To_Date_Paid_Off
, D.CURTRXAM as Applied_To_Doc_Unapplied_Amount
, D.CSPORNBR as Customer_PO_Number
, d.PSTUSRID as Original_Posting_User
Ā FROM (SELECT CUSTNMBR, DOCDATE, GLPOSTDT, RMDTYPAL
Ā Ā Ā Ā Ā Ā Ā , CASE RMDTYPAL
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 7 THEN 'Credit Memo'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 8 THEN 'Return'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 9 THEN
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā CASE CSHRCTYP
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 0 THEN 'Payment - Check ' +
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā CASE CHEKNMBR
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN '' THEN ''
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā ELSE '#' + CHEKNMBR
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā END
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 1 THEN 'Payment - Cash'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 2 THEN 'Payment - Credit Card'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā END ELSE 'OTHER'
Ā Ā Ā Ā Ā Ā Ā Ā END AS docTypeNum
Ā , DOCNUMBR, ORTRXAMT, CURTRXAM, BACHNUMB
Ā , ORTRXAMT - CURTRXAM as amountApplied
Ā Ā Ā Ā Ā FROM RM20101
Ā Ā Ā Ā Ā WHERE (RMDTYPAL > 6)
Ā Ā AND (VOIDSTTS = 0)
Ā Ā Ā Ā Ā UNION
SELECT CUSTNMBR, DOCDATE, GLPOSTDT, RMDTYPAL
Ā Ā Ā , CASE RMDTYPAL
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 7 THEN 'Credit Memo'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 8 THEN 'Return'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 9 THEN
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā CASE CSHRCTYP
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 0 THEN 'Payment - Check ' +
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā CASE CHEKNMBR
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN '' THEN ''
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā ELSE '#' + CHEKNMBR
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā END
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 1 THEN 'Payment - Cash'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 2 THEN 'Payment - Credit Card'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā END
ELSE 'OTHER'
Ā Ā Ā Ā Ā Ā Ā Ā Ā END AS docTypeNum
Ā , DOCNUMBR, ORTRXAMT, CURTRXAM, BACHNUMB
Ā , ORTRXAMT - CURTRXAM as amountApplied
Ā Ā Ā Ā Ā Ā FROM RM30101
Ā Ā Ā Ā Ā WHERE RMDTYPAL > 6
Ā Ā AND VOIDSTTS = 0 ) T
Ā INNER JOIN RM00101 CM ON T.CUSTNMBR = CM.CUSTNMBR
Ā INNER JOIN (
Ā Ā Ā Ā Ā Ā SELECT tO1.CUSTNMBR, APTODCTY, APTODCNM
Ā Ā Ā Ā Ā , APFRDCTY, APFRDCNM
Ā Ā Ā Ā Ā , CASE APTODCTY
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 1 THEN 'Sale / Invoice'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 2 THEN 'Scheduled Payment'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 3 THEN 'Debit Memo'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 4 THEN 'Finance Charge'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 5 THEN 'Service Repair'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 6 THEN 'Warranty'
Ā Ā Ā ELSE 'OTHER'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā END as debitType
Ā Ā Ā Ā , APPTOAMT, ApplyToGLPostDate, APTODCDT, tO2.DISTKNAM
Ā Ā Ā , tO2.WROFAMNT, tO2.DATE1, tO2.GLPOSTDT, to1.PSTUSRID
Ā Ā Ā Ā Ā Ā Ā FROM RM20201 tO2
Ā Ā Ā Ā Ā Ā Ā INNER JOIN RM20101 tO1 ON tO2.APTODCTY = tO1.RMDTYPAL
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā AND tO2.APTODCNM = tO1.DOCNUMBR
Ā Ā Ā Ā Ā Ā Ā UNION
Ā Ā SELECT tH1.CUSTNMBR, APTODCTY, APTODCNM
Ā Ā Ā Ā Ā , APFRDCTY, APFRDCNM
Ā Ā Ā Ā Ā , CASE APTODCTY
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 1 THEN 'Sale / Invoice'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 2 THEN 'Scheduled Payment'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 3 THEN 'Debit Memo'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 4 THEN 'Finance Charge'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 5 THEN 'Service Repair'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā WHEN 6 THEN 'Warranty'
Ā Ā Ā Ā ELSE 'OTHER'
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā END AS debitType
Ā Ā , APPTOAMT, ApplyToGLPostDate, APTODCDT, tH2.DISTKNAM
Ā Ā , tH2.WROFAMNT, tH2.DATE1, tH2.GLPOSTDT, th1.PSTUSRID
Ā Ā Ā Ā Ā Ā Ā FROM RM30201 tH2
Ā Ā Ā INNER JOIN RM30101 tH1 ON tH2.APTODCTY = tH1.RMDTYPAL
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā AND tH2.APTODCNM = tH1.DOCNUMBR
Ā Ā Ā Ā Ā Ā ) A ON A.APFRDCTY = T.RMDTYPAL
Ā Ā Ā Ā Ā AND A.APFRDCNM = T.DOCNUMBR
Ā INNER JOIN (
Ā Ā Ā Ā Ā Ā SELECT RMDTYPAL, DOCNUMBR, ORTRXAMT, DINVPDOF
Ā Ā Ā , CURTRXAM, CSPORNBR, PSTUSRID
Ā Ā Ā Ā Ā Ā Ā FROM RM20101
Ā Ā Ā Ā Ā Ā Ā UNION
Ā Ā Ā Ā Ā Ā SELECT RMDTYPAL, DOCNUMBR, ORTRXAMT, DINVPDOF
Ā Ā Ā , 0 as CURTRXAM, CSPORNBR, PSTUSRID
Ā Ā Ā Ā Ā Ā Ā FROM RM30101
) D ON A.APTODCTY = D.RMDTYPAL
Ā Ā Ā Ā Ā AND A.APTODCNM = D.DOCNUMBR——————————
Blair Christensen
Database Administrator
Oppenheimer Companies, Inc.
Boise ID
——————————
——————————————- -
Bruce Strom
MemberJuly 5, 2019 at 1:57 PM
UNION ALL rather than UNION should speed up this query by about 30%, since you do not need to check for duplicates in the UNION.——————————
Bruce Strom
Programmer Analyst
Associated Grocers of Florida / Supervalu
Sunrise FL
——————————
——————————————-
Laurie Millington replied 6 years, 8 months ago 1 Member · 0 Replies -
-
0 Replies
Sorry, there were no replies found.
The discussion ‘Identify Who Applied Cash to a Customer’s Account’ is closed to new replies.