4-4-5 Accounting Dynamics NAV
4-4-5 Accounting in Dynamics NAV is only possible with manual setup, most Accounting Systems are setup for the Julian or Western Calendar the standard 1st January to the 31st December with the additional Leap Year day 29th February every 4 years, this is adequate for most purposes, the standard periods in Dynamics NAV use the virtual date table with the Julian Calendar Structure, all versions of Dynamics NAV have a table to enable the setup of custom Accounting Periods.
4-4-5 Accounting
Some businesses will use 4-4-5 accounting or a variation 5-4-4 or 4-5-4, commonly in Retail, Manufacturing Shift work, I would think a service company that sold labour could also use 4-4-5 accounting periods to good effect, one of the key benefits is for period on period, quarter on quarter or year on year reporting and budgeting.
If I look at the Month of May 2015 there are five full trading weekends in May, in Retail the weekends are the highest trading days comparing May 2014 to May 2015 there is an additional weekend trading day and one less working day (Manufacturing and Service) which would distort year on year comparison and could affect the budgeting and planning of resources or stock, in manufacturing and the service industry the number of working days or hours in a period are the key to planning and reporting.
4-4-5 Accounting will give me four quarters of thirteen weeks (91 Days) made up of two four week periods and one five week period, two half year periods of exactly twenty six weeks and a year of exactly fifty two weeks (364 Days), if I compare period one 2014 to period one 2015 I will know that they both contain the same number of trading days and trading weekends, I could then create a fairly accurate budget based on last years sales for the same period.
In the GB version I can setup all custom accounting periods, I could start the week on a different day like a Thursday and then create custom entries for Week, Month, Quarter and Year.
The Calendar can be setup by manual entry, therefore there is no requirement to make any changes to the objects, these changes would just make it easy to create a new Fiscal Year, the example reports can be downloaded at the end of this post.
Accounting Periods GB
The GB Database has a different Account Period table (10560: “Accounting Period GB”), the standard database uses table 50 “Accounting Period” but the principle is the same, the 4-4-5 periods could easily be added manually to the Accounting Periods, I will use the MOD function to add the creation of 4-4-5 accounting periods to Report 93: Create Fiscal Year.
Report 93: Create Fiscal Year
I start by adding two C/AL Globals to the report, the Calendar (Date) variables is used to return the date name as some periods will span two different months, the FourFourFive boolean variable is added to the Report “Request Page”
Add the Variable to the Request Page.
Code OnPreReport (GB Version)
** The C/AL code structure is different in the Standard Report, both reports are in the Download **
- If the Boolean FourFourFive is selected.
- Reset the Calendar (Date) Virtual Table.
- Set a range filter for the Period Type Month from the Start date on the request page.
- Find the first record in the dataset.
//4-4-5 Accounting >> IF FourFourFive THEN BEGIN Calendar.RESET; Calendar.SETRANGE("Period Type",Calendar."Period Type"::Month); Calendar.SETRANGE("Period Start",FiscalYearStartDate, 31129999D); Calendar.FIND('-'); END; //4-4-5 Accounting <<
- If the Boolean FourFourFive is selected.
- Use the MOD Operator to see if there is a return for MOD 3.
- If there is a return calculate four weeks.
- If there is no return calculate five weeks.
//4-4-5 Accounting >> IF FourFourFive THEN BEGIN IF i MOD 3 <> 0 THEN MonthEndDate := CALCDATE('<4W>',MonthStartDate) - 1 ELSE MonthEndDate := CALCDATE('<5W>',MonthStartDate) - 1; END ELSE //4-4-5 Accounting >>
//4-4-5 Accounting >> IF FourFourFive THEN BEGIN IF i MOD 3 <> 0 THEN FiscalYearStartDate := CALCDATE('<4W>',FiscalYearStartDate) ELSE FiscalYearStartDate := CALCDATE('<5W>',FiscalYearStartDate); END ELSE //4-4-5 Accounting >>
- If the Boolean FourFourFive is selected.
- Set the Period Number.
- Set the Period Name.
- Move the Calendar Variable to the next record.
//4-4-5 Accounting >> IF FourFourFive THEN BEGIN AccountingPeriod."Period No." := i; AccountingPeriod."Period Name" := Calendar."Period Name"; Calendar.NEXT; END; //4-4-5 Accounting >>
//4-4-5 Accounting >> IF FourFourFive THEN BEGIN AccountingPeriod.Name := Calendar."Period Name"; Calendar.NEXT; END; //4-4-5 Accounting >>
Creating the Entries
Run Page 50 Accounting Periods and select Create Fiscal Year.
Select the Four Four Five checkbox and run the report.
Accounting Periods GB which has the additional “Period Type” and “Period End” fields.
Accounting Periods Standard WW.
If I run the “Trial Balance by Period” from the “Accounting Periods” page Ribbon I can see the 4-4-5 Dates.
Calendar Setup
In the Cronus UK (GB) database there is an additional setup, I run the Page 1505: Calendar Setup and un-check the “Use System for Month Period”.
Sales Budgets
If I search for Sales Budgets open the page and set the Period to Month or Accounting Period, I can create a Budget based on the 4-4-5 Calendar.
Sales Budget Overview GB is different to the Standard with the Calendar Source, select View by: Month.
Standard Sales Budget Overview, select View by: Accounting Period, here I can see the period dates are 4-4-5.