<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sanity with Sage &#187; Reporting</title>
	<atom:link href="http://www.protronics.co.uk/blogs/sanity-with-sage/index.php/category/reporting/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.protronics.co.uk/blogs/sanity-with-sage</link>
	<description>Stretching Sage 50 and Sage 200</description>
	<lastBuildDate>Sat, 16 Jan 2010 13:38:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Sage 200 aged debtors</title>
		<link>http://www.protronics.co.uk/blogs/sanity-with-sage/index.php/2009/08/sage-200-aged-debtors/</link>
		<comments>http://www.protronics.co.uk/blogs/sanity-with-sage/index.php/2009/08/sage-200-aged-debtors/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 09:25:02 +0000</pubDate>
		<dc:creator>JonathanK</dc:creator>
				<category><![CDATA[Credit control]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[Sage 200]]></category>
		<category><![CDATA[aged debtor]]></category>
		<category><![CDATA[Excel]]></category>

		<guid isPermaLink="false">http://www.protronics.co.uk/blogs/sanity-with-sage/?p=34</guid>
		<description><![CDATA[While Sage 200 includes aged debtor reports as standard, we prefer to work with the aged debtor reports in Excel though, and we prefer to grab the data directly, so that we can manipulate it at will
This poss includes a series of &#8216;SQL Server views&#8217; that together give an aged debt, grab the most recent [...]]]></description>
			<content:encoded><![CDATA[<p>While <a title="Sage 200" href="http://www.protronics.co.uk/sage-200.html">Sage 200</a> includes aged debtor reports as standard, we prefer to work with the aged debtor reports in Excel though, and we prefer to grab the data directly, so that we can manipulate it at will</p>
<p>This poss includes a series of &#8216;SQL Server views&#8217; that together give an aged debt, grab the most recent memo (which we use for recording credit control conversations) from the customer account, and show basic contact information.<span id="more-34"></span></p>
<p>Provided you or a colleague have basis SQL Server skills, it is straight-forward to create the necessary views in your Sage 200 SQL Server database.  You can choose your own name for the first view, and this is the one that you should link to from Excel, but the other views will need to use the names indicated.</p>
<p>This version doesn&#8217;t support foreign currency accounts, and it also can&#8217;t be used to produce retrospective aged debtors.  There are other ways of achieving much the same end, including the use of pivot tables which has the advantage of letting you drill down to transactions. </p>
<p>The views don&#8217;t format particularly well as created via our blog software I&#8217;m afraid, but you should be able to cut and paste directly.  Also the views were put together by someone relatively inexperienced, so we know they&#8217;re not as tidy as they might be!</p>
<p>If you need help implementing this or similar Sage 200 aged debt reports please contact our <a title="Sage 200 support in London and Oxfordshire" href="http://www.protronics.co.uk/sage-200-support.html">Sage 200 support</a> service.</p>
<p style="text-align: left;">SELECT     TOP 100 PERCENT dbo.CreditControlWithMemo.CustomerAccountNumber, dbo.CreditControlWithMemo.CustomerAccountName,<br />
                      dbo.CreditControlWithMemo.AccountBalance, dbo.CreditControlWithMemo.Now, dbo.CreditControlWithMemo.[30 Days], dbo.CreditControlWithMemo.[60 Days],<br />
                      dbo.CreditControlWithMemo.[90 Days], dbo.CreditControlWithMemo.[120 Days],<br />
                      dbo.CreditControlWithMemo.[60 Days] + dbo.CreditControlWithMemo.[90 Days] + dbo.CreditControlWithMemo.[120 Days] AS [Over 30 Day Total],<br />
                      dbo.CreditControlWithMemo.[Explanation/Excuse], dbo.CreditControlWithMemo.[Date Of Last Contact], dbo.CreditControlContacts.Contact AS CreditControlName,<br />
                      dbo.CreditControlContacts.DefaultTelephone AS CreditControlPhone, dbo.CreditControlContacts.DefaultEmail AS CreditControlEmail,<br />
                      dbo.CreditControlEscContacts.Contact AS EscalateToName, dbo.CreditControlEscContacts.DefaultTelephone AS EscalateToPhone,<br />
                      dbo.CreditControlEscContacts.DefaultEmail AS EscalateToEmail, dbo.SYSCreditPosition.Name AS Creditability<br />
FROM         dbo.SLCustomerAccount LEFT OUTER JOIN<br />
                      dbo.SYSCreditPosition ON dbo.SLCustomerAccount.SYSCreditPositionID = dbo.SYSCreditPosition.SYSCreditPositionID LEFT OUTER JOIN<br />
                      dbo.CreditControlEscContacts ON dbo.SLCustomerAccount.SLCustomerAccountID = dbo.CreditControlEscContacts.SLCustomerAccountID LEFT OUTER JOIN<br />
                      dbo.CreditControlContacts ON dbo.SLCustomerAccount.SLCustomerAccountID = dbo.CreditControlContacts.SLCustomerAccountID RIGHT OUTER JOIN<br />
                      dbo.CreditControlWithMemo ON dbo.SLCustomerAccount.CustomerAccountNumber = dbo.CreditControlWithMemo.CustomerAccountNumber<br />
GROUP BY dbo.CreditControlWithMemo.CustomerAccountNumber, dbo.CreditControlWithMemo.CustomerAccountName, dbo.CreditControlWithMemo.AccountBalance,<br />
                      dbo.CreditControlWithMemo.Now, dbo.CreditControlWithMemo.[30 Days], dbo.CreditControlWithMemo.[60 Days], dbo.CreditControlWithMemo.[90 Days],<br />
                      dbo.CreditControlWithMemo.[120 Days], dbo.CreditControlWithMemo.[60 Days] + dbo.CreditControlWithMemo.[90 Days] + dbo.CreditControlWithMemo.[120 Days],<br />
                      dbo.CreditControlWithMemo.[Explanation/Excuse], dbo.CreditControlWithMemo.[Date Of Last Contact], dbo.CreditControlContacts.Contact,<br />
                      dbo.CreditControlContacts.DefaultTelephone, dbo.CreditControlContacts.DefaultEmail, dbo.CreditControlEscContacts.Contact,<br />
                      dbo.CreditControlEscContacts.DefaultTelephone, dbo.CreditControlEscContacts.DefaultEmail, dbo.SYSCreditPosition.Name<br />
ORDER BY dbo.CreditControlWithMemo.[60 Days] + dbo.CreditControlWithMemo.[90 Days] + dbo.CreditControlWithMemo.[120 Days] DESC</p>
<p style="text-align: left;">CreditControlWithMemo</p>
<p style="text-align: left;">SELECT     TOP 100 PERCENT dbo.SLCustomerAccount.CustomerAccountNumber, dbo.SLCustomerAccount.CustomerAccountName, dbo.SLCustomerAccount.AccountBalance,<br />
                      SUM(CASE WHEN DATEDIFF(d, dbo.SLPostedCustomerTran.TransactionDate, GETDATE()) BETWEEN 1 AND<br />
                      30 THEN dbo.SLPostedCustomerTran.GoodsValueInAccountCurrency &#8211; dbo.SLPostedCustomerTran.AllocatedValue ELSE 0 END) AS Now,<br />
                      SUM(CASE WHEN DATEDIFF(d, dbo.SLPostedCustomerTran.TransactionDate, GETDATE()) BETWEEN 31 AND<br />
                      60 THEN dbo.SLPostedCustomerTran.GoodsValueInAccountCurrency &#8211; dbo.SLPostedCustomerTran.AllocatedValue ELSE 0 END) AS [30 Days],<br />
                      SUM(CASE WHEN DATEDIFF(d, dbo.SLPostedCustomerTran.TransactionDate, GETDATE()) BETWEEN 61 AND<br />
                      90 THEN dbo.SLPostedCustomerTran.GoodsValueInAccountCurrency &#8211; dbo.SLPostedCustomerTran.AllocatedValue ELSE 0 END) AS [60 Days],<br />
                      SUM(CASE WHEN DATEDIFF(d, dbo.SLPostedCustomerTran.TransactionDate, GETDATE()) BETWEEN 91 AND<br />
                      120 THEN dbo.SLPostedCustomerTran.GoodsValueInAccountCurrency &#8211; dbo.SLPostedCustomerTran.AllocatedValue ELSE 0 END) AS [90 Days],<br />
                      SUM(CASE WHEN DATEDIFF(d, dbo.SLPostedCustomerTran.TransactionDate, GETDATE()) BETWEEN 121 AND<br />
                      1000 THEN dbo.SLPostedCustomerTran.GoodsValueInAccountCurrency &#8211; dbo.SLPostedCustomerTran.AllocatedValue ELSE 0 END) AS [120 Days],<br />
                      dbo.SYSCompany.CompanyName AS Source, dbo.SalesMemosB.MemoText AS [Explanation/Excuse],<br />
                      dbo.SalesMemosB.TimeAndDateMemoCreated AS [Date Of Last Contact]<br />
FROM         dbo.SLCustomerAccount INNER JOIN<br />
                      dbo.SLPostedCustomerTran ON dbo.SLCustomerAccount.SLCustomerAccountID = dbo.SLPostedCustomerTran.SLCustomerAccountID LEFT OUTER JOIN<br />
                      dbo.SalesMemosB ON dbo.SLCustomerAccount.SLCustomerAccountID = dbo.SalesMemosB.SLCustomerAccountID CROSS JOIN<br />
                      dbo.SYSCompany<br />
GROUP BY dbo.SLCustomerAccount.CustomerAccountNumber, dbo.SLCustomerAccount.CustomerAccountName, dbo.SLCustomerAccount.AccountBalance,<br />
                      dbo.SYSCompany.CompanyName, dbo.SalesMemosB.MemoText, dbo.SalesMemosB.TimeAndDateMemoCreated<br />
HAVING      (dbo.SLCustomerAccount.AccountBalance &lt;&gt; 0)<br />
ORDER BY dbo.SLCustomerAccount.CustomerAccountNumber</p>
<p style="text-align: left;">CreditControlEscContacts</p>
<p style="text-align: left;">SELECT     SLCustomerAccountID, SLCustomerContactID, Contact, IsDefaultRole, DefaultTelephone, DefaultEmail, DefaultFax, DefaultWebsite, DefaultMobile,<br />
                      IsPreferredContactForRole, ContactRoleName<br />
FROM         dbo.SLCustomerContactDefaultsVw<br />
WHERE     (ContactRoleName LIKE &#8216;esc%&#8217;) AND (IsPreferredContactForRole &lt;&gt; 0)</p>
<p style="text-align: left;">CreditControlContacts</p>
<p style="text-align: left;">SELECT     SLCustomerAccountID, SLCustomerContactID, Contact, IsDefaultRole, DefaultTelephone, DefaultEmail, DefaultFax, DefaultWebsite, DefaultMobile,<br />
                      IsPreferredContactForRole, ContactRoleName<br />
FROM         dbo.SLCustomerContactDefaultsVw<br />
WHERE     (ContactRoleName = &#8216;credit control&#8217;) AND (IsPreferredContactForRole &lt;&gt; 0)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.protronics.co.uk/blogs/sanity-with-sage/index.php/2009/08/sage-200-aged-debtors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sage 200 retro reports don&#8217;t work!</title>
		<link>http://www.protronics.co.uk/blogs/sanity-with-sage/index.php/2009/06/sage-200-retro-reports-dont-work/</link>
		<comments>http://www.protronics.co.uk/blogs/sanity-with-sage/index.php/2009/06/sage-200-retro-reports-dont-work/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 10:35:51 +0000</pubDate>
		<dc:creator>JonathanK</dc:creator>
				<category><![CDATA[Bugs and workarounds]]></category>
		<category><![CDATA[Frustrations]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[Sage 200]]></category>
		<category><![CDATA[allocation date problems]]></category>
		<category><![CDATA[retro aged creditors]]></category>
		<category><![CDATA[retro aged debtors]]></category>
		<category><![CDATA[retrospective reports]]></category>
		<category><![CDATA[Sage 200 support questions]]></category>
		<category><![CDATA[Sage200]]></category>

		<guid isPermaLink="false">http://www.protronics.co.uk/blogs/sanity-with-sage/?p=8</guid>
		<description><![CDATA[Actually they work just fine, but it is all too easy to post entries into Sage 200 in a way that means the reports are wrong.
The problem is that the allocation date, which is set within the top right section of Sage 200’s allocation screens, defaults to the current date.   This is really easy to [...]]]></description>
			<content:encoded><![CDATA[<p>Actually they work just fine, but it is all too easy to post entries into <a title="Sage 200" href="http://www.protronics.co.uk/sage-200.html">Sage 200</a> in a way that means the reports are wrong.</p>
<p>The problem is that the allocation date, which is set within the top right section of Sage 200’s allocation screens, defaults to the current date.   This is really easy to overlook, and calls to our <a title="Sage 200 support in London and Oxford" href="http://www.protronics.co.uk/sage-200-support.html">Sage 200 support</a> team suggest most users are, quite reasonably, unaware of the implications of that date. However, this can cause a few hiccoughs if left unchanged, affecting retrospective debtors/creditors reports, retrospective statements, and any view of average times to pay by customers (visible in the account details report).</p>
<p>With this in mind, it is generally a good idea to change the allocation date from the default of the current system date to that of the latest transaction in the batch being allocated, to keep analyses based on transaction and allocation dates consistent.   <a title="Sage 50" href="http://www.protronics.co.uk/sage-50.html">Sage 50</a> does this automatically, so perhaps this is something the software developers need to talk to each other about!</p>
<p>There is a fix, however, if you forget to do this when allocating.  You can always go into the Amend Allocation option under the Adjust Transactions menu on the sales or purchase ledgers and either undo or amend the date on the problem allocations.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.protronics.co.uk/blogs/sanity-with-sage/index.php/2009/06/sage-200-retro-reports-dont-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
