Microsoft Great Plains is one of three Microsoft Business Solutions mid-market ERP products: Great Plains, Solomon, Navision. Considering that Great Plains is now very good candidate for integration with POS application, such as Microsoft Retail Management System or RMS and Client Relation Systems, such as Microsoft CRM ? there is common need in Great Plains customizations and integrations, especially on the level of MS SQL Server transact SQL queries and stored procedures.
In this small article we'll show you how to create auto-apply utility, when you integrate huge number of sales transactions and payments. We will be working with RM20101 ? Receivables Open File and RM20201 ? Receivables Apply Open File.
Let's see SQL code:
declare @curpmtamt numeric(19,5)
declare @curinvamt numeric(19,5)
declare @curpmtnum varchar(20)
declare @curinvnum varchar(20)
declare @curinvtype int
declare @curpmttype int
declare @maxid int
declare @counter int
-- Create a temporary table
create table #temp
(
[ID] int identity(1,1) primary key,
CUSTNMBR varchar(15),
INVNUM varchar(20),
INVTYPE int,
PMTNUM varchar(20),
PMTTYPE int,
INVAMT numeric(19,5),
PMTAMT numeric(19,5),
AMTAPPLIED numeric(19,5)
)
create index IDX_INVNUM on #temp (INVNUM)
create index IDX_PMTNUM on #temp (PMTNUM)
-- Insert unapplied invoices and payments
insert into #temp
(
CUSTNMBR,
INVNUM,
INVTYPE,
PMTNUM,
PMTTYPE,
INVAMT ,
PMTAMT,
AMTAPPLIED
)
select
CUSTNMBR = a.CUSTNMBR,
INVNUM = b.DOCNUMBR,
INVTYPE = b.RMDTYPAL,
PMTNUM = a.DOCNUMBR,
PMTTYPE = a.RMDTYPAL,
INVAMT = b.CURTRXAM,
PMTAMT = a.CURTRXAM,
AMTAPPLIED = 0
from RM20101 a
join RM20101 b on (a.CUSTNMBR = b.CUSTNMBR)
join RM00101 c on (a.CUSTNMBR = c.CUSTNMBR)
where
a.RMDTYPAL in (7, 8, 9) and
b.RMDTYPAL in (1, 3) and
a.CURTRXAM 0 and
b.CURTRXAM 0
order by
a.custnmbr,
b.DOCDATE,
a.DOCDATE,
a.DOCNUMBR,
b.DOCNUMBR
-- Iterate through each record
select @maxid = max([ID])
from #temp
select @counter = 1
while @counter = @curpmtamt) and (@curpmtamt>0) and (@curinvamt>0)-- if the invoice amount is greater or the same as the payment amount
begin
select @curinvamt = @curinvamt - @curpmtamt -- invoice amount remaining
-- update with the amount that is applied to the current invoice from
-- the current payment
update #temp
set
AMTAPPLIED = @curpmtamt
where
[ID] = @counter
-- update with amount of invoice remaining
update #temp
set
INVAMT = @curinvamt
where
INVNUM = @curinvnum and
INVTYPE = @curinvtype
-- update with amount of payment remaining
update #temp
set
PMTAMT = 0
where
PMTNUM = @curpmtnum and
PMTTYPE = @curpmttype
end
else if (@curinvamt 0) and (@curinvamt>0)-- if the invoice amount is lesser to the payment amount
begin
select @curpmtamt = @curpmtamt - @curinvamt -- payment amount remaining
-- update with the amount that is applied to the current invoice from
-- the current payment
update #temp
set
AMTAPPLIED = @curinvamt
where
[ID] = @counter
-- update with amount of invoice remaining
update #temp
set
INVAMT = 0
where
INVNUM = @curinvnum and
INVTYPE = @curinvtype
-- update with amount of payment remaining
update #temp
set
PMTAMT = @curpmtamt
where
PMTNUM = @curpmtnum and
PMTTYPE = @curpmttype
end
-- go to the next record
select @counter = @counter + 1
end
-- update the RM Open table with the correct amounts
update
RM20101
set
CURTRXAM = b.INVAMT
from
RM20101 a
join #temp b on (a.DOCNUMBR = b.INVNUM and a.RMDTYPAL = b.INVTYPE)
update
RM20101
set
CURTRXAM = b.PMTAMT
from
RM20101 a
join #temp b on (a.DOCNUMBR = b.PMTNUM and a.RMDTYPAL = b.PMTTYPE)
-- create the RM Apply record or update if records already exist
update
RM20201
set
DATE1 = convert(varchar(10), getdate(), 101),
GLPOSTDT = convert(varchar(10), getdate(), 101),
APPTOAMT = APPTOAMT + a.AMTAPPLIED,
ORAPTOAM = ORAPTOAM + a.AMTAPPLIED,
APFRMAPLYAMT = APFRMAPLYAMT + a.AMTAPPLIED,
ActualApplyToAmount = APFRMAPLYAMT + a.AMTAPPLIED
from
#temp a
join RM20101 b on (b.DOCNUMBR = a.INVNUM and b.RMDTYPAL = a.INVTYPE)
join RM20101 c on (c.DOCNUMBR = a.PMTNUM and c.RMDTYPAL = a.PMTTYPE)
join RM20201 d on (d.APFRDCTY = a.PMTTYPE and
d.APFRDCNM = a.PMTNUM and
d.APTODCTY = a.INVTYPE and
d.APTODCNM = a.INVNUM)
where
a.AMTAPPLIED 0
insert into RM20201
(CUSTNMBR,
DATE1,
GLPOSTDT,
POSTED,
APTODCNM,
APTODCTY,< /p>
APTODCDT,
ApplyToGLPostDate,
CURNCYID,
CURRNIDX,
APPTOAMT,
ORAPT OAM,
APFRDCNM,
APFRDCTY,
APFRDCDT,
ApplyFromGLPostDate,
FROMCURR,
< p>APFRMAPLYAMT,ActualApplyToAmount)
select
CUSTNMBR = a.CUSTNMBR,
DATE1 = convert(varchar(10), getdate(), 101),
GLPOSTDT = convert(varchar(10), getdate(), 101),
POSTED = 1,
APTODCNM = a.INVNUM,
APTODCTY = a.INVTYPE,
APTODCDT = b.DOCDATE,
ApplyToGLPostDate = b.GLPOSTDT,
CURNCYID = b.CURNCYID,
CURRNIDX = '',
APPTOAMT = a.AMTAPPLIED,
ORAPTOAM = a.AMTAPPLIED,
APFRDCNM = a.PMTNUM,
APFRDCTY = a.PMTTYPE,
APFRDCDT = c.DOCDATE,
ApplyFromGLPostDate = c.GLPOSTDT,
FROMCURR = c.CURNCYID,
APFRMAPLYAMT = a.AMTAPPLIED,
ActualApplyToAmount = a.AMTAPPLIED
from
#temp a
join RM20101 b on (b.DOCNUMBR = a.INVNUM and b.RMDTYPAL = a.INVTYPE)
join RM20101 c on (c.DOCNUMBR = a.PMTNUM and c.RMDTYPAL = a.PMTTYPE)
where
a.AMTAPPLIED 0 and
not exists (select 1
from RM20201 d
where d.APFRDCTY = a.PMTTYPE and
d.APFRDCNM = a.PMTNUM and
d.APTODCTY = a.INVTYPE and
d.APTODCNM = a.INVNUM)
drop table #temp
About The Author
Andrew Karasev is Chief Technology Officer in Alba Spectrum Technologies ? USA nationwide Great Plains, Microsoft CRM customization company, with offices in Chicago, San Francisco, Los Angeles, San Diego, Phoenix, Houston, Miami, Atlanta, New York, Madrid, Brazil, Moscow ( http://www.albaspectrum.com), you can reach Andrew 1-866-528-0577, he is Dexterity, SQL, C#.Net, Crystal Reports and Microsoft CRM SDK developer; akarasev@albaspectrum.com
|
|
|
|
|
|
|
|
|
|
|


Microsoft Great Plains, former Great Plains Software Dynamics, eEnterprise has... Read More
We don't think about mainframe software pricing anymore, we just... Read More
Internet worms. Is your PC infected?If your computer has become... Read More
Whether you are a small consultancy firm, a medium sized... Read More
Just stress testing one of the latest Linux distributions. Been... Read More
When my daughter was getting into AOL instant messaging (AIM)... Read More
Microsoft Business Solutions CRM is now approaching the phase of... Read More
Most computer users use spreadsheets software such as Microsoft Excel... Read More
MSN messenger is a pretty cool invention. I mean I'm... Read More
We'll give you non formal view, based on our consulting... Read More
Looks like Microsoft Great Plains becomes more and more popular,... Read More
If you are software developer or database administrator - we... Read More
The first thing that you will notice about Linux Red... Read More
Best Software Act! is very popular CRM for small and... Read More
Software development is a risky business.Many software developers are barely... Read More
Itâ??s easy to understand why you might be drawn to... Read More
We will base our prognosis on our Microsoft Business Solutions... Read More
In the Clinton era the status quo was simple: you... Read More
Having from five to ten and more favorite screensavers is... Read More
Usually workflow & messaging is realized in CRM and then... Read More
Microsoft Great Plains might be considered as ERP platform to... Read More
The first topic we are going to discuss... Read More
Several years ago Microsoft purchased Great Plains Software, then Navision... Read More
What is Software?Software is a set of instruction written to... Read More
Background: For many organizations like ours, the interim target of... Read More
Need help making sense of algebra? Have algebra lectures in... Read More
What is Colossus?Colossus is software licensed to about twenty-five insurance... Read More
After seeing many people complain about their weak Internet security... Read More
I completed an experiment recently. I wanted to find out... Read More
While Adobe is the most known maker of PDF tools,... Read More
Assertion facility is added in J2SE 1.4. In order to... Read More
Microsoft Great Plains fits to majority of industries, in the... Read More
Java has come along a long way. Many would agree... Read More


Microsoft Great Plains has substantial mid-market share in the USA... Read More
.Net Framework is a platform or development environment to seamlessly... Read More
Microsoft-Outlook is a pretty amazing program. So much more than... Read More
Microsoft CRM is now on the scene and it is... Read More
Microsoft Retail Management System serves retail single store as well... Read More
Beginning with Domino version R4 it has integration with the... Read More
Today's business world is fast-paced. No matter what it is... Read More
Microsoft Great Plains - Microsoft Business Solutions accounting and ERP... Read More
Microsoft Business Solutions Great Plains is marketed for mid-size companies... Read More
Sticky Noteshttp://www.deprice.com/stickynote.htmWith StickyNote 9.0, you can create beautiful 3D notes... Read More
Find out why Spyware Removal from computers is important and... Read More
Software Engineering is the Systematic Approach for analysis design implementation... Read More
Microsoft Business Solutions Great Plains is marketed for mid-size companies... Read More
Microsoft Great Plains is one of the Microsoft Business Solutions... Read More
Now there are Three Steps To Heaven Just listen and... Read More
Microsoft Business Solutions Great Plains, former Great Plains Software Dynamics... Read More
Microsoft Great Plains is one of three Microsoft Business Solutions... Read More
Background: For many organizations like ours, the interim target of... Read More
I like my software simple. If it's too complex or... Read More
Microsoft Business Solutions Great Plains was designed back in the... Read More
Just imagine: you are walking, say, towards your car, and... Read More
OEComplete is a utility for managing the personal information of... Read More
Did you ever want to erase everything on your computer?... Read More
IBM Lotus Notes Domino and Microsoft CRM (Client Relation Management)... Read More
When my daughter was getting into AOL instant messaging (AIM)... Read More
It is really interesting that a bug can create problem... Read More
I suggest that you do not spend a lot of... Read More
Does Microsoft Have any Real Competition? Copyright (c) 2003 Gregory... Read More
Microsoft Great Plains could be tuned and setup to fit... Read More
At the end of XX century, in the late 1990th... Read More
Microsoft Business Solutions Great Plains is Dexterity-written application and currently... Read More
Are you a database professional? Do you work with a... Read More
Microsoft CRM is CRM answer from Microsoft Business Solutions.The whole... Read More
Software |