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-Outlook is a pretty amazing program. So much more than... Read More
Beginning with Domino version R4 it has integration with the... Read More
Need software to record your voice, streaming audio or musical... Read More
Executive SummaryAn effective plan for entering, cleaning and updating the... Read More
Find out why Spyware Removal from computers is important and... Read More
Microsoft Business Solutions Great Plains is marketed for mid-size companies... Read More
Several software companies design programs for preventive maintenance. Most of... Read More
Configuring PPP PAP AuthenticationNow we know how the ISDN link... Read More
Is your PC is slow and wimpy? Then you need... Read More
IBM Lotus Notes with Domino email server is traditional document... Read More
After almost two decades of existence, Quark has become the... Read More
We would like to give you several situations, when you... Read More
The vast majority of us will have, at some point,... Read More
Microsoft Business Solutions ? Navision is an integrated solution for... Read More
There are two approaches for application integration:? Programmer's approach ?... Read More
People often ask me: What image file formats will Photoshop... Read More
Document Management or Enterprise Information Management is perhaps one of... Read More
When you own a small business, time is money. And... Read More
In our case ? we serve Microsoft Business Solutions ERP... Read More
In the early days of the personal computer, we're talking... Read More
Homeland security, airport security, Internet security â?" these days weâ??re... Read More
In a previous article, I wrote about OpenOffice... Read More
Microsoft Great Plains and Microsoft CRM become more and more... Read More
Fortunately one of the most common reasons cited for the... Read More
CD and DVD replication is a process that works by... Read More
Microsoft Business Solutions CRM is present several years on the... Read More
2005 ? Back to the Future.What does the future hold?... Read More
A UNIX Shell is in simplest terms, a command line... Read More
We would like first emphasize the change in the paradigm.... Read More
Google Inc. has launched a new software package that allows... Read More
Microsoft Client Relation Management system (Microsoft CRM) and Microsoft RMS... Read More
Whether you are a small consultancy firm, a medium sized... Read More
Using professional icons in your application or website can bring... Read More
Microsoft Business Solutions ? Great Plains has captured the US... Read More
In our case ? we serve Microsoft Business Solutions ERP... Read More
Our hosted solution allow you to run your own search... Read More
Usually workflow & messaging is realized in CRM and then... Read More
IntroductionSurprised, by the title? well, this is a tour of... Read More
User interfaces and accessibility are some of the most important... Read More
Customer Relationship Management or CRM is a combination of enterprise... Read More
With the advent of 'Service Pack 2' for Windows XP... Read More
Microsoft CRM is CRM answer from Microsoft Business Solutions.The whole... Read More
The Microsoft system preparation utility for Windows 2000 is a... Read More
DBxtra goes ASPGetting to the information hidden within corporate databases... Read More
Microsoft Business Solutions ? Navision is an integrated solution for... Read More
Microsoft Business Solutions Great Plains is very generic accounting application... Read More
Siebel is traditional CRM market leader, however and mostly due... Read More
Microsoft Great Plains serves the wide spectrum of horizontal markets.... Read More
Microsoft Business Solutions Great Plains serves multiple industries in the... Read More
The Software 2005 conference is now a wrap. This conference,... Read More
Executive SummaryAn effective plan for entering, cleaning and updating the... Read More
Case study: A secretary using Corel WordPerfect 7 is often... Read More
Once a business idea is selected, it is highly recommended... Read More
It is now common thing when large corporation selects mid-market... Read More
According to a survey conducted by InfoTrends/CAP Ventures entitled "Content-Centric... Read More
For those who are unclear on the differences between the... Read More
The software giants don't do everything and don't always produce... Read More
Spyware and Adware infest over 90 percent of computers in... Read More
eStore Advantage allows front-office applications to communicate with back-office business... Read More
If you look back to the history, you will see... Read More
Features Additionally, Vista will include many other new features.Aero Vista... Read More
Just imagine: you are walking, say, towards your car, and... Read More
Heard about the Quark "killer"?Adobe InDesign CS2. Will it really... Read More
Preventive Maintenance (PM) is defined as scheduled work done on... Read More
This article is the third of a series of articles... Read More
Microsoft Business Solutions is emerging as very attractive vendor for... Read More
Software |