Tuesday, 30 December 2014

Script to generate fiscal calendar

There is a script to generate the fiscal calendar.

declare @Calendar table (
       CalendarDate datetime,
       CalendarDayOfYear as datepart(dy, CalendarDate),
       CalendarDayOfWeek as datepart(dw, CalendarDate),
       CalendarYear as datepart(yy, CalendarDate),
       FiscalDayOfYear int,
       FiscalMonth as
              case
                     when FiscalDayOfYear between 1 and 28 then 1
                     when FiscalDayOfYear between 29 and 56 then 2
                     when FiscalDayOfYear between 57 and 91 then 3
                     when FiscalDayOfYear between 92 and 119 then 4
                     when FiscalDayOfYear between 120 and 147 then 5
                     when FiscalDayOfYear between 148 and 182 then 6
                     when FiscalDayOfYear between 183 and 210 then 7
                     when FiscalDayOfYear between 211 and 238 then 8
                     when FiscalDayOfYear between 239 and 273 then 9
                     when FiscalDayOfYear between 274 and 301 then 10
                     when FiscalDayOfYear between 300 and 329 then 11
                     else 12
              end,
       FiscalQuarter as
              case
                     when FiscalDayOfYear between 1 and 91 then 1
                     when FiscalDayOfYear between 92 and 182 then 2
                     when FiscalDayOfYear between 183 and 273 then 3
                     else 4
              end,
       FiscalYear int
)

declare @i int
select @i = 36524

while @i < 45000
begin
       insert into @Calendar (CalendarDate) select @i
       select @i = @i + 1
end

declare @FiscalStartEnd table (
       FiscalYear int,
       StartDate datetime,
       EndDate datetime
)

insert into @FiscalStartEnd (FiscalYear, StartDate)
select
       CalendarYear, MIN(CalendarDate)
from
       @Calendar
where
       CalendarDayOfWeek = 1
group by
       CalendarYear
      
update
       f
set
       EndDate = f1.StartDate - 1
from
       @FiscalStartEnd f
       inner join @FiscalStartEnd f1
              on     f.FiscalYear = f1.FiscalYear - 1

update
       c
set
       FiscalDayOfYear = DATEDIFF(d, f.StartDate, c.CalendarDate) + 1,
       FiscalYear = f.FiscalYear
from
       @FiscalStartEnd f
       inner join @Calendar c
              on     c.CalendarDate between f.StartDate and f.EndDate


select * from @Calendar



This email has been checked for viruses by Avast antivirus software.
www.avast.com

Sunday, 14 December 2014

Change color of validation error on NetTier

To change color of auto generated validation error please use the following procedure. Here I'll take example of EntityDropdownlist required Validator.

Look for the page {ProjectName}.Web\UI\EntityDropDownList.cs

  // Required field?
            if ( Required && !ReadOnly )
            {
                requiredValidator.Enabled = false;
                requiredValidator.ControlToValidate = this.ID;
                requiredValidator.ID = this.ID + "_RQ";
                requiredValidator.Text = ErrorText;
                requiredValidator.ErrorMessage = RequiredErrorMessage;
                requiredValidator.ForeColor = Color.Red;
                requiredValidator.EnableClientScript = EnableClientScript;
requiredValidator.ValidationGroup = this.ValidationGroup;
                this.Controls.Add( requiredValidator );
            }

And you are good to go.