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
Sales are all about leverage, because there is only so... Read More
If there still are few unprotected computers left, I haven't... Read More
It is possible that if one avoided all sources of... Read More
Which Type of Shop Can Rely On A Home Built... Read More
Customer Relationship Management, abbreviated "CRM," is the term for a... Read More
Viruses and spyware usually show up on your computer one... Read More
ERP is the acronym of Enterprise Resource Planning. Multi-module ERP... Read More
Disclaimer: All the thoughts expressed are my views only! Your... Read More
The Microsoft system preparation utility for Windows 2000 is a... Read More
Manufacturing in the USA is far away down from mid... Read More
IntroductionPHP can be used for a lot of different things,... Read More
Microsoft Business Solutions Small Business Manager is Great Plains Dexterity... Read More
Your computer cost you from hundreds to thousands of dollars,... Read More
The major reason I recommend getting your hands on real... Read More
Microsoft Great Plains fits to majority of industries, in the... Read More
Microsoft Business Solutions Great Plains, former Great Plains Software Dynamics/eEnterprise... Read More
This article is the first of a series of articles... Read More
A wiki is an editable text-based website. But you don't... Read More
Microsoft has never released a service pack for Windows98 SE,... Read More
You might think you don't need a firewall... Read More
Microsoft Great Plains and Microsoft Retail Management System (Microsoft RMS)... Read More
This is intermediate level SQL scripting article for DB Administrator,... Read More
When you think... Read More
Bar charts, bar graphs, and any other chart or graph... Read More
Just the thought of a duel-boot scares many people away,... Read More
What is installation in the language of technology? Installation... Read More
Security flaws have long plagued Internet Explorer (IE), the market-dominating... Read More
While paper labeling CDs and DVDs may appear to be... Read More
Best Software Act! is very popular CRM for small and... Read More
In our small article we'll consider Microsoft Business Solutions Great... Read More
Usually, the easiest way to tell you have spyware is... Read More
Internet worms. Is your PC infected?If your computer has become... Read More
Almost all new and major brand of PCs come with... Read More
When you think... Read More
The major reason I recommend getting your hands on real... Read More
First we had the original Google search that evolved into... Read More
Following tips help you to learn a software in lesser... Read More
Microsoft CRM and IBM Lotus Notes Domino seem to be... Read More
The intentions of this short tutorial are not to teach... Read More
Disclaimer: All the thoughts expressed are my views only! Your... Read More
Microsoft CRM is now on the scene and it is... Read More
What is RAID RECOVERY?RAID stands for Redundant Array of Inexpensive... Read More
Are you a database professional? Do you work with a... Read More
Three highly respected names in Human Resources have joined forces... Read More
If you have Great Plains Dynamics/eEnterprise (version 6.0 or earlier)... Read More
IntroductionPHP can be used for a lot of different things,... Read More
The various resume software offered, particularly on the internet, can... Read More
When Windows fails to boot it is normally caused by... Read More
Just imagine: you are walking, say, towards your car, and... Read More
Cyberspace has opened up a new frontier with exciting possibilities... Read More
Microsoft Business Solutions Great Plains is mid and even corporate... Read More
Customer Relationship Management (CRM) is a strategy and processes used... Read More
Anyone who has ever used Microsoft Word knows that it... Read More
Introduction: The creating of a computer program involves a number... Read More
Did you ever give a thought to the number of... Read More
There are so many different programs that clutter up your... Read More
You might think you don't need a firewall... Read More
It won't matter how effective your WinRunner Team is if... Read More
Fundraising software lets you connect with donors in a way... Read More
In our small article we'll consider Microsoft Business Solutions Great... Read More
Innovative Maintenance Systems (IMS) is one company that offers solutions... Read More
IntroductionSurprised, by the title? well, this is a tour of... Read More
Microsoft Business Solutions Great Plains, Navision, Axapta, Solomon and CRM... Read More
XML Server can be a Web Server that stores the... Read More
TikiWiki is open source software - it is written in... Read More
Microsoft Great Plains and Microsoft CRM become more and more... Read More
Software |