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
Which Type of Shop Can Rely On A Home Built... Read More
Cyberspace has opened up a new frontier with exciting possibilities... Read More
Document Manager and Version HistoryIn previous articles I have discussed... Read More
We've all seen the ads on TV for Netzero 3G.... Read More
Think of this, first we had the HAM Radio, then... Read More
What is Colossus?Colossus is software licensed to about twenty-five insurance... Read More
Beginning with Domino version R4 it has integration with the... Read More
In our opinion, traditional approach when you select ERP/MRP system... Read More
SAP Inc., a global leader in client/server enterprise application software... Read More
An integral part of any quality CRM system is lead... Read More
OEComplete is a utility for managing the personal information of... Read More
This article is for advanced Microsoft CRM SDK C# developers.... Read More
Microsoft Great Plains is main Microsoft Business Solutions accounting package... Read More
Microsoft Business Solutions Great Plains has full-featured manufacturing set of... Read More
Heard about the Quark "killer"?Adobe InDesign CS2. Will it really... Read More
Itâ??s easy to understand why you might be drawn to... Read More
The Windows Indexing Service provides you with the ability to... Read More
Configuring PPP PAP AuthenticationNow we know how the ISDN link... Read More
Buying accounting software is a major investment. It's an important... Read More
NOTE: Please take time to read on - it may... Read More
Microsoft Business Solutions Small Business Manager is Great Plains Dexterity... Read More
Case study: A secretary using Corel WordPerfect 7 is often... Read More
The vast majority of us will have, at some point,... Read More
If you use Microsoft Outlook (or similar applications) for e-mailing,... Read More
Microsoft bought Navision, Denmark based software development company, along with... Read More
Introduction To ISDN, Part III: Configuring PPP PAP AuthenticationNow we... Read More
Microsoft Business Solutions Small Business Manager is scaled down Great... Read More
Microsoft SQL Server is the leader for inexpensive and middle... Read More
We would like to give you pluses and minuses of... Read More
Microsoft Business Solutions Great Plains has Project Accounting module where... Read More
Microsoft Great Plains is main Microsoft Business Solutions product, targeted... Read More
The term "document management" and "paperless office" is the subject... Read More
You turn on your computer, and it doesn't look quite... Read More
Microsoft Business Solutions Great Plains was purchased from Great Plains... Read More
The world of small business accounting software can be a... Read More
Microsoft Business Solutions Great Plains is very good fit for... Read More
It is a well known fact that Java as a... Read More
Professional services firm cuts costs and improves productivity with integrated... Read More
Looks like Microsoft Great Plains becomes more and more popular,... Read More
This article is for advanced Microsoft CRM SDK C# developers.... Read More
1. With mapping software you can create a report that... Read More
Buying accounting software is a major investment. It's an important... Read More
When you buy a computer, it most likely comes with... Read More
We'll give you non formal view, based on our consulting... Read More
Every day millions of new web documents emerge on the... Read More
Having from five to ten and more favorite screensavers is... Read More
Pirated software is on the increase and now accounts for... Read More
Some companies that are in need of fleet management may... Read More
Features Additionally, Vista will include many other new features.Aero Vista... Read More
If there still are few unprotected computers left, I haven't... Read More
Microsoft Business Solutions Great Plains is marketed for mid-size companies... Read More
When you own a small business, time is money. And... Read More
Microsoft PowerPoint has dramatically changed the way in which academic... Read More
Microsoft Business Solutions Great Plains and MS CRM (client relation... Read More
During the years of our consulting practice, which comes back... Read More
Before September of 1995, Microsoft ignored the Internet because their... Read More
Microsoft Great Plains, Navision, Solomon and Axapta are Microsoft Business... Read More
Are you lost in the mess of documents that get... Read More
The first topic we are going to discuss... Read More
How many steps does it take you to locate and... Read More
1. What determines the software price? Is it Per Seat... Read More
Fleet Maintenance Management is a critical position in any company... Read More
How would you like to prevent spyware and adware from... Read More
Formatting and reinstalling windows 98 is very easy if you... Read More
One of the things we can be as certain of... Read More
With thousands of web pages added to the Net every... Read More
Software |