You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

154 lines
7.8 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[spa_generate_calendar] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. -- spa_generate_calendar '2010-04-14',2062,31,31,31,32,31,31,29,30,29,30,29,31
  9. CREATE procEDURE [dbo].[spa_generate_calendar]
  10. @eng_date datetime,
  11. @nepali_year int,
  12. @baishakh int,
  13. @jestha int,
  14. @ashadh int,
  15. @shrawan int,
  16. @bhadra int,
  17. @ashwin int,
  18. @kartik int,
  19. @mangshir int,
  20. @poush int,
  21. @magh int,
  22. @falgun int,
  23. @chaitra int
  24. as
  25. begin
  26. declare @nepali_date varchar(20),@nep_day int,@nep_month int,
  27. @total_date_diff int,@counter int,@counter_date datetime, @counter_diff int, @daysinyear int
  28. set @daysinyear=@baishakh + @jestha +@ashadh +@shrawan + @bhadra + @ashwin + @kartik + @mangshir + @poush + @magh + @falgun + @chaitra
  29. set @nep_day=1
  30. set @nep_month=1
  31. --@total_date_diff=365
  32. --set @total_date_diff=datediff(d,@eng_date,dateadd(yy,1,@eng_date))
  33. set @total_date_diff=datediff(d,@eng_date,dateadd(d,@daysinyear,@eng_date))
  34. set @counter=0
  35. --First Date
  36. while @counter < @total_date_diff
  37. begin
  38. set @counter_date=dateadd(d,@counter,@eng_date)
  39. if @counter<@baishakh
  40. begin
  41. set @nep_day=@counter+1
  42. set @nep_month=1
  43. end
  44. else if @counter < @baishakh+@jestha
  45. begin
  46. set @nep_day=@counter-@baishakh + 1
  47. set @nep_month=2
  48. end
  49. else if @counter < @baishakh+@jestha+@ashadh
  50. begin
  51. set @nep_day=@counter-@baishakh-@jestha +1
  52. set @nep_month=3
  53. end
  54. else if @counter < @baishakh+@jestha+@ashadh+@shrawan
  55. begin
  56. set @nep_day=@counter-@baishakh-@jestha-@ashadh +1
  57. set @nep_month=4
  58. end
  59. else if @counter < @baishakh+@jestha+@ashadh+@shrawan+@bhadra
  60. begin
  61. set @nep_day=@counter-@baishakh-@jestha-@ashadh-@shrawan + 1
  62. set @nep_month=5
  63. end
  64. else if @counter < @baishakh+@jestha+@ashadh+@shrawan+@bhadra+@ashwin
  65. begin
  66. set @nep_day=@counter-@baishakh-@jestha-@ashadh-@shrawan-@bhadra + 1
  67. set @nep_month=6
  68. end
  69. else if @counter < @baishakh+@jestha+@ashadh+@shrawan+@bhadra+@ashwin+@kartik
  70. begin
  71. set @nep_day=@counter-@baishakh-@jestha-@ashadh-@shrawan-@bhadra-@ashwin + 1
  72. set @nep_month=7
  73. end
  74. else if @counter < @baishakh+@jestha+@ashadh+@shrawan+@bhadra+@ashwin+@kartik+@mangshir
  75. begin
  76. set @nep_day=@counter-@baishakh-@jestha-@ashadh-@shrawan-@bhadra-@ashwin-@kartik + 1
  77. set @nep_month=8
  78. end
  79. else if @counter < @baishakh+@jestha+@ashadh+@shrawan+@bhadra+@ashwin+@kartik+@mangshir+@poush
  80. begin
  81. set @nep_day=@counter-@baishakh-@jestha-@ashadh-@shrawan-@bhadra-@ashwin-@kartik-@mangshir + 1
  82. set @nep_month=9
  83. end
  84. else if @counter < @baishakh+@jestha+@ashadh+@shrawan+@bhadra+@ashwin+@kartik+@mangshir+@poush+@magh
  85. begin
  86. set @nep_day=@counter-@baishakh-@jestha-@ashadh-@shrawan-@bhadra-@ashwin-@kartik-@mangshir-@poush + 1
  87. set @nep_month=10
  88. end
  89. else if @counter < @baishakh+@jestha+@ashadh+@shrawan+@bhadra+@ashwin+@kartik+@mangshir+@poush+@magh+@falgun
  90. begin
  91. set @nep_day=@counter-@baishakh-@jestha-@ashadh-@shrawan-@bhadra-@ashwin-@kartik-@mangshir-@poush-@magh + 1
  92. set @nep_month=11
  93. end
  94. else if @counter < @baishakh+@jestha+@ashadh+@shrawan+@bhadra+@ashwin+@kartik+@mangshir+@poush+@magh+@falgun+@chaitra
  95. begin
  96. set @nep_day=@counter-@baishakh-@jestha-@ashadh-@shrawan-@bhadra-@ashwin-@kartik-@mangshir-@poush-@magh-@falgun + 1
  97. set @nep_month=12
  98. end
  99. set @nepali_date=dbo.FNAFormatNumber(@nep_month)+'-'+dbo.FNAFormatNumber(@nep_day)+'-'+cast(@nepali_year as varchar)
  100. insert tbl_calendar values(@counter_date,@nepali_date)
  101. set @counter=@counter+1
  102. update tbl_setup
  103. set
  104. baisakh=@baishakh,
  105. jestha=@jestha,
  106. ashadh=@ashadh,
  107. shrawan=@shrawan,
  108. bhadra=@bhadra,
  109. ashwin=@ashwin,
  110. kartik=@kartik,
  111. mangshir=@mangshir,
  112. paush=@poush,
  113. magh=@magh,
  114. falgun=@falgun,
  115. chaitra=@chaitra
  116. end
  117. end
  118. --truncate table tbl_calendar
  119. GO