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
|
|
|
|
|
|
|
|
|
|
|


In 2004 Oracle, Inc. made its new step toward J2EE... Read More
It is really interesting that a bug can create problem... Read More
There are so many different programs that clutter up your... Read More
Microsoft SQL Server is the leader for inexpensive and middle... Read More
Domino server is a buffer between the operation system and... Read More
Hi, Guys,I believe a lot of programmers are trying to... Read More
When Great Plains Software was designing and developing Great Plains... Read More
Great Plains Software Dynamics, Dynamics C/S+, eEnterprise were written on... Read More
If you have Microsoft Great Plains and support it for... Read More
What is Spyware?Spyware monitors your surfing habits and sends the... Read More
When reading an article where some term is used often,... Read More
Microsoft CRM ? Client Relationship Management package from Microsoft Business... Read More
Usually, the easiest way to tell you have spyware is... Read More
Microsoft Great Plains and Microsoft Retail Management System (Microsoft RMS)... Read More
New post-recession era has new features, which didn't exist in... Read More
Microsoft Client Relation Management system (Microsoft CRM) and Microsoft RMS... Read More
Microsoft Great Plains is one of the Microsoft Business Solutions... Read More
Before being able to choose a secure Internet communication system,... Read More
Microsoft Business Solutions Great Plains, Navision, Axapta, Solomon and CRM... Read More
Healthcare facilities such as clinics, hospitals, and biomedical laboratories can... Read More
Need help making sense of algebra? Have algebra lectures in... Read More
Microsoft bought Navision, Denmark based software development company, along with... Read More
Scrapbooks are very popular these days. I think that almost... Read More
Microsoft Great Plains and Microsoft Retail Management System (Microsoft RMS)... Read More
Microsoft Word is one of the most popular office applications... Read More
In this small article we will show you the possible... Read More
Just stress testing one of the latest Linux distributions. Been... Read More
Microsoft Great Plains could be tuned and setup to fit... Read More
It would be easy to think, like most people apparently... Read More
If you have Microsoft Great Plains as main accounting and... Read More
Although statistics often is blamed for various deadly sins --... Read More
If you feel intimidated when someone tries to teach you... Read More
This short paper will expand on two key reasons to... Read More


Passwords protect your most sensitive personal, financial and business information.... Read More
Simply put, fleet maintenance allows companies to monitor and maintain... Read More
Microsoft Business Solutions offers several ERP applications: Great Plains, Navision,... Read More
The various resume software offered, particularly on the internet, can... Read More
Logistics automation is often considered as barcoding extension to Sales... Read More
In the new era of internet marketing the problem of... Read More
The java programming language is becoming more and more popular... Read More
Is Photoshop CS2 worth the upgrade? You bet it is!... Read More
Microsoft Business Solutions Great Plains fits to majority of horizontal... Read More
The term "document management" and "paperless office" is the subject... Read More
If you copy something from a Web site or elsewhere...... Read More
We would like to give you pluses and minuses of... Read More
When Great Plains Software introduced the first graphical accounting application... Read More
Currently Microsoft Business Solutions is on the way of creating... Read More
Microsoft Business Solutions Great Plains is very good fit for... Read More
There are certain pluses and minuses in both cases and... Read More
What is Software?Software is a set of instruction written to... Read More
What is Spyware?Spyware monitors your surfing habits and sends the... Read More
Vince Lombardi once said that, "The achievements of an organization... Read More
Microsoft Great Plains serves majority of US based horizontal and... Read More
Assertion facility is added in J2SE 1.4. In order to... Read More
Navision Software was purchased by Microsoft and now it is... Read More
We would like to give you several situations, when you... Read More
Anyone who has ever used Microsoft Word knows that it... Read More
Trying to figure out a stream in banning one email... Read More
It is really interesting that a bug can create problem... Read More
Microsoft Great Plains is main accounting / ERP application... Read More
Find out why Spyware Removal from computers is important and... Read More
While paper labeling CDs and DVDs may appear to be... Read More
As seeing large number of implementations ? in our case... Read More
IntroductionSurprised, by the title? well, this is a tour of... Read More
As you probably know, when Microsoft purchased Great Plains Software... Read More
Considering whether or not your software company should hire a... Read More
Software |